RU2003137709A - Способ, устройство и команда для выполнения знаковой операции умножения - Google Patents

Способ, устройство и команда для выполнения знаковой операции умножения Download PDF

Info

Publication number
RU2003137709A
RU2003137709A RU2003137709/09A RU2003137709A RU2003137709A RU 2003137709 A RU2003137709 A RU 2003137709A RU 2003137709/09 A RU2003137709/09 A RU 2003137709/09A RU 2003137709 A RU2003137709 A RU 2003137709A RU 2003137709 A RU2003137709 A RU 2003137709A
Authority
RU
Russia
Prior art keywords
operand
value
data elements
packed
packed data
Prior art date
Application number
RU2003137709/09A
Other languages
English (en)
Other versions
RU2275677C2 (ru
Inventor
Вилль м В. Мл. МЕЙСИ (US)
Вилльям В. Мл. МЕЙСИ
Хьюи В. НГУЙЕН (US)
Хьюи В. НГУЙЕН
Original Assignee
Интел Корпорейшн (Us)
Интел Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Интел Корпорейшн (Us), Интел Корпорейшн filed Critical Интел Корпорейшн (Us)
Publication of RU2003137709A publication Critical patent/RU2003137709A/ru
Application granted granted Critical
Publication of RU2275677C2 publication Critical patent/RU2275677C2/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/382Reconfigurable for different fixed word lengths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3828Multigauge devices, i.e. capable of handling packed numbers without unpacking them

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)

Claims (46)

1. Устройство, содержащее ячейку памяти и исполнительные ресурсы, предназначенные для исполнения первой команды над первым операндом и вторым операндом для сохранения в упомянутой ячейке памяти результата, имеющего значение первого операнда, если второй операнд имеет положительное значение, нуля, если второй операнд имеет нулевое значение, и отрицательной версии первого операнда, если второй операнд имеет отрицательное значение.
2. Устройство по пункту 1, отличающееся тем, что первый операнд представляет собой первый операнд упакованных данных, содержащий первое множество упакованных элементов данных, а второй операнд представляет собой второй операнд упакованных данных, содержащий второе множество упакованных элементов данных, при этом результат содержит третье множество упакованных элементов данных, каждый из третьего множества упакованных элементов данных установлен на произведение знакового числового значения из первого элемента данных упомянутого первого множества упакованных элементов данных, умноженного на знак соответствующего элемента данных второго множества упакованных элементов данных.
3. Устройство по пункту 1, отличающееся тем, что первый операнд является операндом источника/адресата, при этом операнд источника/адресата извлекается из ячейки памяти для вычисления упомянутого результата и перезаписывается этим результатом.
4. Устройство по пункту 2, отличающееся тем, что ячейка памяти содержит регистр, а второй операнд является операндом регистра или операндом памяти.
5. Устройство по пункту 4, отличающееся тем, что первый операнд является операндом регистра.
6. Устройство по пункту 5, отличающееся тем, что первая команда имеет формат команды, включающий в себя поле MOD R/M.
7. Устройство по пункту 4, отличающееся тем, что первая команда имеет формат команды, в котором биты с пятого по третий байта, определяющего операнд, определяют первый операнд, а биты со второго по нулевой упомянутого байта, определяющего операнд, определяют упомянутый второй операнд.
8. Устройство по пункту 1, отличающееся тем, что первая команда имеет формат команды, в котором биты с пятого по третий байта, определяющего операнд, определяют первый операнд, а биты со второго по нулевой упомянутого байта, определяющего операнд, определяют упомянутый второй операнд.
9. Устройство по пункту 1, отличающееся тем, что первая команда является упакованной знаковой командой, при этом упомянутое устройство дополнительно содержит схему сумматора, первый входной мультиплексор, подсоединенный для выдачи первого входного сигнала на схему сумматора, причем упомянутый первый мультиплексор предназначен для выбора между первым операндом и дополнением первого операнда; детектор нуля, предназначенный для выдачи выбранного сигнала в ответ на второй операнд, и второй входной мультиплексор, подсоединенный для выдачи второго входного сигнала на схему сумматора, причем упомянутый второй мультиплексор предназначен для выбора между вторым операндом источника и нулевым значением в ответ на сигнал управления для данной команды.
10. Устройство по пункту 9, отличающееся тем, что дополнительно содержит третий мультиплексор, подсоединенный для приема первого операнда источника, второго операнда источника и выходного сигнала сумматора, включающего в себя дополняющее значение первого операнда, логику выбора, предназначенную для выбора одного из упомянутых первого операнда источника, второго операнда, или выходного сигнала сумматора, на основе величины и значения знака второго операнда, при этом если величина второго операнда равна нулю, то логика выбора обуславливает выбор второго операнда, если величина второго операнда имеет ненулевое значение и значение знака второго операнда положительно, то логика выбора обуславливает выбор первого операнда, и если величина второго операнда имеет ненулевое значение и значение знака второго операнда отрицательно, то логика выбора обуславливает выбор выходного сигнала сумматора.
11. Устройство по пункту 6, отличающееся тем, что исполнительные ресурсы включают в себя декодер для декодирования первой команды, первый физический регистровый файл для целочисленных операций, второй физический регистровый файл, причем упомянутый операнд источника/адресата определяет регистр во втором физическом регистровом файле, причем упомянутое результирующее значение является целочисленным значением.
12. Устройство по пункту 11, отличающееся тем, что первая команда является знаковой командой, и декодер декодирует знаковую команду в знаковую микрокоманду для исполнения первым исполнительным блоком, который является отдельным блоком из целочисленного исполнительного блока, который выполняет множество скалярных целочисленных операций, которые сохраняют результаты в первом физическом регистровом файле.
13. Устройство по пункту 1, отличающееся тем, что первая команда представляет собой первую команду упакованных данных, при этом упомянутый результат включает в себя первое множество элементов результирующих упакованных данных, каждый из упомянутых первых элементов результирующих упакованных данных имеет значение, равное соответствующему одному из множества элементов данных первого операнда источника, умноженному на соответствующее знаковое значение для соответствующего одного из множества элементов данных второго операнда источника.
14. Устройство по пункту 13, отличающееся тем, что упомянутые исполнительные ресурсы предназначены, в ответ на вторую команду, для сохранения в упомянутой ячейке памяти второго результата, содержащего второе множество элементов результирующих упакованных данных, при этом каждый из второго множества результирующих упакованных элементов данных представляет собой абсолютное значение соответствующего одного из множества элементов упакованных данных источника.
15. Устройство по пункту 1, отличающееся тем, что упомянутое устройство имеет форму машиночитаемых данных на машиночитаемом носителе, при этом упомянутые машиночитаемые данные имеют возможность изготовления или моделирования для обеспечения упомянутого устройства.
16. Процессор, содержащий регистровый файл, имеющий возможность сохранения элементов упакованных данных, и исполнительный блок, связанный с упомянутым регистровым файлом и реагирующий на множество команд упакованных данных, для сохранения значений в упомянутом регистровом файле, причем исполнительный блок реагирует на первую одну из множества команд упакованных данных путем сохранения в регистровом файле результата, содержащего множество результирующих элементов данных, и каждый из множества результирующих элементов данных равен соответствующему одному из первого множества элементов данных источника, умноженному на знаковое значение для соответствующего одного из второго множества элементов данных источника, для любого значения из упомянутых первого множества элементов данных источника и второго множества элементов данных источника.
17. Процессор по пункту 16, отличающийся тем, что исполнительный блок реагирует на вторую одну из множества команд упакованных данных путем сохранения в регистровом файле второго результата, содержащего второе множество результирующих элементов данных, причем каждый из второго множества результирующих элементов данных равен абсолютной величине соответствующего одного из третьего множества элементов данных источника.
18. Процессор по пункту 17, отличающийся тем, что первая одна из множества команд упакованных данных является знаковой командой, а вторая одна из множества команд упакованных данных является командой абсолютного значения, при этом процессор дополнительно содержит декодер для декодирования знаковой команды в первую микрооперацию и для декодирования команды абсолютного значения во вторую микрооперацию.
19. Процессор по пункту 16, отличающийся тем, что дополнительно содержит мультиплексор для получения входных сигналов, включающих в себя первое значение для первого элемента данных из упомянутого первого множества элементов данных источника, второе значение для второго элемента данных из упомянутого второго множества элементов данных источника, соответствующих первому элементу данных, и третье значение для отрицательной версии первого значения для первого элемента данных из упомянутого первого множества элементов данных источника, и логику выбора выходного сигнала, имеющую возможность выбора одного из упомянутых входных сигналов мультиплексора для выдачи в качестве результирующего продукта знаковой операции для позиции элемента данных, соответствующей первому и второму элементам данных.
20. Способ, включающий в себя выборку из памяти команды, которая определяет первый операнд, имеющий знак первого операнда и величину первого операнда, и второй операнд, имеющий знак второго операнда и величину второго операнда; определение, является ли второй операнд нулем, и сохранение в этом случае нуля в качестве конечного результата упомянутой команды, и определение, является ли второй операнд не нулевым, и сохранение в этом случае конечного результата, имеющего конечный результат, имеющий величину конечного результата, равную упомянутой первой величине, и знак конечного результата, который является функцией как знака первого операнда, так и знака второго операнда, как для унитарного, так и для неунитарного значений упомянутой величины второго операнда.
21. Способ по пункту 20, отличающийся тем, что первый операнд является первыми упакованными данными, содержащими первое множество элементов данных источника, а второй операнд является вторыми упакованными данными, содержащими второе множество элементов данных источника, при этом если значение элемента данных для конкретной позиции элемента во втором операнде положительно, то сохранение значения из соответствующего элемента данных первого операнда в качестве результата для упомянутой конкретной позиции элемента в ответ на упомянутую команду, если значение элемента данных для упомянутой конкретной позиции элемента во втором операнде отрицательно, то сохранение значения, равного отрицательной единице, умноженной на значение соответствующего элемента данных первого операнда, в качестве результата для упомянутой конкретной позиции элемента, если значение элемента данных для упомянутой конкретной позиции элемента во втором операнде равно нулю, то сохранение нуля в качестве результата для упомянутой конкретной позиции элемента.
22. Способ, включающий в себя выборку из памяти команды, которая определяет первый операнд и второй операнд, определение, является ли второй операнд положителен, и сохранение в этом случае первого операнда в качестве результата в ответ на упомянутую команду, определение, является ли второй операнд отрицательным, и сохранение в этом случае значения, равного отрицательной единице, умноженной на первый операнд, в качестве результата упомянутой команды, и определение, является ли второй операнд нулем, и сохранение в этом случае нуля в качестве результата упомянутой команды.
23. Способ по пункту 22, отличающийся тем, что упомянутая команда является упакованной знаковой командой.
24. Способ по пункту 23, отличающийся тем, что первый операнд и второй операнд являются операндами упакованных данных, содержащими первое и второе множество элементов данных соответственно.
25. Способ по пункту 24, отличающийся тем, что дополнительно содержит декодирование упакованной знаковой команды в первую микрокоманду.
26. Способ по пункту 25, отличающийся тем, что упомянутое определение второго операнда включает в себя оценку каждого отдельного элемента данных упомянутого второго операнда.
27. Система, содержащая память для сохранения команды первых упакованных данных и первых упакованных данных, включающих в себя первое множество элементов данных источника, и вторых упакованных данных, включающих в себя второе множество элементов данных источника, процессор для исполнения команды первых упакованных данных и для сохранения в ответ в ячейке памяти процессора результирующих упакованных данных, включающих в себя множество элементов результирующих упакованных данных, причем каждый из упомянутого множества элементов результирующих упакованных данных, для ненулевых элементов из второго множества элементов данных источника, является функцией как знаков соответствующих элементов из первого множества элементов данных источника и второго множества элементов данных источника, так и функцией величины только соответствующего одного из первого множества элементов упакованных данных для унитарных и неунитарных значений соответствующих элементов из второго множества элементов данных источника.
28. Система по пункту 27, отличающаяся тем, что команда первых упакованных данных является упакованной знаковой командой, обеспечивающей знаковые операции для позиций элементов данных, соответствующих первому множеству элементов данных источника.
29. Система по пункту 27, отличающаяся тем, что множество элементов результирующих упакованных данных перезаписывают ячейку памяти процессора, сохраняющую первые упакованные данные.
30. Продукт, содержащий машиночитаемый носитель, который может быть изготовлен или смоделирован для воплощения устройства, содержащего ячейку памяти и исполнительные ресурсы, предназначенные для исполнения первой команды над первым операндом и вторым операндом, и в ответ на упомянутую первую команду для сохранения в упомянутой ячейке памяти результата, имеющего значение первого операнда, если второй операнд имеет положительное значение, нуля, если второй операнд имеет нулевое значение, и отрицательной версии первого операнда, если второй операнд имеет отрицательное значение.
31. Продукт по пункту 30, отличающийся тем, что первый операнд представляет собой первый операнд упакованных данных, содержащий первое множество элементов упакованных данных, а второй операнд представляет собой второй операнд упакованных данных, содержащий второе множество элементов упакованных данных, при этом результат содержит третье множество элементов упакованных данных, каждый из третьего множества элементов упакованных данных установлен на произведение знакового числового значения первого элемента данных из упомянутого первого множества элементов упакованных данных, умноженного на знак соответствующего элемента данных второго множества элементов упакованных данных.
32. Продукт по пункту 30, отличающийся тем, что первый операнд является операндом источника/адресата, при этом операнд источника/адресата извлекается из ячейки памяти для вычисления упомянутого результата и перезаписывается этим результатом.
33. Продукт по пункту 31, отличающийся тем, что ячейка памяти содержит регистр, а второй операнд является операндом регистра или операндом памяти.
34. Продукт по пункту 31, отличающийся тем, что первая команда имеет формат команды, включающий в себя поле MOD R/M, поле кода операции.
35. Продукт по пункту 30, отличающийся тем, что первая команда является упакованной знаковой командой, причем устройство содержит первый входной мультиплексор, подсоединенный для выдачи первого входного сигнала на схему сумматора, причем упомянутый первый мультиплексор предназначен для выбора между первым операндом и дополнением первого операнда; детектор нуля, предназначенный для выдачи выбранного сигнала в ответ на второй операнд, второй входной мультиплексор, подсоединенный для выдачи второго входного сигнала на схему сумматора, причем упомянутый второй мультиплексор предназначен для выбора между вторым операндом источника и нулевым значением в ответ на сигнал управления для данной команды, третий мультиплексор, подсоединенный для приема первого операнда источника, второго операнда источника и выходного сигнала сумматора, включающего в себя дополняющее значение первого операнда, логику выбора, предназначенную для выбора одного из упомянутых первого операнда источника, второго операнда, или выходного сигнала сумматора, на основе величины и значения знака второго операнда, при этом если величина второго операнда равна нулю, то логика выбора обуславливает выбор второго операнда, если величина второго операнда имеет ненулевое значение и значение знака второго операнда положительно, то логика выбора обуславливает выбор первого операнда, и если величина второго операнда имеет ненулевое значение и значение знака второго операнда отрицательно, то логика выбора обуславливает выбор выходного сигнала сумматора.
36. Продукт по пункту 30, отличающийся тем, что первая команда представляет собой первую команду упакованных данных, при этом упомянутый результат включает в себя первое множество элементов результирующих упакованных данных, каждый из упомянутых первых элементов результирующих упакованных данных имеет значение, равное соответствующему одному из множества элементов данных первого операнда источника, умноженному на соответствующее знаковое значение для соответствующего одного из множества элементов данных второго операнда источника.
37. Устройство, содержащее ячейку памяти и исполнительные ресурсы, предназначенные для исполнения первой команды над первым операндом и вторым операндом, причем первый операнд имеет первую величину и первоначальный знак первого операнда, второй операнд имеет знак второго операнда, причем исполнительные ресурсы, в ответ на первую команду, обеспечивают сохранение в упомянутой ячейке памяти результата, который имеет первую величину и первоначальный знак первого операнда, если второй операнд является положительным операндом, который равен нулю, если второй операнд является нулевым операндом, и который имеет первую величину и знак результата, являющийся произведением первоначального знака первого операнда на знак второго операнда, если второй операнд является отрицательным.
38. Устройство по пункту 37, отличающееся тем, что первый операнд представляет собой первый упакованный операнд, содержащий первое множество элементов упакованных данных, а второй операнд представляет собой второй операнд упакованных данных, содержащий второе множество упакованных элементов данных, при этом результат содержит третье множество элементов упакованных данных, каждый из третьего множества элементов упакованных данных установлен на произведение знакового числового значения первого элемента данных из упомянутого первого множества элементов упакованных данных, умноженного на знак соответствующего элемента данных второго множества элементов упакованных данных.
39. Устройство по пункту 38, отличающееся тем, что ячейка памяти содержит регистр, а второй операнд является операндом регистра или операндом памяти.
40. Устройство по пункту 39, отличающееся тем, что первая команда имеет формат команды, включающий в себя поле MOD R/M.
41. Устройство по пункту 40, отличающееся тем, что первая команда имеет формат команды, в котором биты с пятого по третий байта, определяющего операнд, определяют первый операнд, а биты со второго по нулевой упомянутого байта, определяющего операнд, определяют упомянутый второй операнд.
42. Устройство, содержащее ячейку памяти и исполнительные ресурсы, предназначенные для исполнения первой упакованной команды над первым упакованным операндом, имеющим первое множество элементов данных, и вторым упакованным операндом, имеющим второе множество элементов данных, каждый элемент данных первого множества элементов данных для первого операнда имеет первую величину и знак первого операнда, каждый элемент данных второго множества элементов данных для второго операнда имеет вторую величину и знак второго операнда, причем исполнительные ресурсы, в ответ на первую команду, обеспечивают сохранение в упомянутой ячейке памяти для каждой позиции элемента данных операнда результирующего продукта результата, который имеет первую величину и результирующий знак, который является функцией как знака первого операнда, так и знака второго операнда, если второй операнд является ненулевым операндом, и который равен нулю, если второй операнд является нулевым операндом.
43. Устройство по пункту 42, отличающееся тем, что операнд результирующего продукта содержит третье множество элементов данных, каждый из третьего множества элементов упакованных данных установлен на произведение знакового числового значения первого элемента данных из упомянутого первого множества элементов упакованных данных, умноженного на знак соответствующего элемента данных второго множества элементов упакованных данных.
44. Устройство по пункту 43, отличающееся тем, что ячейка памяти содержит регистр, а второй операнд является операндом регистра или операндом памяти.
45. Устройство по пункту 44, отличающееся тем, что первый операнд является регистром.
46. Устройство по пункту 45, отличающееся тем, что регистр для первого операнда является также упомянутой ячейкой памяти.
RU2003137709/09A 2003-06-30 2003-12-25 Способ, устройство и команда для выполнения знаковой операции умножения RU2275677C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/610929 2003-06-30
US10/610,929 2003-06-30
US10/610,929 US7539714B2 (en) 2003-06-30 2003-06-30 Method, apparatus, and instruction for performing a sign operation that multiplies

Publications (2)

Publication Number Publication Date
RU2003137709A true RU2003137709A (ru) 2005-06-10
RU2275677C2 RU2275677C2 (ru) 2006-04-27

Family

ID=33452633

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2003137709/09A RU2275677C2 (ru) 2003-06-30 2003-12-25 Способ, устройство и команда для выполнения знаковой операции умножения

Country Status (10)

Country Link
US (1) US7539714B2 (ru)
EP (2) EP1496432A3 (ru)
JP (1) JP4869552B2 (ru)
KR (1) KR100841131B1 (ru)
CN (1) CN1577249B (ru)
BR (2) BR0306094A (ru)
MX (1) MXPA03011899A (ru)
RU (1) RU2275677C2 (ru)
SG (1) SG144700A1 (ru)
TW (1) TWI305882B (ru)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7424501B2 (en) 2003-06-30 2008-09-09 Intel Corporation Nonlinear filtering and deblocking applications utilizing SIMD sign and absolute value operations
US7729426B2 (en) * 2004-09-20 2010-06-01 Divx, Inc. Video deblocking filter
US7475103B2 (en) * 2005-03-17 2009-01-06 Qualcomm Incorporated Efficient check node message transform approximation for LDPC decoder
US7747088B2 (en) * 2005-09-28 2010-06-29 Arc International (Uk) Limited System and methods for performing deblocking in microprocessor-based video codec applications
US20080071851A1 (en) * 2006-09-20 2008-03-20 Ronen Zohar Instruction and logic for performing a dot-product operation
US20090113174A1 (en) * 2007-10-31 2009-04-30 Texas Instruments Incorporated Sign Operation Instructions and Circuitry
US8515052B2 (en) 2007-12-17 2013-08-20 Wai Wu Parallel signal processing system and method
US8041927B2 (en) * 2008-04-16 2011-10-18 Nec Corporation Processor apparatus and method of processing multiple data by single instructions
JP5490710B2 (ja) * 2008-10-24 2014-05-14 シャープ株式会社 表示装置および表示装置の駆動方法
US9747105B2 (en) 2009-12-17 2017-08-29 Intel Corporation Method and apparatus for performing a shift and exclusive or operation in a single instruction
US9003170B2 (en) * 2009-12-22 2015-04-07 Intel Corporation Bit range isolation instructions, methods, and apparatus
CN105227960B (zh) * 2010-07-14 2018-06-05 株式会社Ntt都科摩 用于视频编码的低复杂度帧内预测
RU2467377C1 (ru) * 2011-04-19 2012-11-20 ОАО "Концерн "Моринформсистема-Агат" Способ и устройство умножения чисел в коде "1 из 4"
RU2461867C1 (ru) * 2011-06-23 2012-09-20 Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом" - Госкорпорация "Росатом" Реконфигурируемый вычислительный конвейер
CN104081341B (zh) * 2011-12-23 2017-10-27 英特尔公司 用于多维数组中的元素偏移量计算的指令
US9710266B2 (en) 2012-03-15 2017-07-18 International Business Machines Corporation Instruction to compute the distance to a specified memory boundary
US9459868B2 (en) 2012-03-15 2016-10-04 International Business Machines Corporation Instruction to load data up to a dynamically determined memory boundary
US9459867B2 (en) 2012-03-15 2016-10-04 International Business Machines Corporation Instruction to load data up to a specified memory boundary indicated by the instruction
US9715383B2 (en) 2012-03-15 2017-07-25 International Business Machines Corporation Vector find element equal instruction
US9501276B2 (en) * 2012-12-31 2016-11-22 Intel Corporation Instructions and logic to vectorize conditional loops
US9207941B2 (en) * 2013-03-15 2015-12-08 Intel Corporation Systems, apparatuses, and methods for reducing the number of short integer multiplications
CN103995475B (zh) * 2014-05-16 2016-05-18 北京航空航天大学 一种柔性嵌入式被测设备模拟器
US20160125263A1 (en) 2014-11-03 2016-05-05 Texas Instruments Incorporated Method to compute sliding window block sum using instruction based selective horizontal addition in vector processor
US10346944B2 (en) 2017-04-09 2019-07-09 Intel Corporation Machine learning sparse computation mechanism
CN108733347B (zh) * 2017-04-20 2021-01-29 杭州海康威视数字技术股份有限公司 一种数据处理方法及装置
RU2653310C1 (ru) * 2017-05-24 2018-05-07 федеральное государственное бюджетное образовательное учреждение высшего образования "Воронежский государственный университет" (ФГБОУ ВО "ВГУ") Устройство для умножения числа по модулю на константу
CN107729990B (zh) * 2017-07-20 2021-06-08 上海寒武纪信息科技有限公司 支持离散数据表示的用于执行正向运算的装置及方法
RU2666285C1 (ru) * 2017-10-06 2018-09-06 Федеральное государственное бюджетное образовательное учреждение высшего образования "Вятский государственный университет" (ВятГУ) Способ организации выполнения операции умножения двух чисел в модулярно-логарифмическом формате представления с плавающей точкой на гибридных многоядерных процессорах
US11614920B2 (en) * 2020-05-07 2023-03-28 Meta Platforms, Inc. Bypassing zero-value multiplications in a hardware multiplier

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR1398092A (fr) * 1964-03-26 1965-05-07 Saint Gobain Nouveau circuit électronique de commutation
FR1509926A (fr) * 1966-03-21 1968-01-19 Saint Gobain Techn Nouvelles Circuit multiplicateur scalaire
JPS63310023A (ja) * 1987-06-11 1988-12-19 Matsushita Electric Ind Co Ltd 符号付固定小数点乗算装置
NL9001608A (nl) * 1990-07-16 1992-02-17 Philips Nv Ontvanger voor meerwaardige digitale signalen.
JPH04155503A (ja) * 1990-10-19 1992-05-28 Matsushita Electric Ind Co Ltd ニューロ制御装置
US5128890A (en) * 1991-05-06 1992-07-07 Motorola, Inc. Apparatus for performing multiplications with reduced power and a method therefor
US5349545A (en) * 1992-11-24 1994-09-20 Intel Corporation Arithmetic logic unit dequantization
US6023489A (en) * 1995-05-24 2000-02-08 Leica Geosystems Inc. Method and apparatus for code synchronization in a global positioning system receiver
US6038583A (en) * 1997-10-23 2000-03-14 Advanced Micro Devices, Inc. Method and apparatus for simultaneously multiplying two or more independent pairs of operands and calculating a rounded products
US6490607B1 (en) * 1998-01-28 2002-12-03 Advanced Micro Devices, Inc. Shared FP and SIMD 3D multiplier
US6243803B1 (en) * 1998-03-31 2001-06-05 Intel Corporation Method and apparatus for computing a packed absolute differences with plurality of sign bits using SIMD add circuitry
US6351293B1 (en) * 1998-05-18 2002-02-26 Sarnoff Corporation Decision directed phase detector
US6292814B1 (en) * 1998-06-26 2001-09-18 Hitachi America, Ltd. Methods and apparatus for implementing a sign function
US6397240B1 (en) * 1999-02-18 2002-05-28 Agere Systems Guardian Corp. Programmable accelerator for a programmable processor system

Also Published As

Publication number Publication date
MXPA03011899A (es) 2005-01-13
EP2284694B1 (en) 2013-05-15
US7539714B2 (en) 2009-05-26
CN1577249B (zh) 2010-04-14
KR100841131B1 (ko) 2008-06-24
BR0306094A (pt) 2005-05-17
EP1496432A3 (en) 2007-12-12
CN1577249A (zh) 2005-02-09
EP2284694A1 (en) 2011-02-16
JP4869552B2 (ja) 2012-02-08
TWI305882B (en) 2009-02-01
KR20050005729A (ko) 2005-01-14
SG144700A1 (en) 2008-08-28
TW200500878A (en) 2005-01-01
EP1496432A2 (en) 2005-01-12
US20040267858A1 (en) 2004-12-30
JP2005025719A (ja) 2005-01-27
RU2275677C2 (ru) 2006-04-27
BRPI0306094B1 (pt) 2017-06-27

Similar Documents

Publication Publication Date Title
RU2003137709A (ru) Способ, устройство и команда для выполнения знаковой операции умножения
Warren Hacker's delight
US5859789A (en) Arithmetic unit
RU2006102503A (ru) Способ и устройство тасования данных
JP2005025718A5 (ru)
JP2011096254A (ja) 乗累算演算を実行するための装置および方法
CN110300957A (zh) 数据处理装置中的加宽算数
US6601158B1 (en) Count/address generation circuitry
JP2005025719A5 (ru)
KR102584031B1 (ko) 데이터 처리장치에서의 요소 바이 벡터 연산
IL169374A (en) Result partitioning within simd data processing systems
CN110058886A (zh) 用于计算两个区块操作数中的半字节的数量积的系统和方法
US6999985B2 (en) Single instruction multiple data processing
US6253299B1 (en) Virtual cache registers with selectable width for accommodating different precision data formats
US7747667B2 (en) Data processing apparatus and method for determining an initial estimate of a result value of a reciprocal operation
EP3655852B1 (en) Vector interleaving in a data processing apparatus
KR102649933B1 (ko) 벡터 자리올림이 있는 가산 명령
JP2002132497A (ja) 単一命令多重データ処理
Lipovski Introduction to microcontrollers: architecture, programming, and interfacing for the Freescale 68HC12
US6564312B1 (en) Data processor comprising an arithmetic logic unit
Margush Some Assembly Required: Assembly Language Programming with the AVR Microcontroller
Bryant et al. CS: APP2e Web Aside ASM: SSE: SSE-Based Support for Floating Point
US20080147760A1 (en) System and method for performing accelerated finite impulse response filtering operations in a microprocessor
Surya Design of Low Power 32-Bit RISC Processor using Verilog HDL
Boorstin et al. 1 Project Goals

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20171226