<<
>>

Тракт данных

Тракт данных — это часть центрального процессора, состоящая из АЛУ (арифметико-логического устройства), его входов и выходов. Тракт данных нашей микроархитектуры показан на рис. 4.1.
Хотя этот тракт данных и был оптимизирован для интерпретации IJVM-программ, он схож с трактами данных большинства компьютеров. Тракт содержит ряд 32-разрядных регистров, которым мы приписали символические названия (например, PC, SP, MDR). Хотя некоторые из этих названий нам знакомы, важно понимать, что эти регистры доступны только на уровне микроархитектуры (для микропрограммы). Им даны такие названия, поскольку они обычно содержат значения, соответствующие переменным с аналогичными названиями на уровне архитектуры команд. Содержание большинства регистров передается на шину В. Выходной сигнал АЛУ управляет схемой сдвига и далее шиной С. Значение с шины С может записываться в один или несколько регистров одновременно. Шину А мы введем позже, а пока представим, что ее нет.

Рис.

4.1. Тракт данных для микроархитектуры, рассматриваемой в этой главе

Данное АЛ У идентично тому, которое изображено на рис. 3.18 и 3.19. Его функционирование зависит от линий управления. На рис. 4.1 перечеркнутая стрелочка с цифрой 6 сверху указывает на наличие шести линий управления АЛУ. Из них F0 и Ft служат для задания операции, ENA и ENB — для разрешения входных сигналов А и В соответственно, INVA — для инверсии левого входа и INC — для переноса бита в младший разряд, что эквивалентно прибавлению единицы к результату. Однако не все 64 комбинации значений на линиях управления могут быть полезными.

Некоторые комбинации показаны в табл.

4.1. Не все из этих функций нужны для машины IJVM, но многие из них могут пригодиться для полнофункциональной машины (JVM). В большинстве случаев существует несколько возможностей для достижения одного и того же результата. В данной таблице знак плюс (+) означает арифметический плюс, а знак минус (-) — арифметический минус, поэтому -А означает дополнение А.
Таблица 4.1. Некоторые комбинации сигналов АЛУ и соответствующие им функции
Порядковый

номер

Fo F, ENA ENB INVA INC Функция
1 0 1 1 0 0 0 A
2 0 1 0 1 0 0 В
3 0 1 1 0 1 0 A
4 1 0 1 1 0 0 В
5 1 1 1 1 0 0 A + В
6 1 1 1 1 0 1 A + В + 1
7 1 1 1 0 0 1 A + 1
8 1 1 0 1 0 1 В + 1
9 1 1 1 1 1 1 В - A
10 1 1 0 1 1 0 В - 1
11 1 1 1 0 1 1 -A
12 0 0 1 1 0 0 АИВ
13 0 1 1 1 0 0 А ИЛИ В
14 0 1 0 0 0 0 0
15 0 1 0 0 0 1 1
16 0 1 0 0 1 0 -1

АЛУ, изображенное на рис. 4.1, содержит два входа для данных: левый вход (А) и правый вход (В).

С левым входом связан регистр временного хранения Н. С правым входом связана шина В, на которую могут поступать значения с одного из девяти источников, что показано с помощью девяти серых стрелок, примыкающих к шине. Существует и другая разработка АЛУ с двумя полноразрядными шинами, мы рассмотрим ее чуть позже в этой главе.

В регистр Н может поступать функция АЛУ, которая проходит через правый вход (из шины В) к выходу АЛУ. Одна из таких функций — сложение входных сигналов АЛУ, только при этом сигнал ENA отрицателен, и левый вход получает значение 0. Если к значению шины В прибавить 0, это значение не изменится. Затем результат проходит через схему сдвига (также без изменений) и сохраняется в регистре Н.

Существует еще две линии управления, которые используются независимо от остальных. Они служат для управления выходом АЛУ. Линия SLL8 (Shift Left Logical — логический сдвиг влево) сдвигает число влево на 1 байт, заполняя 8 самых младших двоичных разрядов нулями. Линия SRA1 (Shift Right Arithmetic — арифметический сдвиг вправо) сдвигает число вправо на 1 бит, оставляя самый старший двоичный разряд без изменений.

Можно считать и записать один и тот же регистр за один цикл. Для этого, например, нужно поместить значение SP на шину В, закрыть левый вход АЛУ, установить сигнал INC и сохранить полученный результат в регистре SP, увеличив таким образом его значение на 1 (см. строку 8 в табл. 4.1). Если один и тот же регистр может считываться и записываться за один цикл, то как при этом предотвратить появление ненужных данных? Дело в том, что процессы чтения и записи происходят в разных частях цикла. Когда в качестве правого входа АЛУ выбирается один из регистров, его значение помещается на шину В в начале цикла и хранится там на протяжении всего цикла. Затем АЛУ выполняет свою работу, результат которой через схему сдвига поступает на шину С. Незадолго до конца цикла, когда значения выходных сигналов АЛУ и схемы сдвига стабилизируются, содержание шины С передается в один или несколько регистров. Одним из этих регистров вполне может быть тот, с которого поступил сигнал на шину В. Точная синхронизация тракта данных делает возможным считывание и запись одного и того же регистра за один цикл. Об этом речь пойдет далее.

<< | >>
Источник: Таненбаум Э.. Архитектура компьютера. 5-е изд. 2007

Еще по теме Тракт данных:

  1. Григорьев Ю.А., Ревунков Г.И.. Банки данных, 2002
  2. Оценка данных о личности.
  3. 18.4. Права субъекта персональных данных
  4. Банк данных
  5. Анализ и интерпретация полученных данных
  6. Анализ и интерпретация полученных данных
  7. Подготовка исходных данных
  8. 4.5. Право изготовителя базы данных
  9. 12.4. Анализ эмпирических данных
  10. 3.3.4. Методы обработки и анализа данных