Алгоритмічна універсальність.

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

 

 

- пересилки слова з однієї комірки пам'яті в іншу

- додавання або віднімання одиниці з нього

- умовного переходу

- безумовної зупинки

 

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

 

 

 

Що собою являє машинна команда покажемо на прикладі трьохадресної команди (це тільки одна із різновидностей), Рис.3.2.

 

КОП А1 А2 А3
       

Рис.3.2

 

КОП – код операції

А1, А2, А3 – адреси комірок оперативної пам'яті, в яких містяться дані і результати виконання операції.

Команди оперують даними, які прийнято називати операндами. Операнди – це числа, символи, логічні значення та ін.

Приклад. Скласти машинну програму обчислення виразу а = (b + c) ∙ d .

Допустимо, що пам’ять розподіляється починаючи з комірки 100: а(100), в(101), c(102), d(103), r(106). r – проміжна змінна. Позначимо операції: введення в пам'ять – 01, виведення з пам'яті – 02, додавання – 03, множення – 05, 00 – кінець обчислень. Тоді програма матиме вигляд:

 

КОП А1 А2 А3

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

 

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

 

З поняттям архітектура зв’язана така надзвичайно важлива характеристика обчислювальних машин, як програмне сумісництво, тобто можливість виконання одних і тих же програм на різних машинах. Програмний продукт завжди представляє велику цінність для споживача, бо завдяки програмному забезпеченню вирішуються задачі автоматизації обробки інформації в конкретних системах. Експерти оцінюють вартість програмного забезпечення до вартості технічних засобів приблизно, як 5 до 1. І коли змінюються покоління технічних засобів, дуже важливо, щоб зберігалися системні наробки програмного забезпечення. Це можливо при умові, якщо архітектура нових комп’ютерів буде розвивати, але не руйнувати архітектуру попередніх. Тоді забезпечується принцип програмного сумісництва „знизу-вверх”, при якому всі програми, написані на попередніх комп’ютерах будуть працювати на наступних. Керуючись цим принципом всі фірми випускають архітектурно сумісні ряди комп’ютерів, і програми написані для процесора 486 завжди будуть виконуватись на Pentium 4, але зворотно не обов’язково.

Ілюстрацією для цієї тези можуть служити архітектурні ряди програмно сумісних мікропроцесорів Intel (Рис.3.3).

 

 

Рис.3.3

 

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