Целочисленное умножение высокого порядка с округлением и сдвигом в архитектуре с одним потоком команд и множеством потоков данных - RU2003137661A

Код документа: RU2003137661A

Реферат

1. Способ, при котором принимают первый операнд, имеющий первый набор из L элементов данных, принимают второй операнд, имеющий второй набор из L элементов данных, перемножают L пар элементов данных для формирования набора из L произведений, при этом каждая из L пар включает в себя первый элемент данных из первого набора из L элементов данных и второй элемент данных из соответствующей позиции элемента данных второго набора из L элементов данных, округляют каждое из L произведений для формирования L округленных значений, масштабируют каждое из L округленных значений для формирования L масштабированных значений и осуществляют усечение каждого из L масштабированных значений для сохранения в адресате, причем каждое усеченное значение должно сохраняться в позиции элемента данных, соответствующей его паре элементов данных.

2. Способ по пункту 1, отличающийся тем, что округление включает в себя добавление ‘1’ к указанной битовой позиции для каждого из L произведений.

3. Способ по пункту 2, отличающийся тем, что указанная битовая позиция представляет собой бит 14 для каждого из L произведений.

4. Способ по пункту 3, отличающийся тем, что масштабирование дополнительно включает в себя сдвиг каждого из L округленных значений влево на один бит.

5. Способ по пункту 4, отличающийся тем, что усечение дополнительно включает в себя выделение 16 наиболее значимых битов из каждого из L масштабированных значений для получения L усеченных значений.

6. Способ по пункту 5, отличающийся тем, что обработку по каждой позиции элементов данных первого и второго операндов осуществляют параллельно.

7. Способ по пункту 6, отличающийся тем, что упомянутая обработка включает в себя упомянутые умножение, округление, масштабирование и усечение.

8. Способ по пункту 2, отличающийся тем, что упомянутое округление дополнительно включает в себя сдвиг каждого из L произведений вправо на 14 битов для формирования набора из L сдвинутых значений размером 18 битов и добавление ‘1’ к позиции наименее значимого бита каждого из упомянутых сдвинутых значений.

9. Способ по пункту 8, отличающийся тем, что масштабирование дополнительно включает в себя сдвиг каждого из L округленных значений вправо на один бит для формирования набора из L масштабированных значений.

10. Способ по пункту 9, отличающийся тем, что упомянутое усечение дополнительно включает в себя выбор шестнадцати наименее значимых битов из каждого из L масштабированных значений для получения L усеченных значений.

11. Способ по пункту 1, отличающийся тем, что каждый из упомянутых первого операнда и второго операнда является упакованным операндом данных, содержащим множество элементов данных.

12. Способ по пункту 11, отличающийся тем, что каждый из элементов данных хранит целочисленное значение со знаком.

13. Способ по пункту 1, отличающийся тем, что упомянутый адресат является упакованным блоком данных.

14. Способ по пункту 13, отличающийся тем, что каждый элемент данных имеет длину слова.

15. Способ по пункту 14, отличающийся тем, что каждый из упомянутых первого операнда, второго операнда и адресата имеет длину 64 бита.

16. Способ по пункту 14, отличающийся тем, что каждый из упомянутых первого операнда, второго операнда и адресата имеет длину 128 битов.

17. Способ по пункту 14, отличающийся тем, что первый операнд и второй операнд находятся в регистрах архитектуры одного потока команд и множества потоков данных (SIMD-регистрах).

18. Способ, при котором принимают команду для выполнения операции упакованного умножения высокого порядка с округлением и сдвигом с использованием двух операндов, причем операция упакованного умножения высокого порядка с округлением и сдвигом включает в себя умножение каждого элемента данных в первом наборе упакованных элементов данных на соответствующий элемент данных во втором наборе упакованных элементов данных для формирования набора произведений, округление и сдвиг каждого из наборов произведений для формирования набора результатов, и выбор множества битов из каждого из результатов для формирования набора усеченных результатов, причем упомянутая команда имеет формат, содержащий первое поле для определения кода операции для обеспечения информации об операции упакованного умножения с округлением и сдвигом, второе поле для определения первого адреса источника для первого операнда, имеющего первый набор упакованных элементов данных, и третье поле для определения второго адреса источника для второго операнда, имеющего второй набор упакованных элементов данных, и исполнение упомянутой команды для формирования упомянутого набора усеченных результатов для сохранения в виде упакованных элементов данных в регистре адресата.

19. Способ по пункту 18, отличающийся тем, что упомянутый код операции предназначен для указания того, состоит ли упомянутый набор усеченных результатов для операции упакованного умножения высокого порядка с округлением и сдвигом из битов высокого порядка или битов низкого порядка упомянутого набора результатов.

20. Способ по пункту 19, отличающийся тем, что первый адрес источника представляет собой первый адрес первого регистра для сохранения первого набора упакованных элементов данных.

21. Способ по пункту 20, отличающийся тем, что первый регистр является также адресатом для упомянутого набора усеченных результатов для операции упакованного умножения с округлением и сдвигом.

22. Способ по пункту 21, отличающийся тем, что второй адрес источника является вторым адресом второго регистра для сохранения второго набора упакованных элементов данных.

23. Способ по пункту 18, отличающийся тем, что первое поле включает в себя бит для указания того, является ли операция упакованного умножения с округлением и сдвигом операцией со знаком или операцией без знака.

24. Способ по пункту 23, отличающийся тем, что первое поле дополнительно включает в себя, по меньшей мере, два бита для указания того, состоит ли каждое множество битов, выбранных из упомянутого набора результатов, из битов высокого порядка конкретного результата или из битов низкого порядка упомянутого результата.

25. Способ по пункту 18, отличающийся тем, что упомянутый формат дополнительно включает в себя поле знака для указания того, является ли операция упакованного умножения с округлением и сдвигом операцией со знаком или операцией без знака.

26. Способ по пункту 25, отличающийся тем, что упомянутый формат дополнительно включает в себя поле размера для указания длины каждого из упомянутых упакованных элементов данных.

27. Способ по пункту 26, отличающийся тем, что упомянутый формат дополнительно включает в себя четвертое поле для определения адреса места назначения для получения упомянутого набора результатов для операции упакованного умножения с округлением и сдвигом.

28. Способ по пункту 18, отличающийся тем, что упомянутая информация для кода операции указывает на упакованное умножение с округлением и сдвигом целых чисел со знаком и на выбор битов высокого порядка каждого из упомянутых результатов для получения усеченного результата.

29. Способ по пункту 18, отличающийся тем, что упомянутое округление включает в себя добавление ‘1’ к биту 14 каждого из упомянутых произведений для получения набора округленных значений, а упомянутый сдвиг включает в себя сдвиг каждого из округленных значений влево на одну битовую позицию.

30. Способ по пункту 29, отличающийся тем, что каждое множество битов из каждого из упомянутых результатов представляет собой шестнадцать битов высокого порядка данного конкретного результата.

31. Устройство, содержащее исполнительный блок для исполнения одной или нескольких команд из набора команд, причем набор команд включает в себя, по меньшей мере, одну команду для выполнения операции упакованного умножения с округлением и сдвигом, причем исполнительный блок в ответ на упомянутую, по меньшей мере, одну команду для выполнения операции упакованного умножения с округлением и сдвигом умножает каждый элемент данных в первом наборе упакованных элементов данных на соответствующий элемент данных во втором наборе упакованных элементов данных для формирования набора произведений, округляет и сдвигает каждый из наборов произведений для формирования набора результатов и выбирает множество битов из каждого из результатов для формирования набора усеченных результатов, причем упомянутая, по меньшей мере, одна команда имеет формат, содержащий первое поле для определения кода операции для обеспечения информации об операции упакованного умножения с округлением и сдвигом, второе поле для определения первого адреса источника для первого операнда, имеющего первый набор упакованных элементов данных, и третье поле для определения второго адреса источника для второго операнда, имеющего второй набор упакованных элементов данных.

32. Устройство по пункту 31, отличающееся тем, что усеченные результаты, содержащие выбранные части каждого из упомянутых результатов сохраняются в виде упакованных элементов данных в регистре адресата.

33. Устройство по пункту 32, отличающееся тем, что упомянутый код операции предназначен для указания того, состоит ли упомянутый набор усеченных результатов для операции упакованного умножения высокого порядка с округлением и сдвигом из битов высокого порядка или битов низкого порядка упомянутого набора результатов.

34. Устройство по пункту 31, отличающееся тем, что первый адрес источника представляет собой первый адрес первого регистра для сохранения первого набора упакованных элементов данных, а второй адрес источника является вторым адресом второго регистра для сохранения второго набора упакованных элементов данных.

35. Устройство по пункту 34, отличающееся тем, что первый регистр является также адресатом для упомянутого набора усеченных результатов для операции упакованного умножения с округлением и сдвигом.

36. Устройство по пункту 31, отличающееся тем, что первое поле включает в себя бит для указания того, является ли операция упакованного умножения с округлением и сдвигом операцией со знаком или операцией без знака.

37. Устройство по пункту 36, отличающееся тем, что первое поле дополнительно включает в себя, по меньшей мере, два бита для указания того, состоит ли каждое множество битов, выбранных из упомянутого набора результатов, из битов высокого порядка конкретного результата или из битов низкого порядка упомянутого результата.

38. Устройство по пункту 31, отличающееся тем, что упомянутый формат дополнительно включает в себя поле знака для указания того, является ли операция упакованного умножения с округлением и сдвигом операцией со знаком или операцией без знака.

39. Устройство по пункту 38, отличающееся тем, что упомянутый формат дополнительно включает в себя поле размера для указания длины каждого из упомянутых упакованных элементов данных.

40. Устройство по пункту 39, отличающееся тем, что упомянутый формат дополнительно включает в себя четвертое поле для определения адреса адресата для получения упомянутого набора результатов для операции упакованного умножения с округлением и сдвигом.

41. Устройство по пункту 31, отличающееся тем, что упомянутая информация для кода операции указывает на упакованное умножение с округлением и сдвигом целых чисел со знаком и на выбор битов высокого порядка каждого из упомянутых результатов для получения усеченного результата.

42. Устройство по пункту 31, отличающееся тем, что упомянутое округление включает в себя добавление ‘1’ к биту 14 каждого из упомянутых произведений для получения набора округленных значений, а упомянутый сдвиг включает в себя сдвиг каждого из округленных значений влево на одну битовую позицию.

43. Устройство по пункту 42, отличающееся тем, что каждое множество битов из каждого из упомянутых результатов представляет собой шестнадцать битов высокого порядка данного конкретного результата.

44. Система, содержащая память для хранения данных и команд, процессор, связанный с памятью по шине, причем процессор приводится в действие для выполнения операции умножения с округлением и сдвигом в ответ на команду умножения с округлением и сдвигом, при этом процессор содержит блок шины для приема команды умножения с округлением и сдвигом из памяти и исполнительный блок, связанный с блоком шины, причем исполнительный блок предназначен для исполнения команды умножения с округлением и сдвигом, при этом команда умножения с округлением и сдвигом приводит к тому, что исполнительный блок умножает каждый элемент данных в первом наборе упакованных элементов данных на соответствующий элемент данных во втором наборе упакованных элементов данных для формирования набора произведений, округляет и сдвигает каждый из наборов произведений для формирования набора результатов и выбирает множество битов из каждого из результатов для формирования набора усеченных результатов.

45. Система по пункту 44, отличающаяся тем, что команда умножения с округлением и сдвигом имеет формат, содержащий первое поле для определения кода операции для обеспечения информации об операции упакованного умножения с округлением и сдвигом, второе поле для определения первого адреса источника для первого операнда, имеющего первый набор упакованных элементов данных, и третье поле для определения второго адреса источника для второго операнда, имеющего второй набор упакованных элементов данных.

46. Система по пункту 45, отличающаяся тем, что упомянутая информация кода операции указывает на упакованное умножение с округлением и сдвигом целых чисел со знаком и на выбор битов высокого порядка из каждого из результатов для получения усеченного результата.

47. Система по пункту 46, отличающаяся тем, что упомянутое округление включает в себя добавление ‘1’ к биту 14 каждого из упомянутых произведений для получения набора округленных значений, а упомянутый сдвиг включает в себя сдвиг каждого из округленных значений влево на одну битовую позицию.

48. Система по пункту 47, отличающаяся тем, что каждое множество битов из каждого из упомянутых результатов представляет собой шестнадцать битов высокого порядка данного конкретного результата.

49. Система по пункту 45, отличающаяся тем, что упомянутый код операции предназначен для указания того, состоит ли упомянутый набор усеченных результатов для операции умножения с округлением и сдвигом из битов высокого порядка или из битов низкого порядка из упомянутого набора результатов.

50. Система по пункту 48, отличающаяся тем, что упомянутое первое поле включает в себя бит для указания того, является ли операция упакованного умножения с округлением и сдвигом операцией со знаком или операцией без знака.

51. Система по пункту 50, отличающаяся тем, что упомянутое первое поле дополнительно включает в себя, по меньшей мере, два бита для указания того, состоит ли каждое множество битов, выбранных из упомянутого набора результатов, из битов высокого порядка конкретного результата или из битов низкого порядка упомянутого результата.

52. Система по пункту 45, отличающаяся тем, что упомянутый формат дополнительно включает в себя поле знака для указания того, является ли операция упакованного умножения с округлением и сдвигом операцией со знаком или операцией без знака, и поле размера для указания длины каждого из упакованных элементов данных.

53. Система по пункту 45, отличающаяся тем, что упомянутый формат дополнительно включает в себя четвертое поле для определения адреса адресата для получения упомянутого набора результатов для операции упакованного умножения с округлением и сдвигом.

54. Система по пункту 44, отличающаяся тем, что упомянутые усеченные результаты включают в себя выбранные части каждого из упомянутых результатов и сохраняются как упакованные элементы данных в регистре адресата.

55. Система по пункту 45, отличающаяся тем, что первый адрес источника представляет собой первый адрес первого регистра для сохранения первого набора упакованных элементов данных, а второй адрес источника является вторым адресом второго регистра для сохранения второго набора упакованных элементов данных.

56. Система по пункту 46, отличающаяся тем, что первый регистр является также адресатом для упомянутого набора усеченных результатов для операции упакованного умножения с округлением и сдвигом.

57. Система по пункту 44, отличающаяся тем, что дополнительно содержит устройство беспроводной связи, предназначенное для передачи и приема цифровых данных по беспроводной сети, причем упомянутое устройство беспроводной связи связано с упомянутой памятью для хранения цифровых данных и программного обеспечения, при этом программное обеспечение включает в себя упомянутую команду умножения с округлением и сдвигом, и систему ввода/вывода, реагирующую на упомянутое программное обеспечение для взаимодействия с устройством беспроводной связи, причем система ввода/вывода предназначена для приема данных для обработки или для передачи данных, обработанных, по меньшей мере частично, посредством упомянутой команды умножения с округлением и сдвигом.

58. Машиночитаемый носитель, содержащий воплощенную в нем программу, причем программа исполняется машиной для осуществления способа, при котором принимают первый операнд, имеющий первый набор из L элементов данных, принимают второй операнд, имеющий второй набор из L элементов данных, перемножают L пар элементов данных для формирования набора из L произведений, при этом каждая из упомянутых L пар включает в себя первый элемент данных из упомянутого первого набора из L элементов данных и второй элемент данных из соответствующей позиции элемента данных второго набора из L элементов данных, округляют каждое из L произведений для формирования L округленных значений, масштабируют каждое из L округленных значений для формирования L масштабированных значений и осуществляют усечение каждого из L масштабированных значений для сохранения в адресате, причем каждое усеченное значение должно сохраняться в позиции элемента данных, соответствующей его паре элементов данных.

59. Машиночитаемый носитель по пункту 58, отличающийся тем, что округление включает в себя добавление ‘1’ к указанной битовой позиции для каждого из упомянутых L произведений.

60. Машиночитаемый носитель по пункту 59, отличающийся тем, что указанная битовая позиция представляет собой бит 14 для каждого из L произведений.

61. Машиночитаемый носитель по пункту 60, отличающийся тем, что масштабирование дополнительно включает в себя сдвиг каждого из L округленных значений влево на один бит.

62. Машиночитаемый носитель по пункту 61, отличающийся тем, что усечение дополнительно включает в себя выделение 16 наиболее значимых битов из каждого из L масштабированных значений для получения L усеченных значений.

63. Машиночитаемый носитель по пункту 62, отличающийся тем, что обработку по каждой позиции элементов данных упомянутых первого и второго операндов осуществляют параллельно, и упомянутая обработка включает в себя упомянутые умножение, округление, масштабирование и усечение.

64. Машиночитаемый носитель по пункту 58, отличающийся тем, что упомянутое округление дополнительно включает в себя сдвиг каждого из L произведений вправо на 14 битов для формирования набора из L сдвинутых значений размером 18 битов и добавление ‘1’ к позиции наименее значимого бита каждого из упомянутых сдвинутых значений, упомянутое масштабирование дополнительно включает в себя сдвиг каждого из L округленных значений вправо на один бит для формирования набора из L масштабированных значений, и упомянутое усечение дополнительно включает в себя выбор шестнадцати наименее значимых битов из каждого из L масштабированных значений для получения L усеченных значений.

65. Машиночитаемый носитель по пункту 58, отличающийся тем, что каждый из упомянутых первого операнда и второго операнда является упакованным операндом данных, содержащим множество элементов данных.

66. Машиночитаемый носитель по пункту 65, отличающийся тем, что каждый из упомянутых элементов данных хранит целочисленное значение со знаком, имеющее длину слова.

67. Машиночитаемый носитель по пункту 66, отличающийся тем, что каждый из упомянутых первого операнда, второго операнда и адресата имеет длину 64 бита.

68. Машиночитаемый носитель по пункту 66, отличающийся тем, что каждый из упомянутых первого операнда, второго операнда и адресата имеет длину 128 битов.

Авторы

Заявители

СПК: G06F5/01 G06F7/52 G06F7/5338

Публикация: 2005-06-10

Дата подачи заявки: 2003-12-25

0
0
0
0
Невозможно загрузить содержимое всплывающей подсказки.
Поиск по товарам