
- •Мови, рівні і віртуальні машини
- •Сучасні багаторівневі машини
- •Поняття архітектури пк
- •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.5. Паралелізм на рівні процесорів
Попит на комп'ютери, що працюють все з більш і більш високою швидкістю, не припиняється. Швидкість роботи процесорів підвищується, але в них постійно виникають проблеми зі швидкістю передачі інформації, оскільки швидкість поширення електромагнітних хвиль у мідних проводах і світла в оптико-волоконних кабелях як і раніше залишається 20 см/нс, незалежно від того, наскільки розумні інженери компанії Intel. Крім того, чим швидше працює процесор, тим сильніше він нагрівається, і потрібно охороняти його від перегріву.
Паралелізм на рівні команд допомагає в якійсь мірі, але конвеєри і суперскалярна архітектура як правило збільшують швидкість роботи усього лише в 5-10 разів. Щоб поліпшити продуктивність у 50, 100 і більше раз, потрібно розробляти комп'ютери з декількома процесорами.
2.6. Векторні комп'ютери
Багато задач у фізичних і технічних науках містять вектори, у протилежному випадку вони мали б дуже складну структуру. Часто ті самі обчислення виконуються над різними наборами даних в один і той самий час. Структура цих програм дозволяє підвищувати швидкість роботи завдяки паралельному виконанню команд. Існує два методи, що використовуються для швидкого виконання великих наукових програм. Хоча обидві схеми в багатьох випадках схожі, одна з них вважається розширенням одного процесора, а інша – паралельним комп'ютером.
Масивно - паралельний процесор (array processor) складається з великої кількості подібних процесорів, що виконують ту саму послідовність команд стосовно до різних наборів даних. Першим у світі таким процесором був ILLIAC IV (Університет Іллінойсу). Він зображений на рис.2.4. Спочатку передбачалося сконструювати машину, що складається з чотирьох секторів, кожний з яких містить решітку 8x8 елементів процесор/пам'ять. Для кожного сектора був один блок контролю. Він розсилав команди, що виконувалися всіма процесорами одночасно, при цьому кожний процесор використовував свої власні дані зі своєї власної пам'яті (завантаження даних відбувалося під час ініціалізації). Через дуже високу вартість був побудований тільки один такий сектор, але він міг виконувати 50 млн операцій з плаваючою точкою у секунду. Якби при створенні машини використовувалися чотири сектори і вона могла б виконувати 1 млрд операцій з плаваючою точкою у секунду, то потужність такої машини у два рази перевищувала б потужність комп'ютерів усього світу.
Блок управління
команди широкосповіщення
Решітка 8х8
із елементів
процесор-пам’ять
П
роцесор
П
ам’ять
Рис. 2.4. Масивно-паралельний процесор ILLIAC IV
Для програмістів векторний процесор (vector processor) дуже схожий на масивно-паралельний процесор (array processor). Як і масивно-паралельний процесор, він дуже ефективний при виконанні послідовності операцій над парами елементів даних. Але, на відміну від першого (array processor), всі операції додавання виконуються в одному блоці сумування, що має конвеєрну структуру. Компанія Cray Research, засновником якої був Сеймур Крей, випустила багато векторних процесорів, починаючи з моделі Сгау-1 (1974) і донині. Cray Research у даний час входить до складу SGI.
Обидва типи процесорів працюють з масивами даних. Обоє вони виконують ті самі команди, що, наприклад, попарно складають елементи для двох векторів. Але якщо в масивно-паралельному процесорі (array processor) є стільки ж підсумовуючих пристроїв, скільки елементів у масиві, векторний процесор (vector processor) містить векторний регістр, що складається з набору стандартних регістрів. Ці регістри послідовно завантажуються з пам'яті за допомогою однієї команди. Команда додавання попарно складає елементи двох таких векторів, завантажуючи їх із двох векторних регістрів у підсумовуючий пристрій з конвеєрною структурою. У результаті з підсумовуючого пристрою виходить інший вектор, що або розміщується у векторний регістр, або відразу використовується в якості операнду при виконанні іншої операції з векторами.
Масивно-паралельні процесори (array processor) випускаються дотепер, але займають незначну сферу комп'ютерного ринку, оскільки вони ефективні при розв'язку тільки таких задач, що вимагають одночасного виконання тих самих обчислень над різними наборами даних. Вони можуть виконувати деякі операції набагато швидше, ніж векторні комп'ютери (vector computer), але вимагають більшої кількості апаратного забезпечення, і для них складно писати програми. Векторний процесор (vector processor), з іншого боку, можна додавати до звичайного процесора. У результаті ті частини програми, що можуть бути перетворені у векторну форму, виконуються векторним блоком, а інша частина програми – звичайним процесором.