Разработка устройства предсказания переходов в микропроцессоре МЦСТ-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