КОМАНДА ВЕКТОРНОГО ТИПА ДЛЯ ПОИСКА НЕРАВНОЗНАЧНОГО ЭЛЕМЕНТА

1. Способ выполнения машинной команды в центральном процессорном устройстве, включающий следующие шаги:
получение процессором машинной команды для выполнения, которая определена для выполнения компьютером в соответствии с архитектурой компьютера и содержит:
по меньшей мере одно поле кода операции для указания кода операции, идентифицирующего команду векторного типа для поиска неравнозначного элемента,
поле расширения, используемое для обозначения одного или более регистров,
поле первого регистра, объединяемое с первой частью указанного поля расширения для обозначения первого регистра, причем указанный первый регистр содержит первый операнд,
поле второго регистра, объединяемое со второй частью указанного поля расширения для обозначения второго регистра, причем указанный второй регистр содержит второй операнд,
поле третьего регистра, объединяемое с третьей частью указанного поля расширения для обозначения третьего регистра, причем указанный третий регистр содержит третий операнд,
поле маски, которое содержит один или более управляющих флагов, предназначенных для использования во время выполнения машинной команды,
выполнение машинной команды, включающее:
принятие решения о том, содержит ли поле маски флаг поиска нуля, указывающий на необходимость выполнить поиск равного нулю элемента,
на основе поля маски, содержащего флаг поиска нуля, указывающий на необходимость выполнить поиск равного нулю элемента, выполнение поиска во втором операнде равного нулю элемента, причем в результате поиска предоставляется индекс равного нулю элемента, содержащий либо индекс найденного в результате поиска равного нулю элемента, либо указание на то, что равных нулю элементов не найдено,
сравнение одного или более элементов второго операнда с одним или более элементами третьего операнда на предмет неравенства их значений, причем в результате сравнения предоставляется индекс сравнения, содержащий либо индекс найденного в результате сравнения неравнозначного элемента второго операнда, либо указание на то, что неравнозначных элементов в результате сравнения не найдено,
формирование результата, причем в зависимости от того, выполнялся ли поиск равного нулю элемента, результат содержит одно из двух:
если поиск равного нулю элемента не выполнялся, то результат содержит индекс сравнения,
если поиск равного нулю элемента выполнялся, то результат содержит либо индекс сравнения, либо индекс равного нулю элемента.
2. Способ по п. 1, в котором результат соответствует равному нулю или неравнозначному элементу, причем способ дополнительно включает следующие шаги:
обработка результата, включающая выполнение по меньшей мере одной операции над результатом для формирования обработанного результата, который, в свою очередь, содержит индекс первого байта указанного элемента,
сохранение обработанного результата в указанном первом операнде.
3. Способ по п. 2, в котором машинная команда также содержит еще одно, другое поле маски, содержащее спецификатор длины элемента, определяющий длину элементов по меньшей мере одного из первого, второго и третьего операндов, причем длина элемента используется при указанной обработке результата.
4. Способ по п. 1, в котором результат содержит величину, указывающую длину второго операнда, причем способ также включает сохранение результата в указанном первом операнде.
5. Способ по п. 1, в котором поле маски содержит флаг установки кода условия, причем способ также включает:
определение того, установлен ли флаг установки кода условия,
установку кода условия для выполнения указанной машинной команды, если флаг установки кода условия установлен.
6. Способ по п. 5, в котором указанная установка кода условия включает одно из следующего:
присвоение коду условия значения, указывающего на обнаружение равного нулю элемента, индекс которого меньше, чем индекс сравнения любого из неравнозначных элементов, выявленных в результате сравнения,
присвоение коду условия значения, указывающего на выявленный неравнозначный элемент, причем значение неравнозначного элемента второго операнда меньше значения неравнозначного элемента третьего операнда,
присвоение коду условия значения, указывающего на выявленный неравнозначный элемент, причем значение неравнозначного элемента второго операнда больше значения неравнозначного элемента третьего операнда,
присвоение коду условия значения, указывающего на то, что различий нет, и, в зависимости от того, был ли установлен флаг поиска равного нулю элемента, что равных нулю элементов не найдено.
7. Способ по п. 1, в котором указанное выполнение включает определение в ходе выполнения направления сравнения, представляющее собой направление слева направо или справа налево, и указанное определение направления сравнения содержит обращение машинной команды к спецификатору направления для определения направления.
8. Способ по п. 1, в котором указанные второй операнд и третий операнд состоят из N байтов, в котором указанное сравнение содержит сравнение в параллельном режиме N байтов второго операнда с N байтами третьего операнда, и в котором длина элемента составляет один байт, либо два байта, либо четыре байта.
9. Способ по п. 1, в котором указанный индекс равного нулю элемента содержит индекс байта, и этот индекс байта является индексом первого байта равного нулю элемента.
10. Способ по п. 1, в котором указанный индекс неравнозначного элемента содержит индекс байта, и этот индекс байта является индексом байта найденного неравнозначного элемента.
11. Способ по п. 1, в котором указание на то, что равный нулю элемент не найден, и/или указание на то, что различий не найдено, содержит включение в состав индекса равного нулю элемента и/или индекса сравнения числа, представляющего длину второго операнда.
12. Система, содержащая средства, приспособленные для выполнения всех шагов способа по любому из пп. 1-11.
13. Компьютерная программа, содержащая команды для выполнения всех шагов способа по любому из пп. 1-11 при ее выполнении в компьютерной системе.