Тут еще стоит добавить, что в NVidia команда БТ перешла почти целиком с менеджером и под условием команду не дробить. Т.е. оставалось вникнуть в детали нового проекта.
Как автор потактового симулятора VIP добавлю фидбэка и комментариев.
Весь пассаж про VLIW нужно переписать. Система команд была VIP, а не VLIW и различия не косметические, а принципиальные. VLIW был Эльбрус, Итаниум, Трансмета, но в том-то и гениальность БАБ, что он не стал цепляться за старое (мог бы! кое-где ещё ходят слухи что он забрал что-то из МЦСТ, но нет!), а придумал совершенно новое. Во VLIW компилятор склеивает независимые инструкции в одну большую. Иногда они потом распадаются для независимого исполнения в аппаратуре. В VIP нет ничего подобного! Инструкции индивидуальны изначально, но вводится инструкция fork, которая порождает независимый поток. Все как с multithreading, только в ассемблере и со взаимодействием потоков через регистры, а не память. Это позволяет компилятору отображать граф вычислений как он есть в ассемблере, а аппаратура уже сама разбирается как его вычислять.
Все разработчики понимали множество спорных моментов, особенные трудности с бинарной трансляцией, не было никакой слепой веры (полный оптимизм излучал только БАБ). Но делали из этого свой вывод: значит нужно исследовать и искать решения. Ведь фундаментальная идея очень красивая (оригинальная версия data flow machine) и стоит того чтобы прилагать усилия.
То что новая система команд это мелочи, ну RISC V никого же не смущает сегодня, есть ниша. Динамическая бинарная трансляция тогда казалась самой спорной частью. А сегодня весь Android с DBT, и норм, главное что оттранслированный код сохраняется на диске (и мы думали также).
Тут еще стоит добавить, что в NVidia команда БТ перешла почти целиком с менеджером и под условием команду не дробить. Т.е. оставалось вникнуть в детали нового проекта.
Спасибо, Валерий, очень интересно.
Как автор потактового симулятора VIP добавлю фидбэка и комментариев.
Весь пассаж про VLIW нужно переписать. Система команд была VIP, а не VLIW и различия не косметические, а принципиальные. VLIW был Эльбрус, Итаниум, Трансмета, но в том-то и гениальность БАБ, что он не стал цепляться за старое (мог бы! кое-где ещё ходят слухи что он забрал что-то из МЦСТ, но нет!), а придумал совершенно новое. Во VLIW компилятор склеивает независимые инструкции в одну большую. Иногда они потом распадаются для независимого исполнения в аппаратуре. В VIP нет ничего подобного! Инструкции индивидуальны изначально, но вводится инструкция fork, которая порождает независимый поток. Все как с multithreading, только в ассемблере и со взаимодействием потоков через регистры, а не память. Это позволяет компилятору отображать граф вычислений как он есть в ассемблере, а аппаратура уже сама разбирается как его вычислять.
Все разработчики понимали множество спорных моментов, особенные трудности с бинарной трансляцией, не было никакой слепой веры (полный оптимизм излучал только БАБ). Но делали из этого свой вывод: значит нужно исследовать и искать решения. Ведь фундаментальная идея очень красивая (оригинальная версия data flow machine) и стоит того чтобы прилагать усилия.
То что новая система команд это мелочи, ну RISC V никого же не смущает сегодня, есть ниша. Динамическая бинарная трансляция тогда казалась самой спорной частью. А сегодня весь Android с DBT, и норм, главное что оттранслированный код сохраняется на диске (и мы думали также).
Жаль, очень жаль проект...