Arch: new

Все теоритические билеты по Архитектуре ЭВМ в основном были написаны,
кроме: 8.4; 13.4; 14.4; 15.4. Задачи будут позже.
This commit is contained in:
Kirill
2024-12-20 12:10:10 +03:00
committed by Sweetbread
parent 2625f17247
commit 3a96c27c48
80 changed files with 1355 additions and 0 deletions

View File

@ -0,0 +1,5 @@
#### Определение динамического предсказания ветвлений.
**Динамическое предсказание ветвлений** - аппаратные схемы, которые динамически предсказывают переходы на основе поведения программы при исполнении, т.е. информация о предыдущих ветвлениях используется, чтобы динамически предсказать исход текущего перехода. ЦП отслеживает выполнение условных переходов в течение работы программы и куда выполнится переход.
Позволяет сократить время простоя за счёт предварительной загрузки и исполнения инструкций, которые должны выполниться после выполнения инструкции условного перехода.
Прогнозирование ветвлений играет критическую роль, так в большинстве случаев (точность предсказания переходов $\geq 90\%$) позволяет оптимально использовать вычислительные ресурсы процессора.

View File

@ -0,0 +1,21 @@
#### Описание двухуровневого механизма динамического предсказания ветвлений с учетом корреляции.
Соседние переходы могут коррелировать: поведение недавно выполненных переходов влияет на предсказание текущего перехода.
Это имеет место в ветвлениях, использованных для реализации конструкций if-then-else.
Предполагается, что есть 2 уровня предсказаний:
1) **Глобальный**
Запись истории поведения m последних переходов как выполнившихся или нет. Обычно используется m -битный регистр сдвига.
2) **На один адрес ветвления**
- $2^m$ таблиц предсказания, каждая запись таблицы - это n-битный счетчик с насыщением.
- Запись истории $1^{го}$ уровня используется для выбора соответствующей из таблиц предсказания $2^{го}$ уровня. Таким образом каждая с $2^m$ таблиц содержит $2^N$ записей и каждая запись - 2-битный (к примеру счетчик).
- Общее количество необходимых для $2^{го}$ уровня бит: $2^m \times n \times 2^N$. n - количество бит, используемое для предсказания.
**GAp** - Global Adaptive per address.
Используется обозначение GAp $(m,n)$, которое означает:
- Записываются последние $m$ ветвлений для выбора между $2^m$ таблицами истории.
- Каждая таблица истории $2^{го}$ уровня использует n-битные счетчики (имеет разрядность n бит).
- Одноуровневая схема бимодальной ВНТ с 2-битными счетчиками обозначается как предсказатель $(0,2)$

View File

@ -0,0 +1,6 @@
#### Схема MCFarling'a gshare. Преимущества схемы.
**gshare** = global history with index sharing
McFarling предложил использовать и глобальную историю и адрес ветвления, объединяя их хешированием. Функция хеширования: XOR от регистра глобальной истории ветвлений (BHR) и адреса ветвления. Он ожидал, что такой хеш содержит больше информации, чем каждая из компонент. В результате предложенная схема превзошла GAp при малых размерах таблиц.
Новая схема обладает меньшими требованиями к оборудованию для реализации по сравнению с GAp, поскольку использует одну общую таблицу предсказателей.
Требуется на k бит истории $2 \times 2^k$ в таблице 2-битных счетчиков.

View File

@ -0,0 +1,10 @@
#### Определение и принцип работы гибридных/турнирных/комбинированных предсказателей.
**Гибридные (турнирные, комбинированные) предсказатели** - комбинации 2 или более механизмов предсказания переходов.
McFarling заметил, что использование глобальной истории поведения переходов может быть менее эффективно, чем просто использование адреса инструкции перехода, особенно для маленьких таблиц предсказателей. McFarling исследовал несколько различных комбинаций 2-х механизмов предсказания переходов.
Он предложил использовать дополнительный массив 2-бит счетчиков как селекторов для выбора более эффективной схемы предсказания для каждого перехода.
1 схема предсказания соответствует 2 большим значениям селектора, другая $-2^{ом}$ меньшим.
Если $1^{ый}$ предсказатель ошибся, а $2^{ой}$ - нет, счетчик уменьшается.
Если $1^{ый}$ предсказатель прав, а $2^{ой}$ - нет, счетчик увеличивается.
Никаких изменений, если оба оказались правы или ошиблись.