Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекцii_ALL.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.55 Mб
Скачать

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). Якщо один і тієї ж регістр може прочитуватися і записуватися за один цикл, то як при цьому запобігти появі непотрібних даних? Річ біля тому, що процеси читання і запису проходять в різних частинах циклу. Колі як правий вхід АЛЛУ вибирається один з регістрів, його значення поміщається на шину В на качану циклу і зберігається там впродовж всього циклу. Потім АЛЛУ виконує свою роботу і проводити результат, який через схему зрушення поступає на шину С. Незадовго до кінця циклу, коли значення вихідних сигналів АЛЛУ і схеми зрушення стабілізувалися, зміст шини З передається в один або декілька регістрів. Одним з цих регістрів цілком може бути тієї, від якого поступивши сигнал на шину В. Точна синхронізація тракту даних робить можливим прочитування і запис одного і того ж регістра за один цикл. Про це мова піде нижче.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]