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

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

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

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

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

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

Размер

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

Типы

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

  • Регистры, доступные пользователю, могут быть прочитаны или записаны машинными инструкциями. Наиболее распространенное разделение регистров, доступных пользователю, — это разделение на регистры данных и регистры адреса.
  • Внутренние регистры недоступныдля инструкций и используются внутри процессора для операций.
    • Регистр инструкций содержит инструкцию, которая в данный момент выполняется.
    • Регистры, связанные с извлечением информации из ОЗУ , представляют собой набор регистров хранения, расположенных на отдельных чипах от ЦП:
  • Архитектурные регистрырегистры, видимые программному обеспечению и определяемые архитектурой. Они могут не соответствовать физическому оборудованию, если переименование регистров выполняется базовым оборудованием.

Аппаратные регистры аналогичны, но находятся вне ЦП.

В некоторых архитектурах (таких как SPARC и MIPS ) первый или последний регистр в файле регистров целых чисел является псевдорегистром, поскольку он жестко настроен на то, чтобы всегда возвращать ноль при чтении (в основном для упрощения режимов индексации), и его нельзя перезаписать. В Alpha это также делается для файла регистров с плавающей точкой. В результате этого регистровые файлы обычно цитируются как имеющие на один регистр больше, чем их фактическое количество, пригодное для использования; например, цитируются 32 регистра, когда только 31 из них соответствует приведенному выше определению регистра.

Примеры

В следующей таблице показано количество регистров в нескольких основных архитектурах ЦП. Обратите внимание, что в процессорах, совместимых с x86 , указатель стека ( ESP) считается целочисленным регистром, хотя существует ограниченное количество инструкций, которые могут использоваться для работы с его содержимым. Аналогичные оговорки применимы к большинству архитектур.

Хотя все перечисленные ниже архитектуры различны, почти все они находятся в базовой компоновке, известной как архитектура фон Неймана , впервые предложенная венгерско-американским математиком Джоном фон Нейманом . Также следует отметить, что количество регистров на графических процессорах намного больше, чем на центральных процессорах.

АрхитектураРегистры георадаров/данных+адресовРегистры ФППримечания
AT&T Хоббит00 0стопка из 7Все инструкции по манипулированию данными работают исключительно в регистрах, и перед обработкой данные необходимо переместить в регистр.
Крей-1 [3]8 скалярных данных, 8 адресов8 скалярных, 8 векторных

(64 элемента)

Регистры скалярных данных могут быть целочисленными или с плавающей точкой; также 64 скалярных сверхкритических регистра T и 64 адресных сверхкритических регистра B.
4004 [4]1 аккумулятор, 16 других00 0
8008 [5]1 аккумулятор, 6 других00 0Регистр A — это аккумулятор, в котором выполняется вся арифметика; регистры H и L могут использоваться в комбинации как адресный регистр; все регистры могут использоваться как операнды в инструкциях загрузки/сохранения/перемещения/увеличения/уменьшения и как другой операнд в арифметических инструкциях. Не имеется доступного блока с плавающей точкой (FPU).
8080 [6]1 аккумулятор, 1 указатель стека, 6 других00 0Регистр A — это аккумулятор, в котором выполняется вся арифметика; пары регистров B+C, D+E и H+L могут использоваться в качестве адресных регистров в некоторых инструкциях; все регистры могут использоваться в качестве операндов в инструкциях загрузки/сохранения/перемещения/увеличения/уменьшения и в качестве другого операнда в арифметических инструкциях. Некоторые инструкции используют только H+L; другая инструкция меняет местами H+L и D+E. Процессоры с плавающей точкой, предназначенные для 8080, — Intel 8231, AMD Am9511 и Intel 8232. Они также легко использовались с Z80 и аналогичными процессорами.
iAPX43200 0стопка из 6Машина для укладки штабеля
16-бит x86 [7]00 8стопка из 8

(если присутствует ФП)

Процессоры 8086/8088 , 80186/80188 и 80286 , если они оснащены сопроцессором 8087 , 80187 или 80287 для операций с плавающей точкой, поддерживают 80-битный стек регистров глубиной 8 с некоторыми инструкциями, способными использовать регистры относительно вершины стека в качестве операндов; без сопроцессора регистры с плавающей точкой не поддерживаются.
ИА-32 [8]00 8стопка из 8 (если присутствует FP),

8 (если присутствует SSE/MMX)

Процессор 80386 требует 80387 для операций с плавающей точкой, более поздние процессоры имели встроенную плавающую точку, причем оба имели 80-битный широкий, 8-глубокий стек регистров с некоторыми инструкциями, способными использовать регистры относительно вершины стека в качестве операндов. Pentium III и более поздние имели SSE с дополнительными 128-битными регистрами XMM.
x86-64 [8] [9]0 1616 или 32

(если доступен AVX-512)

Регистры FP представляют собой 128-битные регистры XMM, позже расширенные до 256-битных регистров YMM с AVX/AVX2 и 512-битных регистров ZMM0–ZMM31 с AVX-512 . [10]
Фэрчайлд F8 [11]1 аккумулятор, 64 регистра сверхоперативной памяти, 1 косвенный регистр сверхоперативной памяти (ISAR)Инструкции могут напрямую ссылаться на первые 16 регистров блокнота и могут обращаться ко всем регистрам блокнота косвенно через ISAR [12]
Геод GX1 данные, 1 адрес00 8Geode GX/ Media GX /4x86/ 5x86 — это эмуляция совместимого с 486/Pentium процессора, созданного Cyrix / National Semiconductor . Как и Transmeta , процессор имел слой трансляции, который транслировал код x86 в собственный код и выполнял его. [ требуется ссылка ] Он не поддерживает 128-битные регистры SSE, только стек 80387 из восьми 80-битных регистров с плавающей точкой и частично поддерживает 3DNow! от AMD. Собственный процессор содержит только 1 регистр данных и 1 адресный регистр для всех целей и транслируется в 4 пути 32-битных регистров именования r1 (база), r2 (данные), r3 (обратный указатель) и r4 (указатель стека) в SRAM-памяти SRAM для целочисленных операций. [ требуется ссылка ]
Sunplus μ'nSP (SPG200)8 (sp, r1-r4, bp, sr, pc)00 016-битный процессор от тайваньской компании Sunplus Technology, который можно найти в линейке образовательных игровых консолей V.Smile компании VTech, а также в других консолях, таких как Wireless 60 и различных подключаемых телевизионных играх Jakks Pacific.
VM Labs Nuon00 000 132-битный процессор стековой машины, разработанный VM Labs и специализированный для мультимедиа. Его можно найти в собственной линейке консолей компании Nuon DVD-плеера и Game Wave Family Entertainment System от ZaPit games. На дизайн сильно повлияла технология Intel MMX; он содержал 128-байтовый унифицированный стековый кэш для векторных и скалярных инструкций. Единый кэш можно разделить на восемь 128-битных векторных регистров или тридцать два 32-битных скалярных регистра SIMD посредством переименования банков; в этой архитектуре нет целочисленного регистра.
Ниос II [13] [14]0 3100 8Nios II основан на наборе инструкций MIPS IV [ требуется ссылка ] и имеет 31 32-битный GPR, при этом регистр 0 жестко связан с нулем, и восемь 64-битных регистров с плавающей точкой [ требуется ссылка ]
Моторола 6800 [15]2 данных, 1 индекс, 1 стек00 0
Моторола 68k [16]8 данных (d0–d7), 8 адресов (a0–a7)00 8

(если присутствует ФП)

Адресный регистр 8 (a7) — указатель стека. 68000, 68010, 68012, 68020 и 68030 требуют FPU для операций с плавающей точкой; 68040 имел встроенный FPU. Регистры FP являются 80-битными.
Ш 16-бит00 1600 6
Двигатель эмоций3(ВУ0)+ 32(ВУ1)32 SIMD (интегрирован в UV1)

+ 2 × 32 Vector (выделенный векторный сопроцессор, расположенный рядом с его GPU)

Основное ядро ​​Emotion Engine (VU0) представляет собой сильно модифицированное ядро ​​DSP общего назначения, предназначенное для общих фоновых задач, и содержит один 64-битный аккумулятор, два общих регистра данных и один 32-битный счетчик программ. Модифицированное исполняемое ядро ​​MIPS III (VU1) предназначено для управления данными игры и протоколами и содержит тридцать два 32-битных регистра общего назначения для целочисленных вычислений и тридцать два 128-битных регистра SIMD для хранения инструкций SIMD, потокового значения данных и некоторого целочисленного значения вычислений, а также один регистр аккумулятора для подключения общих вычислений с плавающей точкой к векторному файлу регистров на сопроцессоре. Сопроцессор построен с помощью 32-записного 128-битного векторного регистрового файла (может хранить только векторные значения, которые передаются из аккумулятора в ЦП), и не встроено ни одного целочисленного регистра. Как векторный сопроцессор (VPU 0/1), так и весь основной процессорный модуль Emotion Engine (VU0 + VU1 + VPU0 + VPU1) построены на основе модифицированного набора инструкций MIPS. Аккумулятор в этом случае не является универсальным, а управляющим статусом.
CUDA [17]настраиваемый, до 255 на потокБолее ранние поколения допускали до 127/63 регистров на поток ( Tesla / Fermi ). Чем больше регистров настроено на поток, тем меньше потоков может работать одновременно. Регистры имеют ширину 32 бита; поэтому для чисел с плавающей точкой двойной точности и 64-битных указателей требуются два регистра. Кроме того, он имеет до 8 предикатных регистров на поток. [18]
Серия CDC 6000 [19]0 1600 88 регистров «A», A0–A7, содержат 18-битные адреса; 8 регистров «B», B0–B7, содержат 18-битные целочисленные значения (при этом B0 постоянно установлен в ноль); 8 регистров «X», X0–X7, содержат 60 бит целочисленных или плавающих данных. Семь из восьми 18-битных регистров A были связаны с соответствующими им регистрами X: установка любого из регистров A1–A5 в значение вызывала загрузку памяти содержимого этого адреса в соответствующий регистр X. Аналогично, установка адреса в регистры A6 или A7 вызывала сохранение памяти в этом месте в памяти из X6 или X7. (Регистры A0 и X0 не были связаны таким образом).
Система/360 , [20] Система/370 , [21] Система/390 , z/Архитектура [22]0 164 (при наличии ФП);

16 в моделях G5 и более поздних S/390 и z/Architecture

FP был необязательным в System/360 и всегда присутствовал в S/370 и более поздних версиях. В процессорах с Vector Facility имеется 16 векторных регистров, содержащих машинно-зависимое число 32-битных элементов. [23] Некоторым регистрам назначается фиксированное назначение с помощью соглашений о вызовах ; например, регистр 14 используется для адресов возврата подпрограмм, а для ELF ABI регистр 15 используется как указатель стека. Процессор S/390 G5 увеличил количество регистров с плавающей точкой до 16. [24]
ММИКС [25]256256Набор инструкций, разработанный Дональдом Кнутом в конце 1990-х годов для педагогических целей.
NS320xx [26]00 800 8

(если присутствует ФП)

Xelerated X1000 10 3232/40-битный сетевой процессор на базе стековой машины с модифицированным набором инструкций MIPS и 128-битным блоком с плавающей точкой. [ необходима ссылка ]
Параллаксный пропеллер00 000 2Восьмиядерный 8/16-битный контроллер стековой машины с простой логической схемой внутри, имеет 8 счетчиков (ядер) cog, каждый из которых содержит три 8/16-битных специальных регистра управления с 32-битной x 512 стековой оперативной памятью. Однако он не содержит никаких общих регистров для целочисленных целей. В отличие от большинства файлов теневых регистров в современных процессорах и многоядерных системах, ко всей стековой оперативной памяти в cog можно получить доступ на уровне инструкций, что позволяет всем этим cog действовать как единое ядро ​​общего назначения при необходимости. Блок с плавающей точкой является внешним и содержит два 80-битных векторных регистра.
Итаниум [27]128128И 64 1-битных предикатных регистра и 8 ветвящихся регистров. Регистры FP — 82-битные.
СПАРК [28]0 310 32Глобальный регистр 0 жестко привязан к 0. Использует окна регистров .
IBM СИЛА0 320 32Также включены регистр связи, регистр счетчика и регистр умножения частного (MQ).
PowerPC / Power ISA [29]0 320 32Также включены регистр связи и регистр счета. Процессоры, поддерживающие векторную функцию, также имеют 32 128-битных векторных регистра.
Черный плавник [30]8 данных, 2 аккумулятора, 6 адресов00 0Также включены указатель стека и указатель кадра. Дополнительные регистры используются для реализации циклов с нулевыми накладными расходами и циклических буферных DAG (генераторов адресов данных).
IBM Cell SPE128128 регистров общего назначения, которые могут содержать целые числа, адреса или значения с плавающей точкой [31]
ПДП-100 16Все регистры могут использоваться в общем случае (целое число, число с плавающей точкой, указатель стека, переход, индексация и т. д.). Каждое 36-битное слово памяти (или регистра) также может обрабатываться как полуслово, которое можно считать (18-битным) адресом. Другие интерпретации слов используются определенными инструкциями. В оригинальных процессорах PDP-10 эти 16 GPR также соответствовали основным (т. е. основным ) ячейкам памяти 0–15; аппаратная опция, называемая «быстрой памятью», реализовала регистры как отдельные микросхемы, а ссылки на ячейки памяти 0–15 ссылались на регистры микросхем. Более поздние модели реализовали регистры как «быструю память» и продолжали ссылаться на них ячейками памяти 0–15. Инструкции перемещения принимают операнды (регистр, память)MOVE 1,2 : is register-register и MOVE 1,1000is memory-to-register.
ПДП-1100 700 6

(если присутствует FPP)

R7 — это счетчик программ. Любой регистр может быть указателем стека, но R6 используется для аппаратных прерываний и ловушек.
ВАКС [32]0 16Регистры общего назначения также используются для значений с плавающей точкой. Три из регистров имеют специальное применение: R12 (указатель аргумента), R13 (указатель кадра) и R14 (указатель стека), а R15 относится к счетчику программ.
Альфа [33]0 310 31Регистры R31 (целочисленный) и F31 (с плавающей точкой) жестко привязаны к нулю.
65021 данные, 2 индекса00 0Содержимое регистра A (аккумулятор) процессора 6502 предназначено для хранения данных и адреса памяти (8-битные данные/16-битный адрес), X и Y являются косвенными и прямыми индексными регистрами (соответственно), а регистры SP предназначены только для специальных индексов.
W65C816S00 100 065c816 — 16-битный преемник 6502. X, Y и D (регистр прямой страницы) — это регистры условий, а регистр SP — только конкретный индекс. Главный аккумулятор расширен до 16 бит (C) [34] , при этом сохранен 8 бит (A) для совместимости, а главные регистры теперь могут адресовать до 24 бит (16-битная инструкция данных/24-битный адрес памяти).
Депутат Европарламента00 400 8Media-embedded процессор был 32-битным процессором, разработанным Toshiba с модифицированным набором инструкций 8080. Только регистры A, B, C и D доступны во всех режимах (8/16/32-бит). Он несовместим с x86; однако он содержит 80-битный блок с плавающей точкой, совместимый с x87.
PIC-микроконтроллер00 100 0
AVR-микроконтроллер0 3200 0
ARM 32-бит (ARM/A32, Thumb-2/T32)0 14Варьируется

(до 32)

r15 — это счетчик программ, и не может использоваться как регистр общего назначения; r13 — указатель стека; r8–r13 могут быть переключены на другие (банкированные) при переключении режима процессора. Более старые версии имели 26-битную адресацию, [35] и использовали верхние биты счетчика программ (r15) для флагов состояния, делая этот регистр 32-битным.
ARM 32-бит (большой палец)00 80 16Версия 1 Thumb, которая поддерживала доступ только к регистрам r0–r7 [36]
ARM 64-бит (A64) [37]0 310 32Регистр r31 является указателем стека или жестко привязан к 0, в зависимости от контекста.
МИПС [38]0 310 32Целочисленный регистр 0 жестко привязан к 0.
RISC-V [39]0 310 32Целочисленный регистр 0 жестко подключен к 0. Вариант RV32E, предназначенный для систем с очень ограниченными ресурсами, имеет 15 целочисленных регистров.
Богоявление64 (на ядро) [40]Каждая инструкция контролирует, интерпретируются ли регистры как целые числа или числа с плавающей точкой одинарной точности. Архитектура масштабируется до 4096 ядер, в настоящее время доступны реализации с 16 и 64 ядрами.

Использование

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

Смотрите также

Ссылки

  1. ^ "Что такое регистр процессора?". Образовательные: интерактивные курсы для разработчиков программного обеспечения . Получено 2022-08-12 .
  2. ^ «Обзор методов проектирования и управления файлом регистров ЦП».
  3. ^ "Cray-1 Computer System Hardware Reference Manual" (PDF) . Cray Research . Ноябрь 1977. Архивировано (PDF) из оригинала 2021-11-07 . Получено 2022-12-23 .
  4. ^ "Руководство пользователя микрокомпьютерного набора MCS-4" (PDF) . Intel. Февраль 1973 г. Архивировано (PDF) из оригинала 24.02.2005.
  5. ^ "8008 8 Bit Parallel Central Processor Unit User Manual" (PDF) . Intel. Ноябрь 1973. Архивировано (PDF) из оригинала 2007-10-04 . Получено 23 января 2014 .
  6. ^ "Руководство пользователя микрокомпьютерных систем Intel 8080" (PDF) . Intel. Сентябрь 1975 г. Архивировано (PDF) из оригинала 2010-12-06 . Получено 23 января 2014 г. .
  7. ^ "Справочное руководство программиста 80286 и 80287" (PDF) . Intel. 1987. Архивировано (PDF) из оригинала 2015-07-23.
  8. ^ ab "Руководства для разработчиков программного обеспечения для архитектур Intel 64 и IA-32". Intel. 4 декабря 2019 г.
  9. ^ «Руководство программиста по архитектуре AMD64. Том 1: Прикладное программирование» (PDF) . AMD . Октябрь 2013 г.
  10. ^ «Справочник по программированию расширений набора инструкций архитектуры Intel и будущих функций» (PDF) . Intel . Январь 2018 г.
  11. ^ F8, Предварительное руководство пользователя микропроцессора (PDF) . Fairchild. Январь 1975 г.
  12. ^ F8 Руководство по программированию (PDF) . Fairchild MOS Microcomputer Division. 1977.
  13. ^ "Справочное руководство по процессору Nios II Classic" (PDF) . Altera . 2 апреля 2015 г.
  14. ^ "Справочное руководство по процессору Nios II Gen2" (PDF) . Altera. 2 апреля 2015 г.
  15. ^ "M6800 Programming Reference Manual" (PDF) . Motorola . Ноябрь 1976. Архивировано (PDF) из оригинала 2011-10-14 . Получено 18 мая 2015 .
  16. ^ "Motorola M68000 Family Programmer's Reference Manual" (PDF) . Motorola. 1992 . Получено 10 ноября 2024 .
  17. ^ "Руководство по программированию CUDA C". Nvidia. 2019. Получено 9 января 2020 г.
  18. ^ Цзя, Чжэ; Маджиони, Марко; Штайгер, Бенджамин; Скарпацца, Даниэле П. (2018). «Анализ архитектуры графического процессора NVIDIA Volta с помощью микробенчмаркинга». arXiv : 1804.06826 [cs.DC].
  19. ^ Control Data 6000 Series Computer Systems, Reference Manual (PDF) . Control Data Corporation. Июль 1965 г.
  20. ^ Принципы работы IBM System/360 (PDF) . IBM.
  21. ^ IBM System/370, Принципы работы (PDF) . IBM. 1 сентября 1975 г.
  22. ^ z/Архитектура, принципы работы (PDF) (Седьмое изд.). IBM. 2008.
  23. ^ "IBM Enterprise Systems Architecture/370 и System/370 - Vector Operations" (PDF) . IBM. SA22-7125-3 . Получено 11 мая 2020 г. .
  24. ^ "Микропроцессор IBM S/390 G5" (PDF) .
  25. ^ "Домашняя страница MMIX".
  26. ^ "Series 32000 Databook" (PDF) . National Semiconductor . Архивировано (PDF) из оригинала 2017-11-25.
  27. ^ Архитектура Intel Itanium, Руководство разработчика программного обеспечения, Том 3: Справочник по набору инструкций Intel Itanium (PDF) . Intel. Май 2010 г.
  28. ^ Уивер, Дэвид Л.; Джермонд, Том (ред.). Руководство по архитектуре SPARC, версия 9 (PDF) . Санта-Клара, Калифорния: SPARC International, Inc.
  29. ^ Power ISA Version 3.1B (PDF) . OpenPOWER Foundation. 14 сентября 2021 г.
  30. ^ Blackfin Processor, Справочник по программированию, Версия 2.2 (PDF) . Analog Devices. Февраль 2013 г.
  31. ^ "Архитектура набора инструкций блока синергического процессора, версия 1.2" (PDF) . IBM. 27 января 2007 г.
  32. ^ Леонард, Тимоти Э., ред. (1987). Архитектура VAX, справочное руководство (PDF) . Книги DEC.
  33. ^ Справочное руководство по архитектуре Alpha (PDF) (Четвертое издание). Compaq Computer Corporation. Январь 2002 г.
  34. ^ "Изучение сборки 65816". Super Famicom Development Wiki . Получено 14 ноября 2019 г.
  35. ^ "Стандарт вызова процедур для архитектуры ARM" (PDF) . ARM Holdings . 30 ноября 2013 г. . Получено 27 мая 2013 г. .
  36. ^ "2.6.2. Набор регистров состояния большого пальца". Техническое справочное руководство по ARM7TDMI . ARM Holdings .
  37. ^ Архитектура набора инструкций Arm A64, Armv8, для профиля архитектуры Armv8-A (PDF) . Arm. 2021.
  38. ^ Архитектура MIPS64 для программистов, том II: набор инструкций MIPS64 (PDF) . RISC-V Foundation. 12 марта 2001 г. Получено 6 октября 2024 г.
  39. ^ Waterman, Andrew; Asanovi, Krste, ред. (май 2017 г.). RISC-V, Руководство по набору инструкций, Том I: ISA на уровне пользователя, Версия документа 2.2 (PDF) . RISC-V Foundation.
  40. ^ «Справочник по архитектуре Epiphany» (PDF) .
Взято с "https://en.wikipedia.org/w/index.php?title=Регистр_процессора&oldid=1256657015#Регистр_векторов"