Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
"Вступ до спеціальності" Лекція 8.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1.53 Mб
Скачать

5. Принцип умовного переходу.

        Kоманди з програми не завжди виконуються одна за одною. Можлива присутність в програмі команд умовного переходу, які змінюють послідовність виконання команд в залежності від значень даних. (Сам принцип був сформульований задовго до фон Неймана Адою Лавлейс і Чарльзом Беббіджем, однак його логічно включено до фон Неймановскої архітектури.

Рис.8.1. Архітектура комп’ютера фон Неймана

.

Всі операції в комп’ютері виконуються за певними алгоритмами, які реалізовані у вигляді програм.

Алгоритм – це формалізована методика, визначаюча порядок виконання дій над даними з метою одержання бажаючого результату.

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

Алгоритм має задовольняти певним вимогам, серед яких потрібно виділити найважливіші:

  • визначеність – кожен крок алгоритму має інтерпретуватись однозначно

  • результативність – за скінчену кількість кроків алгоритм має приводити до розв’язання задачі або зупинятись через неможливість її розв’язання

  • дискретність – дії алгоритму виконатись по крокам

  • масовість – алгоритм повинен спрацьовувати з будь-якими даними з області застосування алгоритму

Існує декілька способів запису алгоритмів: словесний, алгоритмічна мова, набір формул, графічний у вигляді блок-схем та ін.

Приклад.

Дана послідовність с n чисел х1, х2, ..., хі, ..., xn. Необхідно знайти суму додатних та від’ємних чисел.

Позначимо Р – сума додатних, а N – сума від'ємних чисел, і – індекс. Введемо оператор надання ( := ), з допомогою якого змінній величині надається значення, яке стоїть після цього оператора. Числами з дужкою будемо позначати кроки алгоритму.

Тоді алгоритм вирішення даної задачі запишуться в такій формі:

  1. Pi := 0, Ni := 0

  2. i := 1

  3. якщо xi ≥ 0, то перейти до 4), інакше перейти до 6)

  4. Pi := Pi + xi

  5. Перейти до 7)

  6. Ni = Ni + xi

  7. якщо i < n, то перейти до 8), інакше перейти до10)

  8. i := i + 1

  9. перейти до 3)

  10. кінець

Той же самий алгоритм у графічному зображені, Рис.8.2.

Рис. 8.2

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

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

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

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

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

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

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

Алан Тьюрінг

(1912 ‒ 1954)англійський математик, логік, криптограф, що зробив істотний вплив на розвиток інформатики. Кавалер Ордена Британської імперії (1945), член Лондонського королівського суспільства (1951). Запропонована ним в 1936 році абстрактна обчислювальна «Машина Тьюринга», яку можна вважати моделлю комп'ютера загального призначення], дозволила формалізувати поняття алгоритму і до цих пір використовується в безлічі теоретичних і практичних досліджень. Наукові праці А. Тьюрінга ‒ загальновизнаний вклад в підстави інформатики (і, зокрема, ‒ теорії штучного інтелекту)

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

КОП

А1

А2

А3

Рис. 8.3

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

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

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

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

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

КОП

А1

А2

А3

01

101

000

000

01

102

000

000

01

103

000

000

03

101

102

106

05

106

103

100

02

100

000

000

00

000

000

000

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

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

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

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

Рис. 8.4. Архітектурний ряд мікропроцесорів Intel

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