
- •Мови, рівні і віртуальні машини
- •Сучасні багаторівневі машини
- •Поняття архітектури пк
- •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. Обчислення формул в зворотнім польськім записі
- •Питання до лекції
7.2. Тракт даних
Тракт даних - це частина центрального процесора, що складається з ЯСКРАВО-ЧЕРВОНОГО (арифметико-логічного) пристрою і його входів і виходів. Тракт даних нашої мікроархітектури свідчить рис. 7.1. Він містить ряд 32-розрядних регістрів, яким ми приписали символічні назви (наприклад, PC, SP, MDR). Хоча деякі з цих назв нам знайомі важливо розуміти, що ці регістри доступні тільки на мікроархітектурному рівні (для мікропрограми). Їм дані такі назви, оскільки сморід звичайно містять значення, відповідних змінних з аналогічними назвами на рівні архітектури команд. Зміст більшості регістрів передається на шину В. Вихідного сигнал АЛЛУ запускає схему зрушення, а потім шину С. Значення з шини зможе записуватися в один або декілька регістрів одночасно. Шину А ми введемо пізніше, а поки уявимо, що її немає.
Регістри управління
В основу пам’яттю
пам’яті і
з неї
Дозволяючий
сигнал на шину В
Запис сигналу
Ш
ина
С
шини С в регістр
Шина В
6 А В
Управління АЛУ N
АЛУ Z
Схема зрушення Управління схемою зрушення
Рис. 7.1. Тракт даних микроархітектури, що розглядається
В цьому розділі
Дане АЛЛУ ідентичне тому, яке зображене в попередній лекції. Його функціонування залежить від ліній управління. На рис. 7.1 перекреслена стрілка з цифрою 6 зверху указує на наявність шести ліній управління АЛЛУ. З їх Fo і F1 служать для визначення операції, ENA і ENB - для дозволу вхідних сигналів А і Біля відповідно, INVA - для інверсії лівого входу і INC - для збільшення одиниці до результату. Проте не всі 64 комбінації значень на лініях управління можуть бути корисні.
Деякі комбінації показані табл. 4.1. Не всі з цих функцій потрібні для IJVM, але багато хто з їх може стать в нагоді для повної JVM. В більшості випадків існує декілька можливостей для досягнення одного і того ж результату. Біля даній таблиці знак ?+? означає арифметичний плюс, а знак ?-? - арифметичний мінус, тому -А означає доповнення А.
Табліця 7.1. Деякі комбінації сигналів аллу і відповідні їм функції
F0 |
F1 |
ENA |
ENB |
INVA |
INC |
Функція |
|||||
0 |
1 |
1 |
0 |
0 |
0 |
А |
|||||
0 |
1 |
0 |
1 |
0 |
0 |
В |
|||||
0 |
1 |
1 |
0 |
1 |
0 |
Ó |
|||||
1 |
0 |
1 |
1 |
0 |
0 |
В |
|||||
1 |
1 |
1 |
1 |
0 |
0 |
А+В |
|||||
1 |
1 |
1 |
1 |
0 |
1 |
А+В+1 |
|||||
1 |
1 |
1 |
0 |
0 |
1 |
А+1 |
|||||
1 |
1 |
0 |
1 |
0 |
1 |
В+1 |
|||||
1 |
1 |
1 |
1 |
1 |
1 |
В-А |
|||||
1 |
1 |
0 |
1 |
1 |
0 |
В-1 |
|||||
1 |
1 |
1 |
0 |
1 |
1 |
-А |
|||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|||||
0 |
0 |
1 |
1 |
0 |
0 |
А І В |
|||||
0 |
1 |
1 |
1 |
0 |
0 |
А АБО В |
|||||
0 |
1 |
0 |
0 |
0 |
0 |
0 |
|||||
0 |
1 |
0 |
0 |
0 |
1 |
1 |
|||||
0 |
1 |
0 |
0 |
1 |
0 |
-1 |
АЛЛУ, зображене на рис. 7.1, містить два входи для даних: лівий вхід (А) і правий вхід (В). З лівим входом пов'язаний регістр вартового зберігання Н. З правимо входом пов'язана шина В, в яку можуть поступати значення з одного з дев'яти джерел, що показане за допомогою дев'яти сірих стрілок, що примикають до шини. Існує і інша розробка АЛЛУ з двома повно розрядними шинами, і ми розглянемо її трохи пізніше в цьому розділі.
Біля регістр Н може поступати функція АЛЛУ, яка проходити через правий вхід (з шини В) до виходу АЛЛУ, Одна з таких функцій - складання вхідних сигналів АЛЛУ, тільки при цьому сигнал ENA заперечується, і лівий вхід дістає значення 0. Якщо до значення шини В додати 0, це значення не зміниться. Потім результат проходити через схему зрушення (також без змін) і зберігається в регістрі Н.
Існує ще дві лінії управління, які використовуються незалежно від інших. Лінія SLL8 (Shift Left Logical - логічне зрушення вліво) зрушує число вліво на 1 байт, заповнюючи 8 наймолодших двійкових розрядів нулями; лінія SRA1 (Shift Right Arithmetic - арифметичне зрушення управо) число управо на 1 біт, залишаючи самий старший двійковий розряд без змін.
Можна вважати і записати один і тієї ж регістр за один цикл. Для цього, наприклад, потрібно помістити значення SP на шину В, закритий лівий вхід АЛЛУ, встановити сигнал 1NC і зберегти отриманий результат в регістрі SP, збільшивши таким чином його значення на 1 (див. восьмий ряд табл. 4.1). Якщо один і тієї ж регістр може прочитуватися і записуватися за один цикл, то як при цьому запобігти появі непотрібних даних? Річ біля тому, що процеси читання і запису проходять в різних частинах циклу. Колі як правий вхід АЛЛУ вибирається один з регістрів, його значення поміщається на шину В на качану циклу і зберігається там впродовж всього циклу. Потім АЛЛУ виконує свою роботу і проводити результат, який через схему зрушення поступає на шину С. Незадовго до кінця циклу, коли значення вихідних сигналів АЛЛУ і схеми зрушення стабілізувалися, зміст шини З передається в один або декілька регістрів. Одним з цих регістрів цілком може бути тієї, від якого поступивши сигнал на шину В. Точна синхронізація тракту даних робить можливим прочитування і запис одного і того ж регістра за один цикл. Про це мова піде нижче.