Size: a a a

Compiler Development

2020 February 04

AG

Alex Gryzlov in Compiler Development
а кстати у современных x64 по прежнему внутри RISC-подобное ядро?
источник

TS

Timur Safin in Compiler Development
ну после декодирования во фронте операции разбиваются на uops, и да, их можно назвать RISC операциями
источник

AT

Alexander Tchitchigin in Compiler Development
Alex Gryzlov
а кстати у современных x64 по прежнему внутри RISC-подобное ядро?
Более того, у современных RISC внутри RISC-подобное ядро! 😂
источник

AG

Alex Gryzlov in Compiler Development
верхний набор недостаточно reduced?
источник

TS

Timur Safin in Compiler Development
дак понятие  Reduced vs Complex сегодня достаточно размыто. Вот  Power процессор - это RISC или CISC?
источник

AT

Alexander Tchitchigin in Compiler Development
Alex Gryzlov
верхний набор недостаточно reduced?
Угу. Тоже на uops разбивают. По крайней мере некоторые особо заковыристые инструкции.
источник

AT

Alexander Tchitchigin in Compiler Development
Как иначе JS в процессоре поддержать-то? 😂
источник

PS

Peter Sovietov in Compiler Development
На самом деле эти uops —  скорее, RISC-подобный IR, как в компиляторах. А в микроархитектуре там CISC/VLIW/micro-SIMD... :) Те же микроперации часто собирают в CISC-операции. Это известный прием под названием macro-op fusion micro-op fusion.
источник

AT

Alexander Tchitchigin in Compiler Development
Timur Safin
дак понятие  Reduced vs Complex сегодня достаточно размыто. Вот  Power процессор - это RISC или CISC?
Да оно размылось где-то во времена Pentium Pro, когда придумали декодировать в uops, исполняющиеся на более высокой частоте. Производители RISC-процессоров на тот момент справедливо решили, что это отличная идея, которую не грех стырить. 😊
источник

TS

Timur Safin in Compiler Development
но от того что нексолько uop или макро инструкций фьюзятся в одну, они не делают CISC  внутри
источник

TS

Timur Safin in Compiler Development
Alexander Tchitchigin
Да оно размылось где-то во времена Pentium Pro, когда придумали декодировать в uops, исполняющиеся на более высокой частоте. Производители RISC-процессоров на тот момент справедливо решили, что это отличная идея, которую не грех стырить. 😊
(вот на счет "исполняющиеся на более высокой частоте" это вы зря)
источник

TS

Timur Safin in Compiler Development
и фронт и экзекьютеры (IIRC)  в одном клок домене
источник

AT

Alexander Tchitchigin in Compiler Development
Timur Safin
(вот на счет "исполняющиеся на более высокой частоте" это вы зря)
Ну да, "более высокой" чем что? Заявляют же вообще максимальную частоту. А фактически там целый набор частот по слоям, так что я даже не знаю уже что такое "частота процессора"...
источник

AT

Alexander Tchitchigin in Compiler Development
Но при создании Pentium Pro сравнивали с частотой "честных" CISC без декодирования же, и вот по сравнению с ними частота ядра была сильно больше.
источник

TS

Timur Safin in Compiler Development
что есть процессор без декодирования? не понимаю. Даже в самых простых учебных процессорах есть Fetch -Decode - Execute - Retire стадии. Как без декодирования то?
источник

AT

Alexander Tchitchigin in Compiler Development
В смысле не было uops и декодирования в них.
источник

PS

Peter Sovietov in Compiler Development
Timur Safin
но от того что нексолько uop или макро инструкций фьюзятся в одну, они не делают CISC  внутри
А как же этот процесс называть? :)
источник

AT

Alexander Tchitchigin in Compiler Development
Latency конвеера было равно времени выполнения самой "толстой" CISC-инструкции (видимо, DIV). Не так?
источник

TS

Timur Safin in Compiler Development
хмм, ну закрывая глаза на "бульки" (таким вроде термином наши переводили bubble stall) да, задержка конвейера это максимальная длина стадий в нём. (Но кажется эта цифра ни о чём, и IPC длинным конвейером не увеличить)
источник

TS

Timur Safin in Compiler Development
(disclaimer, я, кстати, никогда не был аппаратным инженером, тусил с ними рядом при разработке симулятора и многое принял на веру, так что могу многое и забыть)
источник