Может ли одно ядро ​​выполнять несколько операций сравнения / добавления одновременно? - PullRequest
0 голосов
/ 26 января 2019

Я хочу знать, может ли ядро ​​ЦП выполнять несколько сравнений x86 и одновременно добавлять операции параллельно.

Так что, если бы я написал что-то вроде

Compare X y
Compare y z
Add X y
Add q p

Будет ли сравнение выполняться одновременно? Будет ли адд работать одновременно?

1 Ответ

0 голосов
/ 26 января 2019

Да, при условии, что ЦП имеет 2 бесплатных компаратора / 2 сумматора, данные независимы друг от друга и диспетчер инструкций может доставлять оба блока одновременно. Вот как работают суперскалярные процессоры . Все процессоры x86 от P5 Pentium, а также все современные процессоры являются суперскалярными.

Это одна из причин того, что новые микроархитектуры работают быстрее, чем старые, хотя тактовый цикл и количество ядер остаются прежними, потому что они могут иметь больше исполнительных блоков, больших блоков, большего кеша, выполнять больше инструкций одновременно наряду с многочисленными другими улучшениями. Например

Современные процессоры x86 могут выдавать 3 инструкции за такт. Конро, однако, был спроектирован так, чтобы получать, отправлять, выполнять и выводить до четырех полных инструкций одновременно, предлагая 33% -ное увеличение по сравнению, скажем, с процессором Pentium 4

https://hexus.net/tech/tech-explained/cpu/17976-intel-core-2-duo-conroe/

Трудно определить четкое значение из-за использования микроопераций и макро-синтеза. Однако, для некоторого грубого сравнения, Sandy Bridge способен достичь 6 микроопераций за цикл . например он может выдерживать 1 итерацию на тактовую пропускную способность для цикла, состоящего из двух add инструкций с источниками памяти, умножения и слитого с макросом dec-and-branch.

Смотри также

...