Микроархитектура. Тракт данных

Микроархитектура. Тракт данных

Xalion

Сегодня начнём изучать микроархитектуру, мы касались её в прошлых статьях: о выполнении команд процессором, о конвейерах и об уровнях компьютера.


Микроархитектура – прослойка между командами процессора и цифровым логическим уровнем компьютера.
Она включает три понятия: микропрограмма, тракт данных и конвейер.

Микропрограмма – интерпретатор с уровня команд процессора(ISA).
Она вызывается из программируемого запоминающего устройства или же ПЗУ, определяет тип команды и выполняет.
Микропрограмма работает с регистрами, как с переменными.
Все регистры образуют состояние компьютера, и каждая команда уровня ISA меняет состояние.
Тракт данных – группа 32-разрядных регистров, АЛУ с двумя входами, и шины. Для упрощения программирования, каждый регистр носит название своей команды ISA:
LV указывает на локальные переменные,
SP указывает на стек,
TOS указывает на вершину стека.
Данные по тракту передаются через три шины: А, С и В.
A передаёт данные из регистра H в АЛУ.
B передаёт данные из остальных регистров в АЛУ.
C передаёт данные из АЛУ в регистры.
Строение тракта данных


Работа тракта данных состоит из четырёх этапов:

  1. Считывание данных из постоянной памяти.
  2. Передача данных из регистров в АЛУ.
  3. Операция над данными в АЛУ.
  4. Возвращение данных из АЛУ в регистры.


Мы хотим умножить два числа: 15 на 17.

Калькулятор получил задание: "умножь это на это."

Операционная система через команды процессора находит регистры для записи и записывает два числа. Чтобы АЛУ получило эти числа, должен появится сигнал – разряд тока на двух регистрах.


АЛУ принимает данные через вход B, он нужен для обыкновенных данных на обработку.

Вход А нужен для специального регистра H, он хранит данные для следующей операции.
Например, посчитать два в третьей степени: 2³ = 2 × 2 × 2. АЛУ посчитает числа за два цикла:

  1. АЛУ посчитает 2 × 2 и отправит четвёрку в регистр H.
  2. АЛУ достанет четвёрку из регистра H и умножит её на два: 4 × 2.


Все операции выполняются методом сдвига: чтобы из одного числа получить другое, биты сдвигаются влево или вправо.

Сдвиг числа влево на два бита


Числа умножены и АЛУ отправляет их по шине C в регистры управления памятью. Оттуда они отправятся назад в память.


В следующей статье разберём микроархитектуру Intel Core i7.

Report Page