- •Мови, рівні і віртуальні машини
- •Сучасні багаторівневі машини
- •Поняття архітектури пк
- •1.4. Розвиток комп’ютерної архітектури
- •Розвиток багаторівневих машин
- •Типи сучасних еом
- •Питання до лекції
- •2.1. Принципи розробки сучасних комп'ютерів
- •2.3. Конвеєри
- •2.2. Паралелізм на рівні команд
- •2.4. Суперскалярні архітектури
- •2.5. Паралелізм на рівні процесорів
- •2.6. Векторні комп'ютери
- •Блок управління
- •2.7. Мультипроцессори
- •2.8. Мультикомпьютери
- •Питання до лекції
- •3. Основи комп’ютерної організації : пам’ять
- •3.1. Ієрархічна структура пам'яті
- •3.2. Загальні відомості про пам'ять
- •3.4. Методи звертання до пам'яті
- •3.5. Модулі пам'яті
- •3.6. Ряди і банки пам'яті
- •3.8. Код з виправленням помилок
- •3. 9. Скільки потрібно пам'яті
- •Питання до лекції
- •4. Цифровий рівень побудови ом
- •4.1. Вентилі і булева алгебра
- •4.2. Булева алгебра
- •4.3. Реалізація булевих функцій
- •4.4. Еквівалентність схем
- •Основні цифрові логічні схеми Інтегральні схеми
- •4.5. Комбінаційні схеми
- •3 Входи і 8 виходів
- •4.6. Арифметичні схеми.
- •4.7. Тактові генератори
- •Питання до лекції
- •Цифровий рівень побудови ом.
- •5. Цифровий логічний рівень архітектури: пам’ять, мікропроцесори
- •5.2. Синхронні sr-защіпки
- •5.3. Синхронні d-защіпки
- •5.4. Тригери (flip-flops)
- •5.5. Регістри
- •5.6. Організація пам'яті
- •Тригер (б)
- •Кожний ряд представляє одне з 3-бітних слів. При операції зчитування і запису завжди зчитується або записується ціле слово
- •5.7. Мікросхеми пам'яті
- •5.9. Мікросхеми процесорів
- •Стрілочки указують вхідні і вихідні сигнали. Короткі діагональні лінії вказують на наявність декількох висновків.
- •Питання до лекції
- •6. Шини
- •6.1. Ширина шини
- •6.2. Синхронізація шини
- •6.3. Синхронні шини
- •6.5. Асинхронні шини
- •6.6. Арбітраж шини
- •6.7. Принципи роботи шини
- •Питання до лекції
- •7. Мікроархітектурний рівень
- •7.1. Приклад мікроархітектури
- •7.2. Тракт даних
- •В цьому розділі
- •Табліця 7.1. Деякі комбінації сигналів аллу і відповідні їм функції
- •7.3. Синхронізація тракту даних
- •7.4. Робота пам'яті.
- •7.5. Мікрокоманди
- •7.6. Управління мікрокомандами: Mic-1
- •7.7. Приклад архітектури команд: ijvm
- •7.8. Модель пам'яті ijvm
- •Питання до лекції
- •8. Рівень архітектури команд
- •8.1. Моделі пам'яті
- •8.2. Загальний огляд рівня архітектури команд
- •8.3. Властивості рівня команд
- •8.4. Регістри
- •8.5. Команди
- •8.6. Загальний огляд рівня команд машини Pentium II
- •8.8. Загальний огляд рівня команд системи ultrasparc II
- •8.9. Загальний огляд віртуальної машини Java
- •8.10. Типи даних
- •8.11. Числові типи даних
- •8.12. Нечислові типи даних
- •8.13. Типи даних процесора Pentium II
- •Підтримувані типи відмічені хрестом (х)
- •8.14. Типи даних машини UltraSparc II
- •8.16. Типи даних віртуальної машини Java
- •8.17. Формати команд
- •Питання до лекції
- •9. Адресація
- •9.1. Способи адресації
- •9.2. Безпосередня адресація
- •9.3. Пряма адресація
- •9.4. Регістрова адресація
- •9.5. Непряма регістрова адресація
- •Лістинг 9.1 - Програма на асемблері для обрахунку суми елементів масиву.
- •9.6. Індексна адресація
- •Листинг 9.2. Програма на мові асемблера для обчислення операції або від (Аі і Ві ) для масиву з 1024 елементів.
- •9.9. Зворотній польський запис
- •9.7. Відносна індексна адресація
- •9.8. Стекова адресація
- •9.10. Обчислення формул в зворотнім польськім записі
- •Питання до лекції
Сучасні багаторівневі машини
Більшість сучасних комп'ютерів складається з двох і більш рівнів. Існують машини навіть із шістьма рівнями (рис.1.2). Рівень 0 – апаратне забезпечення машини. Його електронні схеми виконують програми, написані мовою рівня 1. Рівень 0 – рівень фізичних пристроїв – не показаний на рис.1.2, тому що він попадає в сферу електронної техніки. На цьому рівні знаходяться транзистори, що є примітивами для розробників комп'ютерів. Пояснювати, як працюють транзистори, – задача фізики.
На самому нижньому рівні, цифровому логічному рівні, об'єкти називаються вентилями. Хоча вентилі складаються з аналогових компонентів, таких як транзистори, вони можуть бути точно змодельовані як цифрові засоби. У кожного вентиля є одне або декілька цифрових вхідних даних (сигналів, що представляють 0 чи 1). Вентиль обчислює прості функції цих сигналів, такі як І чи АБО. Кожен вентиль формується з декількох транзисторів. Кілька вентилів формують 1 біт пам'яті, що може містити 0 чи 1. Біти пам'яті, об'єднані в групи, наприклад, по 16,32 або 64, формують регістри. Кожен регістр може містити одне двійкове число до визначеної межі. З вентилів також може складатися сам комп'ютер.
Мова високого
рівня
рівень 5
Трансляція (компілятор)
Рівень мови
Асемблер
рівень 4
Трансляція (асемблер)
Рівень операційної
системи
рівень 3
Трансляція (асемблер)
Рівень архітектури
команд
рівень 2
Інтерпретація (мікропрограма)
або безпосереднє виконання
р
Мікроархітектурний
рівень
Апаратне забезпечення
Цифровий логічний
рівень
рівень 0
Рис.1.2. Комп'ютер із шістьма рівнями
Наступний рівень – мікроархітектурний рівень. До цього рівня відноситься сукупність 8 або 32 регістрів, що формують локальну пам'ять і схему, так звану АЛП (арифметико-логічний пристрій). АЛП виконує прості арифметичні операції. Регістри разом з АЛП формують тракт даних, по якому надходять дані. Основна операція тракту даних полягає в наступному. Вибирається один або два регістри, АЛП робить над ними яку-небудь операцію, наприклад додавання, а результат міститься в один з цих регістрів.
На деяких машинах робота тракту даних контролюється особливою програмою, що називається мікропрограмою. На інших машинах тракт даних контролюється апаратними засобами. Раніше цей рівень майже завжди був інтерпретатором програмного забезпечення, зараз тракт даних звичайно контролюється апаратним забезпеченням.
На машинах, де тракт даних контролюється програмним забезпеченням, мікропрограма – це інтерпретатор для команд на рівні 2. Мікропрограма викликає команди з пам'яті і виконує їх одну за іншою, використовуючи при цьому тракт даних. Наприклад, для того щоб виконати команду ADD, ця команда викликається з пам'яті, її операнди містяться в регістри, АЛП обчислює суму, а потім результат переправляється назад. На комп'ютері з апаратним контролем тракту даних відбувається така ж процедура, але при цьому немає програми, що контролює інтерпретацію команд рівня 2.
Другий рівень називається рівнем архітектури системи команд.
Коли описується набір машинних команд, в дійсності це є опис команди, що виконуються інтерпретатором або апаратним забезпеченням.
Наступний рівень, звичайно, гібридний. Більшість команд у його мові є також і на рівні архітектури системи команд (команди, що є на одному з рівнів, цілком можуть знаходитися на інших рівнях). У цього рівня є деякі додаткові особливості: набір нових команд, інша організація пам'яті, здатність виконувати дві і більше програм одночасно і деякі інші.
Нові засоби, що з'явилися на третьому рівні, виконуються інтерпретатором, що працює на другому рівні. Цей інтерпретатор був колись названий операційною системою. Команди третього рівня, ідентичні командам другого рівня, виконуються мікропрограмою або апаратним забезпеченням, але не операційною системою. Іншими словами, одна частина команд третього рівня інтерпретується операційною системою, а інша частина – мікропрограмою. От чому цей рівень вважається гібридним. Він називається рівнем операційної системи.
Між третім і четвертим рівнями є істотна різниця. Нижні три рівні конструюються не для того, щоб з ними працював звичайний програміст. Вони призначені для роботи інтерпретаторів і трансляторів, що підтримують більш високі рівні. Ці транслятори й інтерпретатори складаються так званими системними програмістами, що спеціалізуються на розробці і побудові нових віртуальних машин. Рівні з четвертого і вище призначені для прикладних програмістів, що вирішують конкретні задачі.
Ще одна зміна, що з'явилася на рівні 4, – спосіб, яким підтримуються більш високі рівні. Рівні 2 і 3 звичайно інтерпретуються, а рівні 4, 5 і вище звичайно, хоча і не завжди, підтримуються транслятором.
Інше розходження між рівнями 1,2,3 і рівнями 4,5 і вище – особливість мови. Машинні мови рівнів 1,2 і 3 – цифрові. Програми, написані на цих мовах, складаються з довгих рядів цифр, що зручні для комп'ютерів, але зовсім незручні для людей. Починаючи з четвертого рівня, мови містять слова і скорочення, зрозумілі людині.
Четвертий рівень – це символічна форма однієї з мов більш низького рівня. На цьому рівні можна писати програми в прийнятній для людини формі. Ці програми спочатку транслюються на мову рівня 1, 2 чи 3, а потім інтерпретуються відповідною віртуальною або фактично існуючою машиною. Програма, що виконує трансляцію, називається ассемблером.
П'ятий рівень звичайно складається з мов, розроблених для прикладних програмістів. Такі мови називаються мовами високого рівня. Існують сотні мов високого рівня. Найбільш відомі серед них – BASIC, С, C++, Java, LISP і Prolog. Програми, написані на цих мовах, звичайно транслюються на рівень 3 чи 4. Транслятори, що обробляють ці програми, називаються компіляторами. Відзначимо, що іноді також використовується метод інтерпретації. Наприклад, програми мовою Java звичайно інтерпретуються.
У деяких випадках п'ятий рівень складається з інтерпретатора для такої сфери додатка, як символічна математика. Він забезпечує дані та операції для рішення задач у цій сфері в термінах, зрозумілих людям, знаючим у символічній математиці.
Отже, комп'ютер проектується як ієрархічна структура рівнів, кожний з який надбудовується над попереднім. Кожен рівень являє собою визначену абстракцію з різними об'єктами й операціями.
Набір типів даних, операцій і особливостей кожного рівня називається архітектурою. Архітектура пов'язана з аспектами, що видні програмісту. Наприклад, зведення про те, скільки пам'яті можна використовувати при написанні програми, – частина архітектури. А аспекти розробки (наприклад, яка технологія використовується при створенні пам'яті) не є частиною архітектури. Вивчення того, як розробляються ті частини комп'ютерної системи, що видні програмістам, називається вивченням комп'ютерної архітектури. Терміни «комп'ютерна архітектура» і «комп'ютерна організація» означають у сутності те саме.
