
- •Мови, рівні і віртуальні машини
- •Сучасні багаторівневі машини
- •Поняття архітектури пк
- •1.4. Розвиток комп’ютерної архітектури
- •Розвиток багаторівневих машин
- •Типи сучасних еом
- •Питання до лекції
- •2.1. Принципи розробки сучасних комп'ютерів
- •2.2. Паралелізм на рівні команд
- •2.3. Конвеєри
- •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.7. Відносна індексна адресація
- •9.8. Стекова адресація
- •9.9. Зворотній польський запис
- •9.10. Обчислення формул в зворотнім польськім записі
- •Питання до лекції
Питання до лекції
Поясніть терміни програма і машинна мова!
Розкажіть, які є два способи рішення задачі. Прокоментуйте кожний із них!
Намалюйте схему багаторівневої машини!
Коротко розкажіть про кожний із рівнів!
Що ми розуміємо під поняттям архітектури ПК?
Поетапно розкажіть про розвиток комп’ютерної техніки!
Яка різниця між апаратним і програмним забезпеченням?
Які є три великі класи сучасних ЕОМ ?
Які комп’ютери називаються ІВМ-сумісними ?
2.
2.1. Принципи розробки сучасних комп'ютерів
Пройшло вже більш двадцяти років з тих пір, як були сконструйовані перші комп'ютери RISC, однак деякі принципи розробки можна перейняти, з огляду на сучасний стан технологій апаратного забезпечення. Якщо відбувається дуже різка зміна в технологіях (наприклад, новий процес виробництва робить тривалість циклу пам'яті в 10 разів менше, ніж тривалість циклу центрального процесора), змінюються всі умови. Тому розробники завжди повинні враховувати можливі технологічні зміни, що можуть вплинути на баланс між компонентами комп'ютера.
Існує ряд принципів розробки, так званих принципів RISC, яким по можливості намагаються наслідувати виробники універсальних процесорів. Через деякі зовнішні обмеження, наприклад вимоги сумісності з іншими машинами, приходиться час від часу іти на компроміс, але ці принципи – ціль, до якої прагне більшість розробників.
Усі команди безпосередньо виконуються апаратним забезпеченням. Усі звичайні команди безпосередньо виконуються апаратним забезпеченням. Вони не інтерпретуються мікрокомандами. Усунення рівня інтерпретації забезпечує високу швидкість виконання більшості команд. У комп'ютерах типу CISC більш складні команди можуть розбиватися на кілька частин, що потім виконуються як послідовність мікрокоманд. Ця додаткова операція знижує швидкість роботи машини, але вона може бути застосовна для рідко зустрічаються команд.
Комп'ютер повинний починати виконання великої кількості команд. У сучасних комп'ютерах використовується багато різних способів для збільшення продуктивності, головний з яких – можливість звертатися до як можна більшої кількості команд у секунду. Процесор 500-MIPS здатний приступати до виконання 500 млн команд у секунду, і при цьому не має значення, скільки часу займає саме виконання цих команд. (MIPS — це скорочення від Millions of Instructions Per Second — «мільйони команд у секунду».) Цей принцип припускає, що паралелізм може відігравати головну роль у поліпшенні продуктивності, оскільки приступати до великої кількості команд за короткий проміжок часу можна тільки в тому випадку, якщо одночасно може виконуватися кілька команд.
Хоча команди деякої програми завжди розташовані у визначеному порядку, комп'ютер може приступати до їхнього виконання й в іншому порядку (тому що необхідні ресурси пам'яті можуть бути зайняті) і, крім того, може закінчувати їхнє виконання не в тому порядку, у якому вони розташовані в програмі. Звичайно, якщо команда 1 установлює регістр, а команда 2 використовує цей регістр, потрібно діяти з особливою обережністю, щоб команда 2 не зчитувала регістр доти, поки він не буде містити потрібне значення. Щоб не допустити подібних помилок, необхідно вводити велику кількість відповідних записів у пам'ять, але продуктивність все одно стає вищою завдяки можливості виконувати кілька команд одночасно.
Команди повинні легко декодуватися. Межа кількості викликуваних команд у секунду залежить від процесу декодування окремих команд. Декодування команд здійснюється для того, щоб визначити, які ресурси їм необхідні і які дії потрібно виконати. Корисні будь-які засоби, що сприяють спрощенню цього процесу. Наприклад, використовуються регулярні команди з фіксованою довжиною і з невеликою кількістю полів. Чим менше різних форматів команд, тим краще.
До пам'яті повинні звертатися тільки команди завантаження і збереження. Один з найпростіших способів розбивання операцій на окремі кроки – це умова, щоб операнди для більшості команд бралися з регістрів і поверталися туди ж. Операція переміщення операндів з пам'яті в регістри може здійснюватися в різних командах. Оскільки доступ до пам'яті займає багато часу, а подібна затримка небажана, роботу цих команд можуть виконувати інші команди, якщо вони не роблять нічого, крім пересування операндів між регістрами і пам'яттю. З цього спостереження випливає, що до пам'яті повинні звертатися тільки команди завантаження і збереження (LOAD і STORE).
Повинна бути велика кількість регістрів. Оскільки доступ до пам'яті відбувається досить повільно, у комп'ютері повинне бути багато регістрів (принаймні 32). Якщо слово один раз викликано з пам'яті, при наявності великого числа регістрів воно може утримуватися в регістрі доти, поки буде не потрібно. Повернення слова з регістра в пам'ять і нове завантаження цього ж слова в регістр небажані. Кращий спосіб уникнути зайвих переміщень – наявність достатньої кількості регістрів.