Почему регистры с плавающей запятой отличаются от регистров общего назначения - PullRequest
2 голосов
/ 27 мая 2020

Большинство архитектур имеют разные наборы регистров для хранения обычных целых чисел и чисел с плавающей запятой. С точки зрения двоичного хранилища не имеет значения, где что хранится, верно? это просто 1 и 0, не могли бы они передать одни и те же регистры общего назначения в ALU с плавающей запятой? Регистры

SIMD (xmm в x64) способны хранить как числа с плавающей запятой, так и обычные целые числа, так почему же Разве та же концепция не применима к обычным регистрам?

1 Ответ

4 голосов
/ 27 мая 2020

Для практического проектирования процессора необходимо учитывать гораздо больше вопросов, чем «точка зрения на двоичное хранилище».

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

Поэтому рекомендуется размещать регистры рядом с единицей арифметики c, которая будет использовать их содержимое. С отдельными целочисленными регистрами и регистрами с плавающей запятой процессор может иметь целочисленные регистры, близкие к обычному ALU, и регистры с плавающей запятой, близкие к модулю с плавающей запятой.

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

Я не знаю, какая из этих проблем имеет значение в настоящее время, но в целом разделение банков регистров дает Возможности разработчиков процессоров, которых у них не было бы, если бы банки были объединены.

...