Как раз желание узнать где в БЕСМ-6 (и нашей МЕСМ-6) можно что-то сделать по современному в плане микроархитектуры и побудило меня начать изучать курс по микроархитектуре (High performance computer arch на Udacity от Georgia Tech).
Еще не завершил курс, но уже видно что в БЭСМ-6 уже много чего было сделано по оптимизациям для варианта одноадресной машины. Есть кеши, конвеер, вариант префетча из памяти. Думал что может быть можно прикрутить внеочередное исполнение, но проблема в том что оно хорошо работает только для класса программ где оно более менее явно присутствует (другими словами это больше свойство программы). Мешает зависимость команд от предидущего результата на аккумуляторе. Место где разрывается эта связь это сохранение/чтение из памяти результата, предполагаю что нужен анализ трасс.
Очень интересно узнать комментарии людей которые занимаются изготовлением процессоров, какие моменты в БЕСМ можно улучшить
Чтобы выяснить, что можно улучшить минимумом средств, без превращения процессора в монстра с аппаратно реализованной двоичной рекомпиляцией в регистровую архитектуру, нужно сначала сделать тактово-аккуратную модель и узнать, какой, собственно, процент тактов занимает работа исключительно АУ - потому что от ускорения АУ, если львиную долю времени оно работает с совмещением выполнения других действий, толку не будет: если оно окажется "слишком быстрым", оно начнет простаивать.
Если, не дай бог, окажется, например, что заметное время тратится на приведение переносов после сложения и умножения, и что добавлением цепей быстрого переноса (грубо, с дюжину-другую ТЭЗов) его можно было бы сократить, ускорив машину процентов на 5-7, будет смешно.
no subject
Date: 2024-05-29 18:52 (UTC)no subject
Date: 2024-05-31 03:36 (UTC)no subject
Date: 2024-05-31 04:53 (UTC)no subject
Date: 2024-05-31 05:46 (UTC)Еще не завершил курс, но уже видно что в БЭСМ-6 уже много чего было сделано по оптимизациям для варианта одноадресной машины. Есть кеши, конвеер, вариант префетча из памяти. Думал что может быть можно прикрутить внеочередное исполнение, но проблема в том что оно хорошо работает только для класса программ где оно более менее явно присутствует (другими словами это больше свойство программы). Мешает зависимость команд от предидущего результата на аккумуляторе. Место где разрывается эта связь это сохранение/чтение из памяти результата, предполагаю что нужен анализ трасс.
Очень интересно узнать комментарии людей которые занимаются изготовлением процессоров, какие моменты в БЕСМ можно улучшить
no subject
Date: 2024-05-31 15:55 (UTC)Если, не дай бог, окажется, например, что заметное время тратится на приведение переносов после сложения и умножения, и что добавлением цепей быстрого переноса (грубо, с дюжину-другую ТЭЗов) его можно было бы сократить, ускорив машину процентов на 5-7, будет смешно.