смешанный файл векторных/скалярных регистров
Классы МПК: | G06F15/78 содержащие единственный центральный процессорный узел G06F9/30 устройства для выполнения машинных команд, например декодирование команды |
Автор(ы): | ХИНДЗ Кристофер Нил (US), ДЖАГГАР Дэвид Вивиан (US), МЭТЕНИ Дэвид Терренс (US), СИЛ Дэвид Джеймс (GB) |
Патентообладатель(и): | АРМ ЛИМИТЕД (GB) |
Приоритеты: |
подача заявки:
1999-03-09 публикация патента:
10.09.2003 |
Изобретение относится к устройствам обработки данных. Техническим результатом является обеспечение быстроты доступа к регистру на основе поля регистра, а также обеспечение предоставления битового пространства команд для адресации банка регистров больших размеров. Для этого устройство обработки снабжено банком регистров, содержащим 32 регистра, которые могут быть использованы как векторные регистры или как скалярные регистры, и декодером, при этом команда обработки данных включает в себя по меньшей мере одно поле определения регистра, указывающее на регистр, содержащий значение данных, предназначенное для использования в данной операции, а увеличение битового пространства команды, доступного для кодирования большего количества кодов операций или для большего количества регистров, обеспечивается кодированием того, следует ли использовать регистр как векторный или как скалярный в поле самого регистра. Способ обработки данных включает этапы сохранения значений в банке регистров, декодирования команд, при этом декодер обеспечивает выполнение операции с использованием данного регистра в качестве скалярного регистра или векторного регистра и реагирует на поле определения первого регистра. 2 с. и 23 з.п. ф-лы, 20 табл., 17 ил.
Рисунок 1, Рисунок 2, Рисунок 3, Рисунок 4, Рисунок 5, Рисунок 6, Рисунок 7, Рисунок 8, Рисунок 9, Рисунок 10, Рисунок 11, Рисунок 12, Рисунок 13, Рисунок 14, Рисунок 15, Рисунок 16, Рисунок 17, Рисунок 18, Рисунок 19, Рисунок 20, Рисунок 21, Рисунок 22, Рисунок 23, Рисунок 24, Рисунок 25, Рисунок 26, Рисунок 27, Рисунок 28, Рисунок 29, Рисунок 30, Рисунок 31, Рисунок 32, Рисунок 33, Рисунок 34, Рисунок 35, Рисунок 36, Рисунок 37, Рисунок 38, Рисунок 39, Рисунок 40, Рисунок 41, Рисунок 42, Рисунок 43, Рисунок 44, Рисунок 45, Рисунок 46, Рисунок 47, Рисунок 48, Рисунок 49, Рисунок 50, Рисунок 51, Рисунок 52, Рисунок 53, Рисунок 54, Рисунок 55, Рисунок 56, Рисунок 57, Рисунок 58, Рисунок 59, Рисунок 60, Рисунок 61, Рисунок 62, Рисунок 63, Рисунок 64, Рисунок 65, Рисунок 66, Рисунок 67, Рисунок 68, Рисунок 69, Рисунок 70, Рисунок 71, Рисунок 72, Рисунок 73, Рисунок 74, Рисунок 75, Рисунок 76, Рисунок 77, Рисунок 78, Рисунок 79, Рисунок 80, Рисунок 81, Рисунок 82, Рисунок 83, Рисунок 84, Рисунок 85, Рисунок 86, Рисунок 87, Рисунок 88, Рисунок 89, Рисунок 90, Рисунок 91, Рисунок 92, Рисунок 93, Рисунок 94, Рисунок 95, Рисунок 96, Рисунок 97, Рисунок 98, Рисунок 99, Рисунок 100, Рисунок 101, Рисунок 102, Рисунок 103, Рисунок 104, Рисунок 105, Рисунок 106
Формула изобретения
1. Устройство для обработки данных, содержащее банк (38) регистров, имеющий множество регистров, каждый из которых может быть использован как векторный или как скалярный регистр, и декодер (42, 48, 50) команд для декодирования команд обработки данных, причем по меньшей мере одна из команд обработки данных имеет по меньшей мере один код (ОР) определения операции, определяющий операцию для выполнения, и поле (R1) определения первого регистра, определяющее первый регистр в банке регистров, при этом декодер команд обеспечивает выполнение операции с использованием данного регистра (R1, R2, R3) в качестве скалярного регистра или векторного регистра, причем выполнение с использованием упомянутого данного регистра, являющегося скалярным регистром, включает выполнение упомянутой операции однократно над операндом, сохраненным в упомянутом данном регистре, и выполнение с использованием данного регистра, являющегося векторным регистром, включает выполнение упомянутой операции многократно над операндами, сохраненными в предварительно определенной последовательности регистров банка регистров, выбранных в зависимости от поля определения регистра для упомянутого данного регистра, и декодер команд реагирует на упомянутое поле (R1) определения первого регистра и является независимым от кода определения операции при определении того, следует ли упомянутую операцию выполнять с использованием первого регистра в качестве векторного регистра или скалярного регистра. 2. Устройство по п. 1, отличающееся тем, что упомянутая по меньшей мере одна из команд обработки данных имеет поле (R2) определения второго регистра, определяющее второй регистр, при этом декодер команд выполняет упомянутую операцию с использованием второго регистра в качестве скалярного регистра или векторного регистра, и декодер команд реагирует на упомянутое поле (R1) определения первого регистра для определения того, следует ли упомянутую операцию выполнять с использованием второго регистра в качестве векторного регистра или скалярного регистра. 3. Устройство по п. 2, отличающееся тем, что если упомянутый первый регистр является скалярным регистром, то упомянутый второй регистр является векторным регистром, а если упомянутый первый регистр является векторным регистром, то упомянутый второй регистр является векторным регистром. 4. Устройство по п. 2 или 3, отличающееся тем, что упомянутая по меньшей мере одна из команд обработки данных имеет поле (R3) определения третьего регистра, определяющее третий регистр, при этом декодер команд выполняет упомянутую операцию с использованием третьего регистра в качестве скалярного регистра или векторного регистра, и декодер команд реагирует на упомянутое поле определения второго регистра для определения того, следует ли упомянутую операцию выполнять с использованием третьего регистра в качестве векторного регистра или скалярного регистра. 5. Устройство по любому из пп. 1-4, отличающееся тем, что коды определения операции имеют не коммутативные значения кодов, соответствующие не коммутативным операциям, причем по меньшей мере некоторые из не коммутативных значений кодов обеспечены в парах соответственно одной и той же операции, но с противоположным порядком операндов. 6. Устройство по любому из пп. 1-5, отличающееся тем, что содержит регистр (46) управления вектором, сохраняющий значение длины, определяющее число регистров в упомянутой предварительно определенной последовательности регистров, для которого упомянутая операция повторяется, если упомянутый данный регистр является векторным регистром, причем упомянутое значение длины применяется для всех векторных регистров, используемых в упомянутых командах обработки данных. 7. Устройство по п. 6, отличающееся тем, что декодер команд обнаруживает, определяет ли упомянутое значение длины, что упомянутое число регистров в предварительно определенной последовательности равно одному, для обеспечения указания, что все регистры, используемые в командах обработки данных, являются скалярными регистрами. 8. Устройство по п. 6 или 7, отличающееся тем, что регистр (46) управления вектором сохраняет значение шага по индексу, определяющее приращение в номере регистра между регистрами предварительно определенной последовательности регистров, причем упомянутое значение шага по индексу применяется ко всем векторным регистрам, используемым в командах обработки данных. 9. Устройство по любому из пп. 1-8, отличающееся тем, что если поле определения первого регистра находится в первом диапазоне N значений, то первый регистр является векторным регистром, и если упомянутое значение первого регистра находится во втором диапазоне М значений, отличающемся от первого диапазона N значений, то первый регистр является векторным регистром. 10. Устройство по п. 9, отличающееся тем, что М>N. 11. Устройство по п. 10, отличающееся тем, что М= 3N. 12. Устройство по п. 4, отличающееся тем, что если поле определения второго регистра находится в первом диапазоне Р значений, то третий регистр является векторным регистром, и если упомянутое значение второго регистра находится во втором диапазоне Q значений, отличающемся от первого диапазона Р значений, то третий регистр является векторным регистром. 13. Устройство по п. 12, отличающееся тем, что Р>О. 14. Устройство по п. 13, отличающееся тем, что Р= 3Q. 15. Устройство по любому из пп. 1-14, отличающееся тем, что содержит память и контроллер переноса для управления переносом значений данных между памятью и регистрами в банке регистров, причем контроллер переноса реагирует на множество команд переноса для переноса последовательности значений данных между памятью и последовательностью регистров в банке регистров. 16. Устройство по любому из пп. 1-15, отличающееся тем, что банк регистров и декодер команд являются частью модуля выполнения операций с плавающей точкой. 17. Устройство по п. 16, отличающееся тем, что модуль выполнения операций с плавающей точкой содержит модуль умножения-суммирования с накоплением для выполнения операций умножения-суммирования с накоплением. 18. Устройство по любому из пп. 1-17, отличающееся тем, что результат упомянутой операции записывается в первый регистр, который действует в качестве регистра адресата. 19. Устройство по п. 2, отличающееся тем, что второй регистр действует в качестве регистра первого операнда, сохраняющего первый входной операнд для упомянутой операции. 20. Устройство по п. 4, отличающееся тем, что третий регистр действует в качестве регистра второго операнда, сохраняющего второй входной операнд для упомянутой операции. 21. Устройство по любому из пп. 1-20, отличающееся тем, что банк регистров содержит 32 регистра. 22. Устройство по любому из пп. 1-21, отличающееся тем, что регистры могут действовать и могут быть использованы индивидуально для сохранения значения с одинарной точностью или могут действовать и могут быть использованы парами для сохранения значения двойной точности. 23. Устройство по любому из пп. 1-22, отличающееся тем, что поле определения данного регистра определяет начальный регистр в предварительно определенной последовательности регистров, если упомянутая операция должна быть выполнена с использованием данного регистра в качестве векторного регистра. 24. Устройство по любому из пп. 1-23, отличающееся тем, что декодер команд реагирует по меньшей мере на одну дополнительную команду обработки данных, в которой код операции определяет, является ли данный регистр, определенный в команде, векторным регистром или скалярным регистром независимо от любых полей определения регистров. 25. Способ обработки данных, включающий этапы сохранения значений данных в банке регистров, имеющем множество регистров, каждый из которых может быть использован как векторный или скалярный регистр, декодирования команд обработки данных с помощью декодера команд, причем по меньшей мере одна из команд обработки данных имеет по меньшей мере один код определения операции, определяющий операцию для выполнения, и поле определения первого регистра, определяющее первый регистр в банке регистров, при этом декодер команд обеспечивает выполнение операции с использованием данного регистра в качестве скалярного регистра или векторного регистра, причем выполнение с использованием упомянутого данного регистра, являющегося скалярным регистром, включает выполнение упомянутой операции однократно над операндом, сохраненным в упомянутом данном регистре, и выполнение с использованием данного регистра, являющегося векторным регистром, включает выполнение упомянутой операции многократно над операндами, сохраненными в предварительно определенной последовательности регистров банка регистров, выбранных в зависимости от поля определения регистра для упомянутого данного регистра, и декодер команд реагирует на упомянутое поле определения первого регистра и является независимым от кода определения операции при определении того, следует ли упомянутую операцию выполнять с использованием первого регистра в качестве векторного регистра или скалярного регистра.Описание изобретения к патенту
Текст описания в факсимильном виде (см. графическую часть). ТиКласс G06F15/78 содержащие единственный центральный процессорный узел
рециркулирующий регистровый файл - патент 2225995 (20.03.2004) | |
архитектура интегральной микросхемы для цифровой обработки сигнала - патент 2223535 (10.02.2004) |
Класс G06F9/30 устройства для выполнения машинных команд, например декодирование команды