Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 13. Регистры.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
152 Кб
Скачать
☆

12.3. Регистры общего назначения

Перед разработчиками архитектуры процессора встает несколько вопросов, связанных с организацией набора регистров:

  1. Универсальные регистры или регистры с частичной специализацией на выполнение определенного круга функций?

  2. Универсальные регистры для хранения данных любых форматов или специализированные регистры в соответствии с определенными типами данных?

  3. Количество регистров.

  4. Разрядность регистров и размещение в регистрах данных, разрядность которых превышает разрядность регистров.

Универсальные регистры или регистры с частичной специализацией на выполнение определенного круга функций?

Если в процессоре существуют специализированные регист­ры, то их применение специфицируется неявно через код операции, который требует участия в определенной операции именно такого-то регистра и никакого другого. Явная спецификация операнда при такой организации может только уточнить, какой именно из группы регистров одинакового назначения будет использоваться при выполнении данной команды (если специализированные регистры объединены в группы по назначению). В результате сохраняется пространство в коде команды для другой информации. С другой стороны, любая специализация ограничивает программиста в использовании ресурсов процессора. Однозначного решения этой проблемы, пригодного на все случаи жизни, не существует.

В архитектурах, которые были разработаны еще в 70-х годах 20-го столетия (например, в архитектуре фирмы Intel IA-32), часть регистров общего назначения являлись истинно универсальными, а часть специализированными.

В архитектурах, которые были разработаны значительно позже регистры общего назначения – это универсальные регистры, данные из которых программист мог использовать в любых командах. В тоже время некоторые из этих универсальных регистров все-таки были специализированы, например: один из них предназначался для хранения номера текущей команды; другой – для хранения адреса возврата из подпрограммы; третий – для хранения указателя стека.

Универсальные регистры для хранения данных любых форматов или специализированные регистры в соответствии с определенными типами данных?

Однозначного ответа на этот вопрос не существует.

В архитектурах процессоров для построения специализированных компьютеров с относительно невысокой производительностью для управления различными технологическими объектами предпочтение отдается универсальным регистрам для хранения данных любых форматов данных (с фиксированной точкой, с плавающей точкой, адресов).

В архитектурах процессоров для построения как универсальных, так и специализированных компьютеров с высокой производительностью предпочтение отдается наборам специализированных по форматам данных регистров. В таких архитектурах имеются: универсальные регистры для данных с фиксированной точкой и адресов; универсальные регистры для данных с плавающей точкой; универсальные векторные регистры.

Количество регистров

Чем больше регистров, тем:

меньше обращений в оперативную память, а значит, тем выше производительность компьютера;

больший размер поля адресов регистров в команде и, соответственно, больше формат команды;

больше времени необходимо для их сохранения в оперативной памяти при прерываниях и переключениях процессов;

больше аппаратные затраты на их реализацию.

Чем меньше регистров в процессоре, тем:

чаще придется обращаться к оперативной памяти, а, значит, меньше производительность компьютера;

меньший размер поля адресов регистров в команде и, соответственно, короче формат команды;

меньше времени необходимо для их сохранения в оперативной памяти при прерываниях и переключениях процессов;

меньше аппаратные затраты на их реализацию.

В архитектурах процессоров для построения специализированных компьютеров с относительно невысокой производительностью для управления различными технологическими объектами используется 8 универсальных регистров общего назначения для хранения данных любых форматов данных (с фиксированной точкой, с плавающей точкой, адресов).

В архитектурах процессоров для построения специализированных компьютеров с относительно высокой производительностью для управления различными технологическими объектами используется 16 универсальных регистров общего назначения для хранения данных любых форматов данных (с фиксированной точкой, с плавающей точкой, адресов).

В архитектурах процессоров для построения как универсальных, так и специализированных компьютеров с высокой производительностью используется от 16 до 32 универсальных регистров для данных с фиксированной точкой и адресов; количество регистров для данных с плавающей точкой, векторных регистров – не менее 16.

В некоторых архитектурах (например, в архитектуре EPIC фирмы Intel) используется: 128 регистров для данных с фиксированной точкой и адресов; 128 регистров - для данных с плавающей точкой.

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

Однозначного ответа на вопрос об оптимальном количестве регистров не существует.

Разрядность универсальных регистров

Если в архитектуре предусмотрены регистры для хранения данных с плавающей точкой, то, как правило, такие регистры 64-разрядные.

Если в архитектуре предусмотрены универсальные векторные регистры для хранения данных как с плавающей точкой, так и с фиксированной точкой, то разрядность таких регистров определяется областью применения компьютера. Известны 256- и 512-ти разрядные универсальные векторные регистры.

Универсальные регистры, предназначенные для хранения адресов, должны иметь разрядность, соответствующую длине адреса при включении в со­став компьютера оперативной памяти максимального объема. В ряде архитектур высокопроизводительных процессоров универсальные регистры 64-разрядные.

В некоторых архитектурах универсальные регистры для хранения данных с фиксированной точкой 32-разрядные. Для хранения данных удвоенной разрядности (например, 64-разрядных данных с фиксированной точкой) в таких архитектурах используется пара универсальных регистров.

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