Регистр процессора


Регистр процессора — это быстродоступное место, доступное процессору компьютера . Регистры обычно состоят из небольшого объема быстрой памяти , хотя некоторые регистры имеют определенные аппаратные функции и могут быть доступны только для чтения или только для записи. В компьютерной архитектуре регистры обычно адресуются механизмами, отличными от основной памяти , но в некоторых случаях им может быть назначен адрес памяти, например, DEC PDP-10 , ICT 1900 .

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

Регистры процессора обычно находятся на вершине иерархии памяти и обеспечивают самый быстрый способ доступа к данным. Термин обычно относится только к группе регистров, которые непосредственно закодированы как часть инструкции, как определено набором инструкций . Однако современные высокопроизводительные процессоры часто имеют дубликаты этих «архитектурных регистров», чтобы повысить производительность за счет переименования регистров , что позволяет выполнять параллельное и спекулятивное выполнение . Современный дизайн x86 приобрел эти технологии примерно в 1995 году с выпуском Pentium Pro , Cyrix 6x86 , Nx586 и AMD K5 .

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

Регистры обычно измеряются количеством битов, которые они могут содержать, например, « 8-битный регистр», « 32-битный регистр» или « 64-битный регистр» или даже больше. В некоторых наборах инструкций регистры могут работать в различных режимах, разбивая свою память на более мелкие (например, 32-разрядные на четыре 8-разрядных), в которые могут быть загружены несколько данных (вектор или одномерный массив данных ). и оперировали одновременно. Обычно это реализуется путем добавления дополнительных регистров, которые отображают свою память в больший регистр. Процессоры, способные выполнять одну команду над несколькими данными, называются векторными процессорами .

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