RU2003137709A - Способ, устройство и команда для выполнения знаковой операции умножения - Google Patents
Способ, устройство и команда для выполнения знаковой операции умножения Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims 8
- 230000004044 response Effects 0.000 claims 11
- 230000000295 complement effect Effects 0.000 claims 4
- 230000006870 function Effects 0.000 claims 4
- 238000004519 manufacturing process Methods 0.000 claims 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/382—Reconfigurable for different fixed word lengths
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3828—Multigauge 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, отличающееся тем, что регистр для первого операнда является также упомянутой ячейкой памяти.
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)
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)
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 |
-
2003
- 2003-06-30 US US10/610,929 patent/US7539714B2/en active Active
- 2003-10-13 TW TW092128278A patent/TWI305882B/zh not_active IP Right Cessation
- 2003-12-17 SG SG200307424-2A patent/SG144700A1/en unknown
- 2003-12-18 MX MXPA03011899A patent/MXPA03011899A/es not_active Application Discontinuation
- 2003-12-22 JP JP2003425712A patent/JP4869552B2/ja not_active Expired - Fee Related
- 2003-12-25 CN CN2003101130822A patent/CN1577249B/zh not_active Expired - Fee Related
- 2003-12-25 RU RU2003137709/09A patent/RU2275677C2/ru not_active IP Right Cessation
- 2003-12-29 BR BR0306094-2A patent/BR0306094A/pt not_active IP Right Cessation
- 2003-12-29 EP EP03258226A patent/EP1496432A3/en not_active Ceased
- 2003-12-29 EP EP10184624.4A patent/EP2284694B1/en not_active Expired - Lifetime
- 2003-12-29 BR BRPI0306094-2A patent/BRPI0306094B1/pt unknown
- 2003-12-30 KR KR1020030099839A patent/KR100841131B1/ko not_active IP Right Cessation
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 |