
- •Мови, рівні і віртуальні машини
- •Сучасні багаторівневі машини
- •Поняття архітектури пк
- •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. Обчислення формул в зворотнім польськім записі
- •Питання до лекції
4.6. Арифметичні схеми.
Перейдемо від СІС загального призначення до комбінаційних схем СІС, що використовуються для виконання арифметичних операцій.
Схеми зсуву. Першою із арифметичних схем СІС розглянемо схему зсуву, що містить 8 входів і 8 виходів (рис. 4.15). Вісім вхідних бітів подаються на лінії D0, ..., D7. Вихідні дані, що представляють собою вхідні дані, зміщені на 1 біт, надходять на лінії S0,..., S7. Лінія керування С визначає напрямок зсуву: 0 – ліворуч, 1 – праворуч.
Рис. 4.15 - Схема зсуву
Щоб зрозуміти, як працює така схема, розглянемо пари вентилів І (крім крайніх вентилів). Якщо С=1, правий член кожної пари включається, пропускаючи через себе відповідний біт. Так як правий вентиль І з'єднаний із входом вентиля АБО, що розташований праворуч від цього вентиля І, відбувається зсув вправо. Якщо С=0, включається лівий вентиль І з пари, і тоді відбувається зсув вліво.
Суматори. Схема для виконання операцій додавання є істотною частиною будь-якого процесора. Таблиця істинності для додавання однорозрядних цілих чисел показана на рис. 4.16 а. Тут приведені два результати: сума вхідних змінних А і В і перенос на наступну (ліву) позицію. Схема для обчислення біта суми і біту переносу показана на рис. 4.16 б. Така схема, як правило, називається напівсуматором.
А |
В |
Сума |
Перенос |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
а) б)
Рис. 4.16 - Таблиця істинності для додавання однорозрядних чисел (а); схема напівсуматора (б)
Напівсуматор підходить для додавання бітів нижніх розрядів двох багатобітових слів. Але він не придатний для додавання бітів у середині слова, тому що не може здійснювати перенос у цю позицію. Тому потрібний повний суматор (рис. 4.17). Зі схеми повинно бути ясно, що повний суматор складається з двох напівсуматорів. Сума дорівнює 1, якщо непарне число змінних А, В і Вхід переносу приймає значення 1 (тобто якщо одиниці дорівнює або одна зі змінних, або всі три). Вихід переносу приймає значення 1, якщо або А і В одночасно рівні 1 (лівий вхід у вентиль АБО), або якщо один з них дорівнює 1, а Вхід переносу також дорівнює 1. Два напівсуматора породжують і біти суми, і біти переносу.
Щоб побудувати суматор, наприклад, для двох 16-бітних слів, потрібно продублювати схему, зображену на рис. 4.17 б, 16 разів. Перенос здійснюється в лівий сусідній біт. Перенос у самий правий біт з'єднаний з 0. Такий суматор називається суматором з наскрізним переносом. Додавання 1 до числа 111...111 не здійсниться доти, поки перенос не пройде весь шлях від самого правого біта до самого лівого. Існують більш швидкі суматори, що працюють без подібної затримки. Природно, перевага віддається їм.
Розглянемо приклад більш швидкого суматора. Розіб'ємо 32-розрядний суматор на 2 половини: нижню 16-розрядну і верхню 16-розрядну. Коли починається додавання, верхній суматор ще не може приступити до роботи, оскільки він не знає значення переносу, поки не завершиться 16 сумування у нижньому суматорі.
Однак можна зробити одне перетворення. Замість одного верхнього суматора можна одержати два верхніх суматора, продублювавши відповідні частини апаратного забезпечення. Тоді схема буде складатися з трьох 16-розрядних суматорів: одного нижнього і двох верхніх U0 і U1, що працюють паралельно. У суматор U0 в якості переносу надходить 0, а в суматор U1 в якості переносу надходить 1. Обидва верхніх суматора починають роботу одночасно з нижнім суматором, але тільки один з результатів сумування в двох верхніх суматорах буде правильним. Після додавання 16 нижніх розрядів стає відоме значення переносу у верхньому суматорі, і тоді можна визначити правильну відповідь. При такому підході час додавання скорочується в два рази. Такий суматор називається суматором з вибором переносу. Можна розбити кожний 16-розрядний суматор на два 8-розрядних і т.д.
Арифметико-логічні пристрої. Більшість комп'ютерів містять одну схему для виконання операцій І, АБО і додавання над двома машинними словами. Звичайно така схема для n-бітних слів складається з п ідентичних схем для індивідуальних бітових позицій. На рис. 4.18 зображена така схема, що називається арифметико-логічним пристроєм, або АЛП. Цей пристрій може обчислювати одну з 4 наступних функцій: А І В, А АБО В, і А+В. Вибір на лінії F0 і F1: 00,01,10 або 11 (у двійковій системі числення). Відзначимо, що тут А+В означає арифметичну суму А і В, а не логічну операцію І.
У лівому нижньому куті схеми знаходиться двохрозрядний декодер, який породжує сигнали включення для чотирьох операцій. Вибір операції визначається сигналами керування F0 і F1. В залежності від значень F0 і F1 вибирається одна з чотирьох ліній дозволу, і тоді вихідний сигнал обраної функції проходить через останній вентиль АБО.
А |
В |
Вхід переносу |
Сума |
Вихід переносу |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |

а) б)
Рис. 4.17 - Таблиця істинності для повного суматора (а); схема для повного суматора (б)
Рис. 4.18 - Однорозрядний АЛП
У верхньому лівому куті схеми знаходиться логічний пристрій для обчислення А І В, А АБО В і , але принаймні один з цих результатів проходить через останній вентиль АБО в залежності від того, яку з ліній дозволу, вибрав декодер. Так як рівно один з вихідних сигналів декодера буде дорівнює 1, то і запускатися буде рівно один з чотирьох вентилів І. Інші три вентилі будуть видавати 0 незалежно від значень А і В.
АЛП може виконувати не тільки логічні й арифметичні операції над А і В, але і робити їх рівними нулю, заперечуючи ENA (сигнал дозволу А) або ENB (сигнал дозволу В). Можна також одержати , встановивши INVA (інверсію А). При нормальних умовах і ENA, і ENB рівні 1, щоб дозволити надходження обох вхідних сигналів, а сигнал INVA дорівнює 0. У цьому випадку А і В просто надходять у логічний пристрій без змін.
Рис. 4.19 - Вісім однорозрядних секцій, з'єднаних у 8-розрядний АЛП. (Сигнали дозволу й інверсії не показані для спрощення схеми)
У нижньому правому куті знаходиться повний суматор для підрахунку суми А і В і для здійснення переносів. Переноси необхідні, оскільки кілька таких схем можуть бути з'єднані для виконання операцій над цілими словами. Однорозрядні схеми, подібні тій, яка зображена на рис. 4.18, називаються розрядними мікропроцесорними секціями. Вони дозволяють розробнику сконструювати АЛП будь-якої бажаної ширини. На рис. 4.19 показана схема 8-розрядного АЛП, побудованого з восьми однорозрядних секцій. Сигнал INC (збільшення на одиницю) потрібний тільки для операцій додавання. Він дає можливість обчислювати такі суми, як А+1 і А+В+1.