Регистр процессора
Регистр процессора компьютера — это быстро доступное место, доступное процессору . [1] Регистры обычно состоят из небольшого объема быстрой памяти , хотя некоторые регистры имеют определенные аппаратные функции и могут быть доступны только для чтения или только для записи. В компьютерной архитектуре к регистрам обычно обращаются с помощью механизмов, отличных от основной памяти , но в некоторых случаях им может быть назначен адрес памяти , например DEC PDP-10 , ICT 1900 . [2]
Почти все компьютеры, независимо от архитектуры загрузки/сохранения или нет, загружают элементы данных из большей памяти в регистры, где они используются для арифметических операций , побитовых операций и других операций, а также управляются или проверяются машинными инструкциями . Манипулируемые элементы затем часто сохраняются обратно в основную память либо с помощью той же инструкции, либо с помощью следующей. Современные процессоры используют в качестве основной памяти либо статическое , либо динамическое ОЗУ , причем доступ к последней обычно осуществляется через один или несколько уровней кэша .
Регистры процессора обычно находятся на вершине иерархии памяти и обеспечивают самый быстрый способ доступа к данным. Этот термин обычно относится только к группе регистров, которые непосредственно закодированы как часть инструкции, как определено набором команд . Однако современные высокопроизводительные процессоры часто имеют дубликаты этих «архитектурных регистров» для повышения производительности за счет переименования регистров , что позволяет выполнять параллельное и спекулятивное выполнение . Современный дизайн x86 приобрел эти методы примерно в 1995 году с выпусками Pentium Pro , Cyrix 6x86 , Nx586 и AMD K5 .
Когда компьютерная программа неоднократно обращается к одним и тем же данным, это называется локальностью ссылки . Хранение часто используемых значений в регистрах может иметь решающее значение для производительности программы. Распределение регистров выполняется либо компилятором на этапе генерации кода , либо вручную программистом на ассемблере .
Размер [ править ]
Регистры обычно измеряются количеством бит , которые они могут хранить, например, « 8-битный регистр», « 32-битный регистр», « 64-битный регистр» или даже больше. В некоторых наборах команд регистры могут работать в различных режимах, разбивая свою память на более мелкие части (например, 32-битные на четыре 8-битные), в которые помещаются несколько данных (вектор или одномерный массив данных). могут быть загружены и работать одновременно. Обычно это реализуется путем добавления дополнительных регистров, которые отображают их память в регистр большего размера. Процессоры, способные выполнять отдельные инструкции для нескольких данных, называются векторными процессорами .
Типы [ править ]
Процессор часто содержит несколько типов регистров, которые можно классифицировать по типам значений, которые они могут хранить, или по командам, которые с ними работают:
- Доступные пользователю регистры можно читать или записывать с помощью машинных инструкций. Наиболее распространенным разделением регистров, доступных пользователю, является деление на регистры данных и регистры адреса.
- данных Регистры могут хранить числовые значения данных , такие как целые числа и, в некоторых архитектурах, числа с плавающей запятой , а также символы , небольшие битовые массивы и другие данные. В некоторых старых архитектурах, таких как IBM 704 , IBM 709 и его преемниках, PDP-1 , PDP-4 / PDP-7 / PDP-9 / PDP-15 , PDP-5 / PDP-8 и HP 2100 , специальный регистр данных, известный как аккумулятор, неявно используется для многих операций.
- Адресные регистры содержат первичной адреса и используются инструкциями, которые косвенно обращаются к памяти .
- Некоторые процессоры содержат регистры, которые могут использоваться только для хранения адреса или только для хранения числовых значений (в некоторых случаях используются в качестве индексного регистра , значение которого добавляется как смещение от некоторого адреса); другие позволяют регистрам хранить любые количества. Существует множество возможных режимов адресации , используемых для указания эффективного адреса операнда.
- Указатель стека используется для управления стеком времени выполнения . Редко другие стеки данных адресуются выделенными адресными регистрами (см. стековую машину ).
- Регистры общего назначения ( GPR s) могут хранить как данные, так и адреса, т. е. представляют собой комбинированные регистры данных/адреса; в некоторых архитектурах файл регистров унифицирован , поэтому георадары также могут хранить числа с плавающей запятой.
- Регистры состояния содержат значения истинности, которые часто используются для определения того, должна или не должна выполняться какая-либо инструкция.
- с плавающей запятой Регистры ( FPR ) хранят числа с плавающей запятой во многих архитектурах.
- констант Регистры хранят значения, доступные только для чтения, такие как ноль, единица или число «пи» .
- Векторные регистры содержат данные для векторной обработки, выполняемой инструкциями SIMD (одна инструкция, несколько данных).
- Регистры специального назначения ( SPR ) хранят некоторые элементы состояния программы ; они обычно включают в себя счетчик программ , также называемый указателем команд, и регистр состояния ; счетчик программы и регистр состояния могут быть объединены в регистр слова состояния программы (PSW). Вышеупомянутый указатель стека иногда также включается в эту группу. Встроенные микропроцессоры также могут иметь регистры, соответствующие специализированным аппаратным элементам.
- В некоторых архитектурах регистры, специфичные для модели (также называемые регистрами, специфичными для машины ), хранят данные и настройки, относящиеся к самому процессору. Поскольку их значения привязаны к конструкции конкретного процессора, нельзя ожидать, что они останутся стандартными между поколениями процессоров.
- Регистры диапазона типа памяти ( MTRR s)
- Внутренние регистры недоступны для инструкций и используются внутри процессора для операций.
- Регистр команд содержит команду, исполняемую в данный момент.
- Регистры, относящиеся к выборке информации из ОЗУ — набора регистров хранения, расположенных на отдельных от ЦП микросхемах:
- Регистр буфера памяти ( MBR ), также известный как регистр данных памяти ( MDR )
- Регистр адреса памяти ( MAR )
- Архитектурные регистры — это регистры, видимые программному обеспечению и определяемые архитектурой. Они могут не соответствовать физическому оборудованию, если переименование регистров выполняется базовым оборудованием.
Аппаратные регистры аналогичны, но находятся вне процессоров.
В некоторых архитектурах (таких как SPARC и MIPS ) первый или последний регистр в файле целочисленных регистров является псевдорегистром, поскольку он запрограммирован так, чтобы всегда возвращать ноль при чтении (в основном для упрощения режимов индексации), и его нельзя перезаписать. . В Alpha это также делается для файла регистров с плавающей запятой. В результате этого в файлах регистров обычно указывается, что они содержат на один регистр больше, чем их реальное количество; например, котируются 32 регистра, если только 31 из них соответствует приведенному выше определению регистра.
Примеры [ править ]
В следующей таблице показано количество регистров в нескольких основных архитектурах ЦП. Обратите внимание, что в x86- совместимых процессорах указатель стека ( ESP
) считается целочисленным регистром, хотя существует ограниченное количество инструкций, которые можно использовать для работы с его содержимым. Подобные предостережения применимы к большинству архитектур.
Хотя все перечисленные ниже архитектуры различны, почти все они имеют базовую структуру, известную как архитектура фон Неймана , впервые предложенную венгерско-американским математиком Джоном фон Нейманом . Примечательно также, что количество регистров на графических процессорах намного больше, чем на центральных процессорах.
Архитектура | Регистры георадаров/данных+адресов | регистры ФП | Примечания |
---|---|---|---|
AT&T Хоббит | 0 | стопка из 7 | Все инструкции по манипулированию данными работают исключительно внутри регистров, и перед обработкой данные необходимо переместить в регистр. |
Крей-1 [3] | 8 скалярных данных, 8 адресов | 8 скалярных, 8 векторных (64 элемента) | Регистры скалярных данных могут быть целочисленными или с плавающей запятой; также 64 скалярных регистра T и 64 адресных регистра B. |
4004 [4] | 1 аккумулятор, еще 16 | 0 | |
8008 [5] | 1 аккумулятор, еще 6 | 0 | Регистр A представляет собой аккумулятор, в котором выполняются все арифметические действия; регистры H и L могут использоваться вместе в качестве адресного регистра; все регистры могут использоваться в качестве операндов в инструкциях загрузки/сохранения/перемещения/увеличения/уменьшения, а также в качестве других операндов в арифметических инструкциях. Не существует модуля с плавающей запятой (FPU). |
8080 [6] | 1 аккумулятор, 1 указатель стека, еще 6 | 0 | Регистр A представляет собой аккумулятор, в котором выполняются все арифметические действия; пары регистров B+C, D+E и H+L могут использоваться в качестве адресных регистров в некоторых инструкциях; все регистры могут использоваться в качестве операндов в инструкциях загрузки/сохранения/перемещения/увеличения/уменьшения, а также в качестве других операндов в арифметических инструкциях. В некоторых инструкциях используется только H+L; другая инструкция меняет местами H+L и D+E. Процессорами с плавающей запятой, предназначенными для 8080, были Intel 8231 , AMD Am9511 и Intel 8232 . Их также можно было легко использовать с Z80 и аналогичными процессорами. |
iAPX432 | 0 | стопка из 6 | Штабелируемая машина |
16-битный x86 [7] | 6 | стопка из 8 (если присутствует ФП) | Процессоры 8086/8088 для операций с плавающей запятой, поддерживают стек регистров шириной , 80186/80188 80 бит 80287 и 80286 , если они оснащены 8087 , 80187 или сопроцессором и глубиной 8, причем некоторые инструкции могут использовать регистры относительно вершина стека в качестве операндов; без сопроцессора регистры с плавающей запятой не поддерживаются. |
ИА-32 [8] | 8 | стопка из 8 (если присутствует FP), 8 (при наличии SSE/MMX) | Процессору 80386 требуется 80387 для операций с плавающей запятой, более поздние процессоры имели встроенную функцию с плавающей запятой, причем оба имели 80-битный стек из 8 глубоких регистров, а некоторые инструкции могли использовать регистры относительно вершины стека как операнды. Pentium III и более поздние версии имели SSE с дополнительными 128-битными регистрами XMM. |
х86-64 [8] [9] | 16 | 16 или 32 (если доступен AVX-512) | Регистры FP представляют собой 128-битные регистры XMM, позже расширенные до 256-битных регистров YMM с AVX/AVX2 и 512-битных регистров ZMM0–ZMM31 с AVX-512 . [10] |
Фэйрчайлд F8 | 1 аккумулятор, 64 регистра блокнота, 1 регистр косвенного блокнота (ISAR) | — | Инструкции могут напрямую ссылаться на первые 16 регистров блокнота и иметь доступ ко всем регистрам блокнота косвенно через ISAR. [11] |
Жеода GX | 1 данные, 1 адрес | 8 | Geode GX/ Media GX / 4x86 / 5x86 — это эмуляция процессора, совместимого с 486/Pentium, производства Cyrix / National Semiconductor . Как и Transmeta , процессор имел уровень трансляции, который переводил код x86 в машинный код и выполнял его. [ нужна ссылка ] Он не поддерживает 128-битные регистры SSE, а только стек 80387 из восьми 80-битных регистров с плавающей запятой и частично поддерживает 3DNow! от АМД. Собственный процессор содержит только 1 регистр данных и 1 адресный регистр для всех целей, и он преобразуется в 4 пути 32-битных регистров именования r1 (базовый), r2 (данные), r3 (обратный указатель) и r4 (указатель стека) внутри блокнот SRAM для целочисленных операций. [ нужна ссылка ] |
Санплюс САУ | 0 | 6 стек + 4 SIMD | 16-битный 32-битный процессор стека адресного пространства от тайваньской компании Sunplus Technology. Его можно найти в линейке V.Smile компании Vtech для образовательных целей и на игровых консолях, таких как Wireless 60, Mattel HyperScan и XaviXPORT. В нем отсутствует какой-либо регистр общего назначения или внутренний регистр для именования/переименования, но его блок операций с плавающей запятой имеет 80-битный 6-ступенчатый стек и четыре 128-битных регистра VLIW SIMD на сопроцессоре вершинного шейдера. |
ВМ Лабс Нуон | 0 | 1 | 32-битный стековой процессор, разработанный VM Labs и специализирующийся на мультимедиа. Его можно найти в собственной линейке DVD-плееров Nuon и в семейной развлекательной системе Game Wave от ZaPit games. На дизайн сильно повлияла технология Intel MMX; он содержал 128-байтовый унифицированный стек-кэш как для векторных, так и для скалярных инструкций. Единый кэш можно разделить на восемь 128-битных векторных регистров или тридцать два 32-битных скалярных регистра SIMD посредством переименования банка; в этой архитектуре нет целочисленного регистра. |
Ниос II [12] [13] | 31 | 8 | Nios II основан на наборе инструкций MIPS IV. [ нужна ссылка ] и имеет 31 32-битный GPR, причем регистр 0 жестко привязан к нулю, и восемь 64-битных регистров с плавающей запятой. [ нужна ссылка ] |
Моторола 6800 [14] | 2 данных, 1 индекс, 1 стек | 0 | |
Моторола 68к [15] | 8 data (d0–d7), 8 address (a0–a7) | (если присутствует ФП) | 8 Адресный регистр 8 (a7) является указателем стека. 68000, 68010, 68012, 68020 и 68030 требуют FPU для операций с плавающей запятой; 68040 имел встроенный FPU. Регистры FP 80-битные. |
ШХ 16 бит | 16 | 6 | |
Двигатель эмоций | 3(ВУ0)+ 32(ВУ1) | 32 SIMD (интегрированы в UV1) + 2 × 32 Вектор (выделенный векторный сопроцессор, расположенный рядом с графическим процессором) | Основное ядро Emotion Engine (VU0) представляет собой сильно модифицированное общее ядро DSP, предназначенное для общих фоновых задач и содержит один 64-битный аккумулятор, два регистра общих данных и один 32-битный программный счетчик. Модифицированное исполняемое ядро MIPS III (VU1) предназначено для игровых данных и управления протоколом и содержит тридцать два 32-битных регистра общего назначения для целочисленных вычислений и тридцать два 128-битных регистра SIMD для хранения инструкций SIMD и значений потоковых данных. и некоторое целочисленное значение вычисления, а также один аккумуляторный регистр для подключения общих вычислений с плавающей запятой к файлу векторных регистров на сопроцессоре. Сопроцессор построен с помощью 128-битного векторного регистрового файла с 32 записями (может хранить только векторные значения, поступающие из аккумулятора в ЦП), и целочисленные регистры не встроены. Оба векторных сопроцессора (VPU 0/1) и весь модуль основного процессора Emotion Engine (VU0 + VU1 + VPU0 + VPU1) построен на основе модифицированного набора инструкций MIPS. Аккумулятор в данном случае не общего назначения, а контрольного статуса. |
ДРУГОЙ [16] | настраивается, до 255 на поток | Более ранние поколения позволяли использовать до 127/63 регистров на поток ( Tesla / Fermi ). Чем больше регистров настроено для каждого потока, тем меньше потоков может выполняться одновременно. Регистры имеют ширину 32 бита; Поэтому числа двойной точности с плавающей запятой и 64-битные указатели требуют двух регистров. Кроме того, он имеет до 8 регистров предикатов на поток. [17] | |
Серия CDC 6000 | 16 | 8 | 8 регистров 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 , Система/370 , Система/390 , z/Архитектура | 16 | 4 (при наличии ФП); 16 в моделях G5 и более поздних версиях S/390 и z/Architecture | FP был необязательным в System/360 и всегда присутствовал в S/370 и более поздних версиях. В процессорах с векторной поддержкой имеется 16 векторных регистров, содержащих машинно-зависимое количество 32-битных элементов. [18] Некоторым регистрам присваивается фиксированное назначение посредством соглашений о вызовах ; например, регистр 14 используется для адресов возврата подпрограмм, а для ELF ABI регистр 15 используется как указатель стека. Процессор S/390 G5 увеличил количество регистров с плавающей запятой до 16. [19] |
ММИКС [20] | 256 | 256 | Набор инструкций, разработанный Дональдом Кнутом в конце 1990-х годов для педагогических целей. |
NS320xx [21] | 8 | (если присутствует ФП) | 8 |
Кселератированный X10 | 1 | 32 | 32/40-битный стек машинного сетевого процессора с модифицированным набором инструкций MIPS и 128-битным модулем операций с плавающей запятой. [ нужна ссылка ] |
Параллаксный пропеллер | 0 | 2 | Восьмиядерный 8/16-битный машинный контроллер со срезом стека с простой логической схемой внутри, он имеет 8 процессорных счетчиков (ядер), каждый из которых содержит три 8/16-битных специальных регистра управления со стековой оперативной памятью 32 бита x 512. Однако он не содержит какого-либо общего регистра для целочисленных целей. В отличие от большинства файлов теневых регистров в современных процессорах и многоядерных системах, ко всей оперативной памяти стека процессора можно получить доступ на уровне инструкций, что позволяет всем этим процессорам при необходимости действовать как одно ядро общего назначения. Модуль с плавающей запятой является внешним и содержит два 80-битных векторных регистра. |
Итаний | 128 | 128 | И 64 1-битных регистра-предиката и 8 регистров ветвей. Регистры FP 82-битные. |
СПАРК | 31 | 32 | Глобальный регистр 0 жестко привязан к 0. Используются окна регистров . |
IBM МОЩНОСТЬ | 32 | 32 | Также включены регистр связи, регистр счета и регистр умножения (MQ). |
PowerPC / Питание ISA | 32 | 32 | Также включены регистр связи и регистр счета. Процессоры, поддерживающие функцию Vector, также имеют 32 128-битных векторных регистра. |
Черноперый | 8 данных, 2 аккумулятора, 6 адресов | 0 | Также включены указатель стека и указатель кадра. Дополнительные регистры используются для реализации циклов с нулевыми издержками и DAG с кольцевым буфером (генераторов адресов данных). |
IBM Cell SPE | 128 | 128 регистров общего назначения, которые могут хранить целые числа, адреса или значения с плавающей запятой. [22] | |
ПДП-10 | 16 | В целом можно использовать все регистры (целые, с плавающей запятой, указатель стека, переход, индексацию и т. д.). Каждое 36-битное слово памяти (или регистра) также можно манипулировать как полуслово, которое можно рассматривать как (18-битный) адрес. Другие толкования слов используются в определенных инструкциях. В исходных процессорах PDP-10 эти 16 GPR также соответствовали ячейкам основной (т. е. основной ) памяти 0–15; аппаратная опция, называемая «быстрой памятью», реализовала регистры как отдельные микросхемы, а ссылки на ячейки памяти 0–15 относились к регистрам IC. Более поздние модели реализовали регистры как «быструю память» и продолжали ссылаться на них в ячейках памяти 0–15. Инструкции перемещения принимают (регистр, память) : операнды MOVE 1,2 это регистр-регистр, и MOVE 1,1000 это память-регистр. | |
ПДП-11 | 7 | (если присутствует ФПП) | 6 R7 — счетчик программ. Любой регистр может быть указателем стека, но R6 используется для аппаратных прерываний и ловушек. |
ВАКС | 16 | Регистры общего назначения также используются для значений с плавающей запятой. Три регистра имеют специальное назначение: R12 (указатель аргумента), R13 (указатель кадра) и R14 (указатель стека), а R15 относится к счетчику программ. | |
Альфа | 31 | 31 | Регистры R31 (целое число) и F31 (число с плавающей запятой) жестко привязаны к нулю. |
6502 | 1 данные, 2 индекса | 0 | Регистр содержимого A (аккумулятор) 6502 для хранения данных основного назначения и адреса памяти (8-битные данные/16-битный адрес), X и Y являются косвенными и прямыми индексными регистрами (соответственно), а регистры SP представляют собой только специальный индекс. |
W65C816S | 1 | 0 | 65c816 является 16-битным преемником 6502. X, Y и D (регистр прямой страницы) являются регистрами условий, а регистр SP представляет собой только специальный индекс. Основной аккумулятор расширен до 16 бит (C) [23] сохраняя при этом 8-битный формат (A) для совместимости, а основные регистры теперь могут адресоваться до 24-битных (16-битная инструкция данных/24-битный адрес памяти). |
член парламента | 4 | 8 | Процессор со встроенным мультимедиа представлял собой 32-битный процессор, разработанный Toshiba с модифицированным набором команд 8080. Во всех режимах (8/16/32-бит) доступны только регистры A, B, C и D. Он несовместим с x86; однако он содержит 80-битный модуль с плавающей запятой, совместимый с x87. |
PIC-микроконтроллер | 1 | 0 | |
микроконтроллер АВР | 32 | 0 | |
32-битный ARM (ARM/A32, Thumb-2/T32) | 14 | Варьируется (до 32) | r15 — счетчик программ, его нельзя использовать в качестве регистра общего назначения; r13 — указатель стека; r8–r13 можно отключить для других (в составе банка) с помощью переключателя режима процессора. Старые версии имели 26-битную адресацию. [24] и использовал старшие биты счетчика программ (r15) для флагов состояния, делая этот регистр 32-битным. |
ARM (большой палец) 32-разрядная версия | 8 | 16 | Версия 1 Thumb, которая поддерживала доступ только к регистрам от r0 до r7. [25] |
ARM 64-бит (A64) [26] | 31 | 32 | Регистр r31 является указателем стека или жестко привязан к 0, в зависимости от контекста. |
МИПС | 31 | 32 | Целочисленный регистр 0 жестко привязан к 0. |
РИСК-V | 31 | 32 | Целочисленный регистр 0 жестко привязан к 0. Вариант RV32E, предназначенный для систем с очень ограниченными ресурсами, имеет 15 целочисленных регистров. |
Крещение | 64 (на ядро) [27] | Каждая инструкция определяет, интерпретируются ли регистры как целые числа или как числа с плавающей запятой одинарной точности. Архитектура масштабируется до 4096 ядер, в настоящее время доступны реализации с 16 и 64 ядрами. |
Использование [ править ]
Количество регистров, доступных на процессоре, и операций, которые можно выполнить с их помощью, оказывают существенное влияние на эффективность кода, генерируемого оптимизирующими компиляторами . Число Стралера дерева выражений дает минимальное количество регистров, необходимое для вычисления этого дерева выражений.
См. также [ править ]
Ссылки [ править ]
- ^ «Что такое регистр процессора?» . Образовательные: интерактивные курсы для разработчиков программного обеспечения . Проверено 12 августа 2022 г.
- ^ «Обзор методов проектирования и управления файлом регистров ЦП» .
- ^ «Справочное руководство по аппаратному обеспечению компьютерной системы Cray-1» (PDF) . Крейские исследования . Ноябрь 1977 г. Архивировано (PDF) из оригинала 07 ноября 2021 г. Проверено 23 декабря 2022 г.
- ^ «Руководство пользователя микрокомпьютера MCS-4» (PDF) . Интел. Февраль 1973 года.
- ^ «Руководство пользователя 8-битного параллельного центрального процессора 8008» (PDF) . Интел. Ноябрь 1973 года . Проверено 23 января 2014 г.
- ^ «Руководство пользователя микрокомпьютерных систем Intel 8080» (PDF) . Интел. Сентябрь 1975 года . Проверено 23 января 2014 г.
- ^ «Справочное руководство программатора 80286 и 80287» (PDF) . Интел. 1987.
- ↑ Перейти обратно: Перейти обратно: а б «Руководства для разработчиков программного обеспечения для архитектур Intel 64 и IA-32» . Интел. 4 декабря 2019 г.
- ^ «Руководство программиста по архитектуре AMD64, том 1: Прикладное программирование» (PDF) . АМД . Октябрь 2013.
- ^ «Расширения набора команд архитектуры Intel и справочник по программированию будущих функций» (PDF) . Интел . Январь 2018.
- ^ F8 Руководство по программированию (PDF) . Подразделение микрокомпьютеров Fairchild MOS. 1977.
- ^ «Справочное руководство по процессору Nios II Classic» (PDF) . Альтера . 2 апреля 2015 г.
- ^ «Справочное руководство по процессору Nios II Gen2» (PDF) . Альтера. 2 апреля 2015 г.
- ^ «Справочное руководство по программированию M6800» (PDF) . Моторола . Ноябрь 1976 года . Проверено 18 мая 2015 г.
- ^ «Справочное руководство программатора семейства Motorola M68000» (PDF) . Моторола. 1992 год . Проверено 13 июня 2015 г.
- ^ «Руководство по программированию на CUDA C» . Нвидиа. 2019 . Проверено 9 января 2020 г.
- ^ Цзя, Чжэ; Маджиони, Марко; Штайгер, Бенджамин; Скарпацца, Даниэле П. (2018). «Анализ архитектуры графического процессора NVIDIA Volta с помощью микробенчмаркинга». arXiv : 1804.06826 [ cs.DC ].
- ^ «IBM Enterprise Systems Architecture/370 и System/370 — векторные операции» (PDF) . ИБМ. SA22-7125-3 . Проверено 11 мая 2020 г.
- ^ «Микропроцессор IBM S/390 G5» (PDF) .
- ^ «Главная страница MMIX» .
- ^ «Справочник данных серии 32000» (PDF) . Национальный полупроводник .
- ^ «Архитектура набора команд синергетического процессорного модуля, версия 1.2» (PDF) . ИБМ. 27 января 2007 г.
- ^ «Изучаем сборку 65816» . Вики-сайт разработки Super Famicom . Проверено 14 ноября 2019 г.
- ^ «Стандарт вызова процедур для архитектуры ARM» (PDF) . АРМ Холдингс . 30 ноября 2013 года . Проверено 27 мая 2013 г.
- ^ «2.6.2. Набор регистров состояния Thumb» . Техническое справочное руководство ARM7TDMI . АРМ Холдингс .
- ^ «Стандарт вызова процедур для 64-битной архитектуры ARM» (PDF) . АРМ Холдингс. 22 мая 2013 года . Проверено 27 мая 2013 г.
- ^ «Справочник по архитектуре Epiphany» (PDF) .