Jump to content

Окно регистрации

Пример оконной системы с четырьмя окнами

В компьютерной технике окна регистров — это функция, которая выделяет регистры подпрограмме путем динамического присвоения подмножества внутренних регистров фиксированных, видимых программисту регистров. Окна регистров реализованы для повышения производительности процессора за счет уменьшения количества операций стека , необходимых для вызовов функций и возвратов. Это одна из наиболее влиятельных особенностей конструкции RISC Беркли , которая позже была реализована в таких архитектурах набора команд , как AMD Am29000 , Intel i960 , Sun Microsystems SPARC и Intel Itanium .

Общая операция

[ редактировать ]

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

Сделать регистры невидимыми можно эффективно; ЦП распознает переход от одной части программы к другой во время вызова процедуры. Это выполняется одной из небольшого количества инструкций ( пролог ) и заканчивается одной из такого же небольшого набора ( эпилог ) . В конструкции Беркли эти вызовы приведут к «замене» нового набора регистров в этот момент или пометке как «мертвые» (или «многоразовые») по завершении вызова.

Применение в процессорах

[ редактировать ]

В конструкции RISC Беркли программам видны только восемь регистров из 64. Полный набор регистров называется файлом регистров , а любой конкретный набор из восьми регистров называется окном . Файл позволяет до восьми вызовов процедур иметь свои собственные наборы регистров. Пока программа не вызывает цепочки длиной более восьми вызовов, регистры никогда не придется очищать , то есть сохранять в основную память или кеш, что является медленным процессом по сравнению с доступом к регистрам.

Для сравнения, компании Sun Microsystems архитектура SPARC обеспечивает одновременный просмотр четырех наборов по восемь регистров в каждом. Три набора по восемь регистров в каждом являются «оконными». Восемь регистров (от i0 до i7) формируют входные регистры текущего уровня процедуры. Восемь регистров (от L0 до L7) являются локальными для текущего уровня процедуры, а восемь регистров (от o0 до o7) являются выходными данными с текущего уровня процедуры на следующий вызываемый уровень. При вызове процедуры окно регистров смещается на шестнадцать регистров, скрывая старые входные регистры и старые локальные регистры и превращая старые выходные регистры в новые входные регистры.Общие регистры (старые выходные регистры и новые входные регистры) используются для передачи параметров. Наконец, восемь регистров (от g0 до g7) глобально видны всем уровням процедур.

AMD 29000 улучшил конструкцию, позволив окнам иметь переменный размер, что помогает использовать его в обычном случае, когда для вызова требуется менее восьми регистров. Он также разделил регистры на глобальный набор из 64 и еще 128 для окон. Аналогично, в архитектуре IA-64 (Itanium) использовались окна переменного размера: 32 глобальных регистра и 96 окон.

В архитектуре Infineon C166 большинство регистров представляют собой просто области во внутренней оперативной памяти, которые обладают дополнительным свойством доступа как регистры. Из них адреса 16 регистров общего назначения (R0-R15) не фиксированы. Вместо этого регистр R0 расположен по адресу, указанному в регистре «Указатель контекста» (CP), а остальные 15 регистров следуют последовательно за ним. [1]

Окна регистрации также обеспечивают простой путь обновления. Поскольку дополнительные регистры невидимы для программ, дополнительные окна можно добавить в любой момент. Например, использование объектно-ориентированного программирования часто приводит к увеличению количества «меньших» вызовов, которые можно удовлетворить, например, увеличив количество окон с восьми до шестнадцати. Именно такой подход использовался в SPARC, который включил больше окон регистров в новые поколения архитектуры. Конечным результатом является меньшее количество медленных операций заполнения и заполнения окон регистров , поскольку окна регистров переполняются реже.

Окна регистрации – не единственный способ улучшить производительность реестра. Группа Стэнфордского университета, разрабатывавшая MIPS, ознакомилась с работой Беркли и решила, что проблема не в нехватке регистров, а в плохом использовании существующих. Вместо этого они потратили больше времени на компилятора своего распределение регистров , убедившись, что он разумно использует больший набор, доступный в MIPS. Это привело к снижению сложности чипа: общее количество регистров сократилось вдвое, но при этом обеспечило потенциально более высокую производительность в тех случаях, когда одна процедура могла использовать большее видимое пространство регистров. В конце концов, современные компиляторы MIPS позволяют лучше использовать пространство регистров даже во время вызовов процедур. [ нужна ссылка ]

  1. ^ «Руководство по набору инструкций для семейства Infineon C166» (PDF) . Кейл . Проверено 12 марта 2020 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c5569a80f7d884c8bb65f01a623c2e3c__1716630420
URL1:https://arc.ask3.ru/arc/aa/c5/3c/c5569a80f7d884c8bb65f01a623c2e3c.html
Заголовок, (Title) документа по адресу, URL1:
Register window - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)