Почитал...

Oct 04, 2022 01:39

...про размеры регистровых файлов у Zen/Zen2: https://en.wikichip.org/wiki/amd/microarchitectures/zen_2#Memory_Hierarchy

предыдущему)

Количество регистров: 180 для целочисленного АЛУ и 160 для плавающей запятой.

Между 7 и 8 битами на адрес регистра. Если взять 8 битов, то должно быть достаточно.

Некоторые команды имеют три адреса, например, имитация 3-входа-1-выход LUT в AVX или где оно там. Это неприятно, да и только, ведь такие команды можно побить на команды поменьше.

В общем, 8 битов на адрес регистра, поэтому три адреса это три байта, байт-два (для трёх- и двухадресных команд) на код операции и ещё два-три байта для непосредственного операнда, константы, то бишь. В шесть байтов укладывается.

По идее, размеры памяти под регистры разные для scoreboarding и для адресуемой по содержимому памяти (CAM - content-addressable memory), что используется для переименования регистров. Но здесь речь идёт об экономии одного бита на адрес регистра, около того, и максимальной экономии в три бита при размере команды в 48 битов, то есть, 1/16 или 6,25%. И то, если scoreboarding позволит иметь меньше регистров. Поэтому можно плюнуть.

Весьма интересно.

PS
У Apple ARM M1 размер регистрового файла 354 значения. Теперь вопрос про возможную экономию scoreboarding, если таковая есть, становится более интересным.

процессоры, система команд

Previous post Next post
Up