Микроархитектура. Тракт данных
XalionСегодня начнём изучать микроархитектуру, мы касались её в прошлых статьях: о выполнении команд процессором, о конвейерах и об уровнях компьютера.
Микроархитектура – прослойка между командами процессора и цифровым логическим уровнем компьютера.
Она включает три понятия: микропрограмма, тракт данных и конвейер.
Микропрограмма – интерпретатор с уровня команд процессора(ISA).
Она вызывается из программируемого запоминающего устройства или же ПЗУ, определяет тип команды и выполняет.
Микропрограмма работает с регистрами, как с переменными.
Все регистры образуют состояние компьютера, и каждая команда уровня ISA меняет состояние.
Тракт данных – группа 32-разрядных регистров, АЛУ с двумя входами, и шины. Для упрощения программирования, каждый регистр носит название своей команды ISA:
LV указывает на локальные переменные,
SP указывает на стек,
TOS указывает на вершину стека.
Данные по тракту передаются через три шины: А, С и В.
A передаёт данные из регистра H в АЛУ.
B передаёт данные из остальных регистров в АЛУ.
C передаёт данные из АЛУ в регистры.
Работа тракта данных состоит из четырёх этапов:
- Считывание данных из постоянной памяти.
- Передача данных из регистров в АЛУ.
- Операция над данными в АЛУ.
- Возвращение данных из АЛУ в регистры.
Мы хотим умножить два числа: 15 на 17.
Калькулятор получил задание: "умножь это на это."
Операционная система через команды процессора находит регистры для записи и записывает два числа. Чтобы АЛУ получило эти числа, должен появится сигнал – разряд тока на двух регистрах.
АЛУ принимает данные через вход B, он нужен для обыкновенных данных на обработку.
Вход А нужен для специального регистра H, он хранит данные для следующей операции.
Например, посчитать два в третьей степени: 2³ = 2 × 2 × 2. АЛУ посчитает числа за два цикла:
- АЛУ посчитает 2 × 2 и отправит четвёрку в регистр H.
- АЛУ достанет четвёрку из регистра H и умножит её на два: 4 × 2.
Все операции выполняются методом сдвига: чтобы из одного числа получить другое, биты сдвигаются влево или вправо.
Числа умножены и АЛУ отправляет их по шине C в регистры управления памятью. Оттуда они отправятся назад в память.
В следующей статье разберём микроархитектуру Intel Core i7.