Разработка устройства предсказания переходов в

advertisement
Разработка устройства предсказания
переходов в микропроцессоре МЦСТ-4R
Выполнил: Фёдоров В.В.
Научный руководитель: Волин В.С.
Требования к устройству
Предсказание для нескольких команд
Тактовая частота 1ГГц
Задержка срабатывания не более 2 тактов
Площадь устройства ~ 0,1 мм2
( техпроцесс 90 нм )
Постановка задачи
Определить организацию подкачки из L1 IC
( 2 или 4 команды за такт)
Реализовать в ядре МЦСТ-4R
устройство предсказания переходов, которое:



соответствовало бы выбранной организации
подкачки команд
удовлетворяло бы заданным ограничениям по
площади и задержке
обеспечивало бы достаточно высокую ( > 85% )
точность предсказания
Маршрут проектирования
Модель системы подкачки на языке С
Выбор варианта кванта подкачки
Оценка производительности предсказателей
Оценка, выбор схемы предсказания
Реализация, тестирование
Встраивание в ядро
Тестирование в сборе
Модель на языке С
Кол-во обращений в кэш IC
60%
Кол-во неудачных предсказаний
35%
30%
55%
Квант 2 команды
50%
Все переходы
25%
20%
45%
15%
40%
10%
35%
Квант 4 команды
30%
GO
LI
Perl
m88
GCC Vortex Ijpeg Compress
Без косвенных переходов
5%
0%
128
256
512
При кванте подкачки 4 команды
по сравнению с квантом 2 команды:
 В 1,6 раза меньше запросов IC
 В 2 раза меньше невыровненных адресов
 Возможное увеличение задержек
1k
2k
4k Объем
Модель на языке С:
Результаты
Определено количество подкачиваемых за такт
команд – 4
Принято решение разработать схему с
одновременным предсказанием для 4 команд
Предсказываются следующие команды
передачи управления:




CALL
Bicc, BPcc, BPr
FBPfcc
Предсказание косвенных переходов неэффективно
Выбрана схема «первого приближения» – BTB
Выбор схемы предсказателя:
Решение с BTB
to I-queue, etc.
TA to F0
mx
F1
GHR
F0
Выбор предсказания
mx
bnk0 bnk1 bnk2 bnk3
TA 0
bnk0
bnk1
XOR
PC
BPU
MCST - 4R core
TAG 0
bnk0
bnk1
PC 0
TAG 1
mx
mx
TA 1
TA 2
PC 1
mx
TAG 2
PC 2
TAG 3
TA 3
PC 3
 Площадь: 0,75 мм2
 Задержка: 2 такта x 1,29 нс
 Объем: 64х4, ассоциативность 2
 Оценка точности на модели: ~ 85%
Выбор схемы предсказателя:
Решение без BTB (вычисление ТА «на лету»)
TA to F0
( F0 )
to I-queue, etc.
CALL predec.
Схема выбора предсказания
br predec.
&
F1
&
&
&
&
mx
&
PC_3
PC_2
bnk0
F0
bnk1
bnk2
64
bnk3
PC_1
PC_0
L1 IC
( CTI disp )
GHR
XOR
BPU
MCST - 4R core
PC
 Площадь: ~ 0,16 мм2
 Задержка: 2 такта x 1,36 нс
 Объем: 1024х4
 Оценка точности на модели: 90 - 95%
Выбор схемы предсказателя:
Решение без BTB (вычисление ТА lsb «на лету»)
TA to F0
( F0 )
to I-queue, etc.
CALL predec.
Схема выбора предсказания
br predec.
&
F1
&
&
&
&
PC msb
mx
&
PC_3
PC_2
bnk0
F0
bnk1
bnk2
13
bnk3
PC_1
PC_0
L1 IC
( CTI disp lsb )
GHR
XOR
BPU
MCST - 4R core
PC
 Площадь: ~ 0,11 мм2
 Задержка: 2 такта x 1,26 нс
 Объем: 1024х4
 Оценка точности на модели: 87 - 95%
Выбор схемы предсказателя:
Решение без BTB (хранение ТА lsb в кэше IC)
TA to F0
( F0 )
to I-queue, etc.
CALL predec.
Схема выбора предсказания
br predec.
&
F1
&
&
&
&
PC msb
mx
&
L1 IC
bnk0
F0
bnk1
bnk2
bnk3
( TA lsb )
branch?
mx
GHR
XOR
BPU
MCST - 4R core
instr
PC
lsb
PC
 Площадь: ~ 0,12 мм2
 Задержка: 2 такта x 1,24 нс
 Объем: 1024х4
 Оценка точности на модели: 87 - 95%
Выбор схемы предсказателя:
Сравнение вариантов
Площадь, мм2
0,8
0,7
0,6
0,5
0,4
0,3
Задержка, x 2 нс
1,36
0,2
1,34
0,1
1,32
0
BTB
1,30
1,28
95%
1,26
On-the-fly TA lsb sum
TA lsb in L1IC
Точность предсказания
1,24
90%
1,22
1,20
BTB
On-the-fly TA lsb sum
TA lsb in L1IC
85%
80%
75%
70%
BTB
On-the-fly TA lsb sum
TA lsb in L1IC
Проблемы реализации устройства
выбранной схеме
Конфликты по доступу в таблицы
 Байпассирование памяти
Спекулятивное обновление
 APT – таблица предсказанных
незавершенных переходов
 Резервирование регистра истории
 Двойное обновление истории
Запаздывание регистра истории
 Подача «правильной» истории
сразу после неудачного предсказания
Нагрузка на кэш команд
 Вычисление ТА во время подкачки кода,
запись младших разрядов в IC
по
Результаты




Путем моделирования определен квант подкачки шириной
4 команды
Произведено сравнение трех различных схем устройств
Выбрана схема с хранением TA в кэше команд,
обеспечивающая меньшую площадь и меньшую задержку
Разработано устройство предсказания переходов:
Объем 4096 строк, в 4 столбцах
Двухтактный конвейер
Предсказание для 4 команд одновременно
Спекулятивное обновление, с восстановлением
Потери при неудачном предсказании – 4 такта

Устройство встроено в ядро и отлажено

Произведено тестирование ( увеличение IPC )

Проведен синтез ( длительность такта – 1,24 нс )
Благодарю за внимание.
Благодарю за внимание.
Задержка исполнения перехода
P * d + MP * c
Prediction rate,
delay for prediction
MisPrediction rate,
cancellation delay
0,9 * 1 + 0,1 * 4 = 1,3 такта
Однотактный «предсказатель-кэш»
Большая площадь
Предсказание для двух команд max
Малый объем
Задержка исполнения перехода > 0,7
Download