Эта статья поднимает множество проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалить эти сообщения-шаблоны ) ( Узнайте, как и когда удалить этот шаблон сообщения )
|
Регистр процессора является быстро доступным местом доступны для компьютера процессора . Регистры обычно состоят из небольшого объема быстрой памяти , хотя некоторые регистры имеют определенные аппаратные функции и могут быть доступны только для чтения или только для записи. В компьютерной архитектуре регистры обычно адресуются механизмами, отличными от основной памяти , но в некоторых случаях им может быть назначен адрес памяти, например, DEC PDP-10 , ICT 1900 .
Почти все компьютеры, вне зависимости от того, загружают / хранят архитектуру или нет, загружают данные из большей памяти в регистры, где они используются для арифметических операций и управляются или проверяются машинными инструкциями . Затем обработанные данные часто сохраняются обратно в основную память либо той же инструкцией, либо последующей. Современные процессоры используют в качестве основной памяти статическую или динамическую ОЗУ , причем доступ к последней обычно осуществляется через один или несколько уровней кэш-памяти .
Регистры процессора обычно находятся на вершине иерархии памяти и обеспечивают самый быстрый способ доступа к данным. Этот термин обычно относится только к группе регистров, которые непосредственно кодируются как часть инструкции, как определено набором инструкций . Однако современные высокопроизводительные процессоры часто имеют дубликаты этих «архитектурных регистров» для повышения производительности за счет переименования регистров , что позволяет выполнять параллельное и спекулятивное выполнение . Современный дизайн x86 приобрел эти методы примерно в 1995 году с выпуском Pentium Pro , Cyrix 6x86 , Nx586 и AMD K5 .
Когда компьютерная программа обращается к одним и тем же данным неоднократно, это называется местоположением ссылки . Хранение часто используемых значений в регистрах может иметь решающее значение для производительности программы. Распределение регистров выполняется компилятором на этапе генерации кода или вручную программистом на ассемблере .
Размер [ править ]
Регистры обычно измеряются количеством битов, которые они могут хранить, например, « 8-битный регистр», « 32-битный регистр» или « 64-битный регистр» или даже больше. В некоторых наборах инструкций регистры могут работать в различных режимах, разбивая свою память на более мелкие (например, 32-битные на четыре 8-битных), в которые могут быть загружены несколько данных (вектор или одномерный массив данных ). и оперировали одновременно. Обычно это реализуется путем добавления дополнительных регистров, которые отображают свою память в более крупный. Процессоры, которые могут выполнять одну инструкцию для нескольких данных, называются векторными процессорами .
Типы [ править ]
Процессор часто содержит несколько типов регистров, которые можно классифицировать в соответствии с их содержимым или инструкциями, которые с ними работают:
- Доступные пользователю регистры могут быть прочитаны или записаны машинными инструкциями. Чаще всего доступные пользователю регистры делятся на регистры данных и регистры адреса.
- Данные зарегистрировать ы может содержатьчисловые значения данныхтакие какцелое число, а в некоторых архитектурах, значенияплавающей точкой, а такжесимволы, небольшиебитовые массивыи другие данные. В некоторых старых и младших процессорах специальный регистр данных, известный какаккумулятор, неявно используется для многих операций.
- Адресного регистр сек владенияадреси используются командамикоторые косвенно доступосновной памяти.
- Некоторые процессоры содержат регистры, которые могут использоваться только для хранения адреса или только для хранения числовых значений (в некоторых случаях используются в качестве индексного регистра , значение которого добавляется как смещение от некоторого адреса); другие позволяют регистрам хранить любой вид количества. Существует большое количество возможных режимов адресации , используемых для определения эффективного адреса операнда.
- Указатель стека используется для управления стека во время выполнения . Редко другие стеки данных адресуются с помощью специальных адресных регистров, см. Стековую машину .
- Регистры общего назначения ( GPR ) могут хранить как данные, так и адреса, т. Е. Они представляют собой комбинированные регистры данных / адресов; в некоторых архитектурах регистрового файл является унифицированным такчто GPRs может хранить числа с плавающей точкой , а также.
- Регистры состояния содержатзначения истинности, которыечасто используются для определения того, следует ли выполнять какую-либо инструкцию.
- Регистры с плавающей запятой (FPR) хранятчисласплавающей запятойво многих архитектурах.
- Регистры констант содержат доступные только для чтения значения, такие как ноль, единица или числопи.
- Векторные регистры содержат данные длявекторной обработки,выполняемойинструкциямиSIMD(одна инструкция, несколько данных).
- Специальные регистры ( SPR ) хранят состояние программы; они обычно включают счетчик программ , также называемый указателем команд, и регистр состояния ; счетчик программ и регистр состояния могут быть объединены врегистр слова состояния программы (PSW). Вышеупомянутый указатель стека иногда также включается в эту группу. Встроенные микропроцессоры также могут иметь регистры, соответствующие специализированным аппаратным элементам.
- В некоторых архитектурах регистры, зависящие от модели (также называемые машинными регистрами ), хранят данные и настройки, относящиеся к самому процессору. Поскольку их значения связаны с конструкцией конкретного процессора, нельзя ожидать, что они останутся стандартными между поколениями процессоров.
- Регистры диапазона типов памяти (MTRRs)
- Внутренние регистры - регистры, недоступные для инструкций, используемые внутри для операций процессора.
- Регистр инструкций , содержащий инструкцию, которая выполняется в данный момент.
- Регистры, связанные с извлечением информации из ОЗУ , набор регистров хранения, расположенных на отдельных микросхемах от ЦП:
- Регистр буфера памяти (MBR), также известный какрегистр данных памяти(MDR)
- Регистр адреса памяти (MAR)
- Архитектурный регистр- Регистры, видимые программному обеспечению, определенному архитектурой, могут не соответствовать физическому оборудованию, если переименование регистров выполняется нижележащим оборудованием.
Аппаратные регистры аналогичны, но находятся вне ЦП.
В некоторых архитектурах (например, SPARC и MIPS ) первый или последний регистр в файле целочисленных регистров является псевдорегистратором таким образом, чтобы он всегда возвращал ноль при чтении (в основном для упрощения режимов индексирования), и он не может быть перезаписанным. В Alpha это также сделано для файла регистров с плавающей запятой. В результате этого файлы регистров обычно упоминаются как имеющие на один регистр больше, чем то, сколько их фактически можно использовать; например, цитируются 32 регистра, когда только 31 из них соответствует приведенному выше определению регистра.
Примеры [ править ]
В следующей таблице показано количество регистров в нескольких основных архитектурах ЦП. Обратите внимание, что в x86-совместимых процессорах указатель стека ( ESP ) считается целочисленным регистром, даже несмотря на то, что существует ограниченное количество инструкций, которые могут использоваться для работы с его содержимым. Подобные предостережения применимы к большинству архитектур.
Хотя все вышеперечисленные архитектуры различны, почти все они представляют собой базовую схему, известную как архитектура фон Неймана , впервые предложенная венгерско-американским математиком Джоном фон Нейманом . Также примечательно, что количество регистров на графических процессорах намного больше, чем на процессорах.
Архитектура | Георадары / данные + адресные регистры | Регистры FP | Заметки |
---|---|---|---|
AT&T Хоббит | 0 | стопка из 7 | Штабелеукладчик |
Cray-1 [1] | 8 скалярных данных, 8 адресов | 8 скалярных, 8 векторных (64 элемента) | Регистры скалярных данных могут быть целыми или с плавающей запятой; также 64 скалярных T-регистра блокнота и 64 адресных регистра B блокнота |
4004 [2] | 1 аккумулятор, 16 другие | 0 | Регистр A предназначен для общего назначения, а регистры r0 – r15 - для адреса и сегмента. |
8008 [3] | 1 аккумулятор, 6 других | 0 | Регистр A - это аккумулятор, с которым производятся все арифметические операции; регистры H и L могут использоваться в комбинации как адресный регистр; все регистры могут использоваться как операнды в командах загрузки / сохранения / перемещения / увеличения / уменьшения и как другой операнд в арифметических командах. Нет доступных единиц FP. |
8080 [4] | 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 [5] | 6 | стек из 8 (если есть FP) | 8086 / 8088 , 80186 / 80188 , 80286 , с 8087 , 80187 или 80287 для чисел с плавающей точкой, с 80-битным, 8 глубоким стеком регистра с некоторыми инструкциями , способными использовать регистры по отношению к верхней части стеки в качестве операндов; без 8087/80187/80287, без регистров с плавающей запятой |
IA-32 [6] | 8 | стек из 8 (если присутствует FP), 8 (если присутствует SSE / MMX) | 80386 требовал 80387 для операций с плавающей запятой, более поздние процессоры имели встроенную с плавающей запятой, причем оба имели 80-битный стек из 8 глубоких регистров с некоторыми инструкциями, которые могли использовать регистры относительно вершины стека в качестве операндов. Pentium III , а затем имел SSE с дополнительными 128-битных регистров XMM. |
x86-64 [6] [7] | 16 | 16/32 | Регистры FP - это 128-битные регистры XMM, позже расширенные до 256-битных регистров YMM с AVX / AVX2 и 512-битных регистров ZMM0-ZMM31 с AVX-512 . [8] |
Ксеон Пхи [9] | 16 | 32 | Включая 32 256/512-битных регистра ZMM с AVX-512. |
Fairchild F8 | один аккумулятор, 64 регистра блокнота, один регистр косвенного блокнота (ISAR) | н / д | Команды могут напрямую ссылаться на первые 16 регистров блокнота и могут обращаться ко всем регистрам блокнота косвенно через ISAR [10] |
Geode GX | 1 данные, 1 адрес | 8 | Geode 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. для целочисленных операций и использует кеш L1 для эмуляции кода x86 (обратите внимание, что он несовместим с некоторыми инструкциями 286/386/486 в реальном режиме). [ необходима цитата ] Позже от дизайна отказались после того, как AMD приобрела IP у National Semiconductor и заклеймила его ядром Athlon на рынке встроенных систем. |
SunPlus SPG | 0 | 6 стек + 4 SIMD | 16-битный 32-битный стековый процессор с адресным пространством от тайваньской компании Sunplus Technology, его можно найти в линейке Vtech V.Smile для образовательных целей и в игровых консолях, таких как wireless 60, Mattel HyperScan и XaviXPORT. в нем отсутствует какой-либо регистр общего назначения или внутренний регистр для наименования / переименования, но его модуль с плавающей запятой имеет 80-битный 6-каскадный стек и четыре 128-битных регистра VLIW SIMD на сопроцессоре вершинного шейдера. |
VM Labs Nuon | 0 | 1 | 32-битный стековый процессор, разработанный лабораториями виртуальных машин для работы с мультимедиа. Его можно найти в собственной линейке консолей Nuon для DVD-плееров и в семейной развлекательной системе Game Wave от ZaPit games. На дизайн сильно повлияла технология Intel MMX, он содержал 128-байтовый унифицированный стековый кеш для векторных и скалярных инструкций. Унифицированный кэш можно разделить на 8 128-битных векторных регистров или 32 32-битных скалярных регистра SIMD посредством переименования банка, в этой архитектуре целочисленный регистр не обнаружен. |
Ниос II [11] [12] | 31 год | 8 | Nios II основан на наборе инструкций MIPS IV [ необходима цитата ] и имеет 31 32-битный GPR, при этом регистр 0 жестко привязан к нулю и 8 64-битных регистров с плавающей запятой [ необходима цитата ] |
Motorola 6800 [13] | 2 данных, 1 индекс | 0 | Плюс указатель стека |
Motorola 68k [14] | 8 данных (d0-d7), 8 адресов (a0-a7) | 8 (при наличии FP) | Адресный регистр 8 (a7) является указателем стека. 68000, 68010, 68012, 68020 и 68030 требуют FPU для операций с плавающей запятой; 68040 имеет встроенный FPU. Регистры FP 80-битные. |
SH 16 бит | 1 | 6 | |
Двигатель эмоций | 3 (VU0) + 32 (VU1) | 32 SIMD (интегрировано в UV1) + 2x 32 Vector (специальный векторный сопроцессор, расположенный рядом с его графическим процессором) | Основное ядро Emotion Engine (VU0) - это сильно модифицированное общее ядро DSP, предназначенное для общих фоновых задач и содержащее один 64-битный аккумулятор, два общих регистра данных и один 32-битный счетчик программ. Модифицированное исполняемое ядро MIPS III (VU1) предназначено для управления игровыми данными и протоколами и содержит 32 записи 32-разрядных регистров общего назначения для целочисленных вычислений и 32 записи 128-разрядных регистров SIMD для хранения инструкций SIMD, значения потоковых данных и некоторых целых чисел. расчетное значение. один регистр накопителя для подключения общих вычислений с плавающей запятой к файлу векторного регистра на сопроцессоре. Сопроцессор построен с использованием 32 записей 128-битного файла векторных регистров (может хранить только векторное значение, которое передается из аккумулятора в процессор), и не имеет встроенного целочисленного регистра.Весь модуль главного процессора (VU0 + VU1 + VPU0 + VPU1) построен на основе модифицированного набора инструкций MIPS, и в этом случае аккумулятор не общего назначения, а контролирует состояние. |
CUDA [15] | настраиваемый, до 255 на поток | Предыдущие поколения допускали до 127/63 регистров на поток ( Tesla / Fermi ). Чем больше регистров настроено для каждого потока, тем меньше потоков может выполняться одновременно. Регистры имеют ширину 32 бита, числа с плавающей запятой двойной точности, а для 64-битных указателей требуется два регистра. Дополнительно имеет до 8 регистров предикатов на поток [16] | |
CDC 6000 серии | 16 | 8 | 8 регистров A0-A7 содержат 18-битные адреса; 8 регистров B0-B7 содержат 18-битные целые числа (при этом B0 постоянно установлен в ноль); 8 регистров «X» X0-X7 содержат 60 бит целочисленных данных или данных с плавающей запятой. Семь из восьми 18-битных регистров A были связаны с соответствующими регистрами X: установка любого из регистров с A1 по A5 на значение вызвала загрузку памяти содержимого этого адреса в соответствующий регистр X. Аналогичным образом, установка адреса в регистры A6 или A7 вызвала сохранение памяти в этом месте памяти из X6 или X7. (Регистры A0 и X0 так не связаны). |
IBM S / 360 | 16 | 4 (при наличии FP) | Это относится к преемникам S / 360, от System / 370 до System / 390 ; FP был необязательным в System / 360 и всегда присутствовал в S / 370 и более поздних версиях. В процессорах с функцией Vector Facility имеется 16 векторных регистров, содержащих машинно-зависимое количество 32-битных элементов. [17] Некоторым регистрам назначена фиксированная цель в соответствии с соглашениями о вызовах ; например, регистр 14 используется для адресов возврата подпрограммы, а для ELF ABI регистр 15 используется как указатель стека. |
z / Архитектура | 16 | 16 | 64-битная версия S / 360 и последователей; он увеличил количество регистров с плавающей запятой до 16. |
MMIX [18] | 256 | 256 | Набор инструкций, разработанный Дональдом Кнутом в конце 1990-х годов для педагогических целей. |
NS320xx [19] | 8 | 8 (при наличии FP) | |
Xelerated X10 | 1 | 32 | сетевой процессор на базе 32/40-битной стековой машины с модифицированной инструкцией MIPS и 128-битным блоком с плавающей запятой. [ необходима цитата ] |
Параллакс пропеллер | 0 | 2 | Восьмиядерный 8/16-битный контроллер стековой машины с простой логической схемой внутри, имеет восемь шестеренчатых счетчиков (ядро) и каждый содержит три 8/16-битных специальных управляющих регистра с 32-битным x 512 стековым плунжером, однако он не несет никакого общего регистра для целочисленных целей. В отличие от большинства файлов теневых регистров в современных процессорах и многоядерных системах, все эти стековые RAM в Cog могут быть доступны на уровне инструкций, и все эти Cog могут при необходимости действовать как одно большое ядро общего назначения. Блок с плавающей запятой является внешним и содержит два 80-битных векторных регистра. |
Itanium | 128 | 128 | И 64 1-битных регистра предикатов и 8 регистров ветвления. Регистры FP - 82-битные. |
SPARC | 31 год | 32 | Глобальный регистр 0 жестко привязан к 0. Использует окна регистров . |
IBM POWER | 32 | 32 | И 1 ссылка и 1 счетный регистр. |
Питание ISA | 32 | 32 | И 1 ссылка и 1 счетный регистр. Процессоры, поддерживающие функцию Vector, также имеют 32 128-битных векторных регистра, |
Blackfin | 8 данных, 2 аккумулятора, 6 адресов | 0 | И указатель стека и указатель фрейма. Дополнительные регистры используются для реализации циклов с нулевыми издержками и кольцевых буферов DAG (генераторов адресов данных). |
IBM Cell SPE | 128 | 128 GPR, которые могут содержать целые числа, адреса или значения с плавающей запятой [20] | |
PDP-10 | 16 | Все могут использоваться в общем случае (целое число, число с плавающей запятой, указатель стека, переход, индексация и т. Д.). Каждое 36-битное слово памяти (или регистра) также может обрабатываться как полуслово, которое можно рассматривать как (18-битный) адрес. В некоторых инструкциях используются другие толкования слов. В исходных процессорах PDP-10 эти 16 GPR также соответствовали ячейкам основной (то есть основной ) памяти 0-15; аппаратная опция, называемая «быстрая память», реализовала регистры как отдельные ИС, а ссылки на ячейки памяти 0-15 относятся к регистрам ИС. Более поздние модели реализовали регистры как «быструю память» и продолжали использовать ячейки памяти 0-15 для ссылки на них. Команды движения принимают (регистр, память) операнды: MOVE 1,2 это регистр-регистр и MOVE 1,1000 память-регистр. | |
PDP-11 | 8 | 0 | R7 на самом деле является программным счетчиком. Любой регистр может быть указателем стека, но R6 используется для аппаратных прерываний и ловушек. |
VAX | 16 | GPR также используются для значений с плавающей запятой. Три регистра имеют специальное использование: R12 (указатель аргумента), R13 (указатель кадра) и R14 (указатель стека), а R15 относится к счетчику программы. | |
Альфа | 31 год | 31 год | Регистры R31 (целое число) и F31 (с плавающей запятой) жестко обнулены. |
6502 | 1 данные, 2 индекса | 0 | Регистр содержимого 6502 A (накопитель) для основного хранилища данных и адреса памяти (8-битные данные / 16-битный адрес), X, Y - косвенные и прямые индексные регистры (соответственно), а регистр SP - только конкретный индекс. |
W65C816S | 1 | 0 | 65c816 является 16-битным преемником 6502. X, Y, D (регистр прямой страницы) - это регистры состояния, а регистр SP - только конкретный индекс. основной аккумулятор расширен до 16 бит (C) [21], при этом оставлен 8 бит (A) для совместимости, а основной регистр теперь может адресовать до 24 бит (16-битная инструкция данных / 24-битный адрес памяти). |
65 тыс. | 1 | 0 | Прямой преемник 6502, 65002 только содержимое регистра A (накопитель) для основного хранилища данных и расширения данных до 32-разрядных и 64-разрядных команд, поддержка 48-разрядного виртуального адреса в программном режиме, X, Y по-прежнему являются регистрами условий и остаются 8-битными, а регистр SP является конкретным индексом, но увеличивается до 16-битной ширины. |
MeP | 4 | 8 | Встроенный медиа-процессор представлял собой 32-битный процессор, разработанный toshiba, модифицированный набор инструкций 8080 с только регистрами A, B, C, D, доступными во всех режимах (8/16/32 бит) и несовместимый с x86, однако он содержит 80 бит. модуль с плавающей запятой, совместимый с x87. |
Микроконтроллер PIC | 1 | 0 | |
Микроконтроллер AVR | 32 | 0 | |
ARM 32-бит (ARM / A32, Thumb-2 / T32) | 14 | Варьируется (до 32) | r15 - это счетчик программы, который нельзя использовать в качестве GPR; r13 - указатель стека; r8-r13 могут быть отключены для других (сгруппированы) переключателем режима процессора. Старые версии имели 26-битную адресацию [22] и использовали старшие биты программного счетчика (r15) для флагов состояния, что делало этот регистр 32-битным. |
ARM 32-разрядный (большой палец) | 8 | 16 | Версия 1 Thumb, которая поддерживала доступ только к регистрам с r0 по r7 [23] |
ARM 64-разрядная (A64) [24] | 31 год | 32 | Регистр r31 является указателем стека или зашит в 0, в зависимости от контекста. |
MIPS | 31 год | 32 | Целочисленный регистр 0 жестко привязан к 0. |
RISC-V | 31 год | 32 | Целочисленный регистр 0 жестко привязан к 0. Вариант RV32E, предназначенный для систем с очень ограниченными ресурсами, имеет 15 целочисленных регистров. |
Богоявление | 64 (на ядро) [25] | Каждая инструкция определяет, интерпретируются ли регистры как целые числа или как числа с плавающей запятой одинарной точности. Архитектура масштабируется до 4096 ядер с доступными в настоящее время реализациями с 16 и 64 ядрами. |
Использование [ править ]
Количество регистров, доступных на процессоре, и операции, которые могут быть выполнены с использованием этих регистров, оказывают значительное влияние на эффективность кода, генерируемого оптимизирующими компиляторами . Число Стрелера дерева выражений дает минимальное количество регистров, необходимых для оценки этого дерева выражений.
См. Также [ править ]
- Кеш процессора
- Распределение регистров
- Зарегистрировать файл
- Регистр сдвига
Ссылки [ править ]
- ^ "Справочное руководство по аппаратному обеспечению компьютерной системы Cray-1" (PDF) . Cray Research . Ноябрь 1977 г.
- ^ "Руководство пользователя микрокомпьютерного набора MCS-4" (PDF) . Intel. Февраль 1973 г.
- ^ "Руководство пользователя 8-битного параллельного центрального процессора 8008" (PDF) . Intel. Ноября 1973 . Проверено 23 января 2014 года .
- ^ "Руководство пользователя микрокомпьютерных систем Intel 8080" (PDF) . Intel. Сентябрь 1975 . Проверено 23 января 2014 года .
- ^ "Справочное руководство программиста 80286 и 80287" (PDF) . Intel. 1987 г.
- ^ a b «Руководства разработчика программного обеспечения для архитектур Intel 64 и IA-32» . Intel. 4 декабря 2019.
- ^ "Руководство программиста архитектуры AMD64 Том 1: Программирование приложений" (PDF) . AMD . Октябрь 2013.
- ^ «Справочник по программированию расширений набора инструкций архитектуры Intel и будущих функций» (PDF) . Intel . Январь 2018.
- ^ "Справочное руководство по архитектуре набора команд сопроцессора Intel Xeon Phi" (PDF) . Intel. 7 сентября 2012 г.
- ^ F8 Руководство по программированию (PDF) . Подразделение микрокомпьютеров Fairchild MOS. 1977 г.
- ^ "Справочное руководство по классическому процессору Nios II" (PDF) . Альтера . 2 апреля 2015 г.
- ^ "Справочное руководство по процессору Nios II Gen2" (PDF) . Альтера. 2 апреля 2015 г.
- ^ "Справочное руководство по программированию M6800" (PDF) . Motorola . Ноября 1976 . Проверено 18 мая 2015 года .
- ^ "Справочное руководство программиста семейства Motorola M68000" (PDF) . Motorola. 1992 . Проверено 13 июня 2015 года .
- ^ "Руководство по программированию CUDA C" . Nvidia. 2019 . Проверено 9 января, 2020 .
- ^ Цзя, Чжэ; Маггиони, Марко; Стайгер, Бенджамин; Скарпацца, Даниэле П. (2018). «Анализ архитектуры NVIDIA Volta GPU с помощью микробенчмаркинга». arXiv : 1804.06826 [ cs.DC ].
- ^ "Архитектура корпоративных систем IBM / 370 и System / 370 - векторные операции" (PDF) . IBM. SA22-7125-3 . Проверено 11 мая 2020 года .
- ^ «Домашняя страница MMIX» .
- ^ "Серия 32000 Databook" (PDF) . National Semiconductor .
- ^ "Версия 1.2 архитектуры набора команд блока синергетического процессора" (PDF) . IBM. 27 января 2007 г.
- ^ "Обучение 65816 Ассамблеи" . Вики по разработке Super Famicom . Дата обращения 14 ноября 2019 .
- ^ «Стандарт вызова процедур для архитектуры ARM» (PDF) . ARM Holdings . 30 ноября 2013 . Проверено 27 мая 2013 года .
- ^ «2.6.2. Набор регистров состояния большого пальца» . ARM7TDMI Техническое справочное руководство . ARM Holdings .
- ^ «Стандарт вызова процедур для 64-битной архитектуры ARM» (PDF) . ARM Holdings. 22 мая 2013 . Проверено 27 мая 2013 года .
- ^ "Справочник по архитектуре Epiphany" (PDF) .