архітектури ЕОМ

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

Архітекту́ра ЕОМ — це набір відомостей, необхідний та достатній для написання для даної обчислювальної машини коректних програм на машинній мові, таких, що не залежать від конкретного втілення цієї архітектурі. Електронні обчислювальні машини одної архітектури (тобто з однаковою програмною організацією), але реалізовані з використанням різних конструктивних рішень, називають сумісними, або сумісним сімейством ЕОМ. Формальне визначення

Архітектура ЕОМ включає інформацію про: 1. набір машинних команд (набір інструкцій), тобто операцій, які може виконувати ця обчислювальна машина

2. доступні регістр процесора — внутрішні комірки пам'яті процесора (пристрою, який виконує набір інструкцій), а саме: функціональне призначення, розрядність, кількість, особливості програмування таких регістрів.

3. розрядність та формати даних операндів — об'єктів, над якими виконуються операції

4. способи адресації пам'яті — методи доступу до операндів в пам'яті ЕОМ

5. механізми управління та захисту пам'яті

6. особливості обробки виключних ситуацій та помилок в системі

7. організацію системи вводу-виводу

8. доступні програмісту апаратні засоби організації багатозадачної та багатопроцесорної обробки інформації

Часто, особливо в останній час, термін «архітектура ЕОМ» вживається також для позначення саме архітектури системи команд, або архітектури (програмної моделі) процесора, тобто пп. 1-6 цього переліку. Інша інтерпретація цього поняття стосується вже обчислювальних систем, які включають багато обчислювачів, об'єднаних тим чи іншим чином, які реалізують певні стратегії обчислень. Тоді під терміном «архітектура» розуміють якраз конфігурацію та стратегії обчислень даної системи. В цій енциклопедії, якщо не вказано додатково, під архітектурою ЕОМ розуміється саме вищенаведений перелік відомостей.


Виникнення терміну

Поняття архітектури ЕОМ вперше було успішно застосовано при проектуванні серії обчислювальних машин IBM System/360, серії універсальних ЕОМ загального призначення, кожна з яких мала різну швидкодію та конструктивні особливості, але всі вони були програмно сумісними. Така сумісність означала можливість виконувати програми без необхідності їх додаткової адаптації до різних моделей серії та була певною мірою революційною, адже в той час практично всі ЕОМ випускались, як би ми зараз сказали, з унікальною архітектурою і необхідні були суттєві витрати для адаптації існуючого програмного забезпечення до нових моделей обчислювальної техніки. І якщо для спеціалізованих обчислювачів це було платою за високі показники швидкодії, то для класу універсальних ЕОМ така ситуація була неприпустимою.

Спеціалісти фірми IBM при створенні System/360 (S/360) зробили архітектуру єдиною для всіх машин серії, але реалізували її в кожній машини по-різному. В 1964 році було анонсовано зразу 6 моделей S/360.

Архітектура S/360 саме завдяки такій сумісності моделей мала надзвичайний комерційний успіх та отримала свій розвиток в наступній серії System/360, і в новій серії z/Server.


Архітектура, організація та реалізація


Як зазначає один з авторів архітектурної концепції S/360 Фредерік Брукс (Frederic Brooks), корисність розділення архітектури та її апаратного втілення легко спостерігати на прикладі звичайного стрілочного годинника, архітектурою якого можна вважати циферблат, стрілки та голівку для заведення. Опанувавши цей нехитрий інструментарій, кожний зможе без зусиль користуватись як наручним годинником, так і годинником з дзвіниці. Однак конфігурація внутрішнього механізму, принципи передачі зусиль між різними його частинами, є, взагалі, різними в різних моделях годинників. Тобто, для одної архітектури існує багато способів її внутрішньої організації. Кожна внутрішня організація, в свою чергу, дозволяє багато різних виконань. В одному випадку годинники з ідентичним за принципом дії механізмом можуть бути водонепроникними, а механізм виготовлятися з особливо надійних матеріалів, а в іншому від цих вимог можуть відмовитись, і годинник буде дешевшим.

В відношенні до ЕОМ, ситуація аналогічна. Під її функціональною організацією або виконанням розуміють загальні принципи функціонування пристроїв обробки інформації, пам'яті та підсистем вводу-виводу, опис внутрішніх потоків даних та керування. Втілення ж конкретного виконання в апаратурі називають реалізацією.


Архітектури та програмна сумісність

Аналогічно тому, як стрілковий годинник багато віків залишається зручним способом слідкування за часом, вдалі архітектури ЕОМ можуть залишатись конкурентоспроможними протягом десятиліть. Еволюціонувати може і сама архітектура, збагачуючи програміста новими інструментами для написання більш надійних та швидкодіючих програм.

Приклад — архітектура IA-32 (в більш вживаному позначенні x86, починаючи з i386) центрального процесора фірми Intel, яка є ключовою складовою загальної архітектури ЕОМ. Ця архітектура не була революційною, а зберегла повну сумісність знизу вгору з попередньою архітектурою IA-16 (x86, закінчуючи i286), але в неї були додані нові інструменти для роботи в захищеному режимі, організації багатозадачної роботи, розширена розрядність операндів, тощо. Кожне наступне сімейство процесорів IA-32 включає нові інструменти, нові команди, але при цьому вимога до сумісності знизу вгору залишається недоторканною.

Ця сумісність є певною жертвою з боку розробника, який міг би, напевно, запропонувати радикально нову архітектуру, яка має масу переваг в порівнянні з іншими, морально застарілими, але він таким вчинком змусив би користувачів на колосальні витрати, пов'язані з адаптацією існуючого програмного забезпечення, накопиченого за багато років експлуатації. Ця обставина миттєво нівелює будь-які аргументи привабливості нової архітектури для більшості потенційних користувачів. Більш акуратний підхід якраз полягає в забезпеченні еволюційної наступності нових архітектур.

Існує й інше вирішення проблеми сумісності програмного забезпечення з різними архітектурами ЕОМ — використання мов програмування високого рівня для написання крос-платформених програм (переносимих програм). Під переносимими програмами розуміють такі програми, в текстах яких не використовуються ніякі специфічні для будь-якої конкретної архітектури відомості. Мова високого рівня повинна в свою чергу бути стандартизованою. Це дає гарантію того, що одного разу написана, програма може бути використана на різних архітектурах. Відповідальність за адаптацію високорівневих конструкцій мови програмування до особливостей конкретної архітектури бере на себе компілятор з цієї мови для даної конкретної архітектури.