| >> |
No.28090
https://dl.acm.org/doi/pdf/10.1145/3357375
Интересно, а что если ... CGRA, одно горячее ядро на высокой частоте, на нём компилятор по типу transmeta, который динамически компилит произвольную ISA в uops и раскидывает их по execution unitам. uopы пакуются в пакеты и рассылаются по исполнительным блокам по сети на кристалле топологи "звезда". Сеть работает на промежуточной частоте, блоки - на низкой, чтобы поменьше грелись. Блоки могут быть в том числе кешем. Между блоками - умные муксы с регистрами, которые принимают пакеты. В каждом пакете есть адрес мукса и данные, сеть рассылает по адресу. Без необходимости пакеты на мукс не рассылаются, и чип работает как систолический массив. Или наоборот, пакеты рассылаются, и чип работает как либо многоядерный out-of-order процессор на любой ISA, либо как целый SMP-процессор, либо что угодно промежуточное. Низкая частота блоков даёт низкое энергопотребление основной вычислительной сети, софтовая реализация декодинга и планирования позволяет экономить на площади на кристалле и тепловыделении, которые присущи аппаратной реализациям ILP, OoO и спекулятивного исполнения, и позволяет гибко управлять планированием, оптимизируя его под задачи и устраняя баги вроде Spectre, и декодировать множество разных ISA, в том числе кастомных и оптимизированных под задачу.
|