RU2225638C2 - Arithmetic operations in data processing system - Google Patents

Arithmetic operations in data processing system Download PDF

Info

Publication number
RU2225638C2
RU2225638C2 RU2001116716/09A RU2001116716A RU2225638C2 RU 2225638 C2 RU2225638 C2 RU 2225638C2 RU 2001116716/09 A RU2001116716/09 A RU 2001116716/09A RU 2001116716 A RU2001116716 A RU 2001116716A RU 2225638 C2 RU2225638 C2 RU 2225638C2
Authority
RU
Russia
Prior art keywords
word
data
data processing
operand
bit
Prior art date
Application number
RU2001116716/09A
Other languages
Russian (ru)
Other versions
RU2001116716A (en
Inventor
Дэвид Джеймс СИЛ (GB)
Дэвид Джеймс СИЛ
Original Assignee
Арм Лимитед
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
Priority claimed from GB9825543A external-priority patent/GB2343970A/en
Application filed by Арм Лимитед filed Critical Арм Лимитед
Publication of RU2001116716A publication Critical patent/RU2001116716A/en
Application granted granted Critical
Publication of RU2225638C2 publication Critical patent/RU2225638C2/en

Links

Images

Classifications

    • 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/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • 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/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE

Abstract

FIELD: data processing systems executing arithmetic operations. SUBSTANCE: device has logic processing means and instruction decoder controlling logic processing means that executes data processing operation on first word (operand P of N-bit data) and on second word (operand Q of N- bit data) for generating resultant word R of N-bit data. Method includes following operations: generation of processing control signals, execution of data processing on words or data operands under control of mentioned control signals, generation of control signals to control logic processing means that should execute data processing operation on first word (operand P of N-bit data) and on second word (operand Q of N-bit data) to generate resultant word R (N-bit data). EFFECT: facilitated clocking of multiplying operation within one cycle, reduced memory capacity due to dispensing with assigning saturating versions of more than one multiplying instructions. 15 cl, 4 dwg

Description

Изобретение относится к системам обработки данных. В частности, настоящее изобретение относится к системам обработки данных, осуществляющим арифметические операции, способным осуществлять арифметические операции с насыщением. The invention relates to data processing systems. In particular, the present invention relates to data processing systems performing arithmetic operations capable of performing arithmetic operations with saturation.

Многие алгоритмы цифровой обработки сигналов (ЦОС) предусматривают использование так называемой арифметики над Q15 и арифметики над Q31. Число в формате Q15 является обычным 16-разрядным целым числом двоичной арифметики дополнений, но рассматривается как представление этого целого числа, деленного на 215. Поскольку 16-разрядное целое число двоичной арифметики дополнений может представлять числа от -215 до +215-1, то Q15 может представлять числа от -1 до +(1-2-15).Many digital signal processing (DSP) algorithms use the so-called arithmetic over Q15 and arithmetic over Q31. A number in Q15 format is an ordinary 16-bit integer of binary arithmetic additions, but is considered to be a representation of this integer divided by 2 15 . Since a 16-bit integer binary complement arithmetic can represent numbers from -2 15 to +2 15 -1, Q15 can represent numbers from -1 to + (1-2 -15 ).

Аналогично, число в формате Q31 является обычным 32-разрядным целым числом двоичной арифметики дополнений, рассматриваемым как частное от деления на 231, и способно представлять числа от -1 до +(1-2-31). Аналогично можно определить (N+1)-разрядные числа в формате QN для любого другого значения N.Similarly, a Q31 format number is a regular 32-bit binary complement arithmetic integer, regarded as the quotient of dividing by 2 31 , and is capable of representing numbers from -1 to + (1-2 -31 ). Similarly, you can define (N + 1) -bit numbers in QN format for any other value of N.

Важной особенностью арифметик над Q15 и Q31 является то, что они являются "насыщающими". Если результат соответствующей операции бесконечной арифметики превышает максимальное положительное значение (+1-2-N), то насыщенный результат равен максимальному положительному значению; аналогично, если результат в бесконечной арифметике оказывается меньше -1, то насыщенный результат будет равен -1. Например, в арифметике над Q15, если А=0•8000 (представление -1) и В=0•С000 (представление -0.5), то в результате сложения А и В получится 0•8000 (представление -1), а не результат обычной 16-разрядной двоичной арифметики дополнений, равный 0•4000.An important feature of arithmetic over Q15 and Q31 is that they are “saturating”. If the result of the corresponding operation of infinite arithmetic exceeds the maximum positive value (+ 1-2 -N ), then the saturated result is equal to the maximum positive value; similarly, if the result in infinite arithmetic is less than -1, then the saturated result will be -1. For example, in arithmetic over Q15, if A = 0 • 8000 (representation -1) and B = 0 • C000 (representation -0.5), then the addition of A and B will result in 0 • 8000 (representation -1), and not the result normal 16-bit binary complement arithmetic, equal to 0 • 4000.

В алгоритмах ЦОС очень часто и с большим успехом применяют операцию "умножение с накоплением", т.е. перемножение двух операндов с последующим сложением с третьим операндом:
Результат = (А*В)+С.
In DSP algorithms, the operation “multiplication with accumulation”, that is, very often and with great success, is used multiplication of two operands followed by addition with the third operand:
Result = (A * B) + C.

Попытки создания подобных команд умножения с накоплением в арифметике с насыщением (иногда говорят с "ограничением") сталкиваются со значительными проблемами. Особую важность эти проблемы приобретают в случае арифметики над QN. Attempts to create such accumulation multiplication instructions in saturation arithmetic (sometimes referred to as a “constraint”) run into significant problems. Of particular importance are these problems in the case of arithmetic over QN.

Чтобы команды различных типов можно было использовать как в варианте с насыщением, так и в варианте без насыщения, требуется достаточно много места под разряды кода операции. Кроме того, когда нужно обеспечить выполнение умножения в течение одного цикла, дополнительно накладываемые требования, связанные с насыщением, и соответствующие корректировки приводят к нежелательному ограничению тактовой частоты за счет команды умножения с насыщением, которая является наихудшим случаем. In order for commands of various types to be used both in the variant with saturation and in the variant without saturation, a lot of space is required for the digits of the operation code. In addition, when it is necessary to ensure that multiplication is performed during one cycle, additional saturation requirements and corresponding adjustments lead to an undesirable limitation of the clock frequency due to the saturation multiplication command, which is the worst case.

В опубликованной британской патентной заявке GB-А2317465 раскрыт сопроцессор, который поддерживает команды умножения с удвоением, позволяющие полностью осуществлять операции умножения с накоплением в формате Q15 в пределах одной команды, например, dest=SAT (асc+SAT(2*scr1*scr2)) с возможностью масштабирования и dest = SAT(асc-SAT(2*scr1*scr2)) с возможностью масштабирования. The published British patent application GB-A2317465 discloses a coprocessor that supports doubling multiplication commands that allow full multiplication operations with accumulation in Q15 format within a single command, for example dest = SAT (acc + SAT (2 * scr1 * scr2)) scalable and dest = SAT (ac-SAT (2 * scr1 * scr2)) scalable.

Одним аспектом настоящего изобретения является устройство обработки данных, содержащее дешифратор команд, выполненный с возможностью формирования сигналов управления обработкой в соответствии с командными словами обработки данных, и логику обработки, выполненную с возможностью проведения операций обработки данных над словами-операндами данных под управлением упомянутых сигналов управления обработкой, отличающееся тем, что упомянутый дешифратор команд выполнен с возможностью формирования управляющих сигналов для управления упомянутой логикой обработки в соответствии с первым командным словом, чтобы она выполняла операцию обработки данных над первым словом-операндом Р N-разрядных данных и вторым словом-операндом Q N-разрядных данных, формируя результирующее слово R N-разрядных данных, выражаемое в виде:
R=Sat(Fun(P)+Q),
где Sat(X) - функция, возвращающая насыщенное значение X; и
Fun(X) - функция, воздействующая на, по меньшей мере, те значения X, которые могут быть получены умножением со знаком N/2-разрядного числа на N/2-разрядное число, и возвращающая значение, полученное сдвигом Х на некоторую величину сдвига для формирования сдвинутого слова и насыщением упомянутого сдвинутого слова.
One aspect of the present invention is a data processing device comprising an instruction decoder configured to generate processing control signals in accordance with data processing instruction words, and processing logic configured to perform data processing operations on data operands of the data under control of said processing control signals characterized in that said command decoder is configured to generate control signals for controlling said mentioned logic processing according to the first instruction word that is executed by the processing operation on the first word operand R N-bit data and the second word operand Q N-bit data to form the resultant word R N-bit data expressed in the form:
R = Sat (Fun (P) + Q),
where Sat (X) is a function that returns the saturated value of X; and
Fun (X) is a function acting on at least those X values that can be obtained by multiplying the signed N / 2-bit number by an N / 2-bit number, and returning the value obtained by shifting X by a certain amount of shift to form a shifted word and saturation of said shifted word.

Изобретение опирается на тот факт, что создание особой команды, позволяющей удовлетворить требованиям, связанным с применением команды умножения с накоплением с насыщением, обеспечивает значительные преимущества. В частности, требования к тактированию для стандартной операции умножения за один цикл, которую желательно использовать, упрощаются за счет корректировок, производимых в связи с особенностями арифметики с насыщением, которая лучше согласуется с циклами, используемыми последующей командой, которая осуществляет операцию накопления. Новая команда также позволяет избавиться от необходимости задавать насыщающие версии нескольких команд умножения и таким образом уменьшить место, занимаемое разрядами кода операции, и другие издержки, необходимые для обеспечения арифметики с насыщением. Наконец, для реализации новой команды требуется лишь небольшой дополнительный объем аппаратного обеспечения по отношению к уже предусмотренному в системе в соответствии с другими аспектами арифметики с насыщением и без насыщения. The invention is based on the fact that the creation of a special team to satisfy the requirements associated with the use of the multiply accumulation with saturation command provides significant advantages. In particular, the timing requirements for the standard one-cycle multiplication operation, which it is desirable to use, are simplified by adjustments made in connection with the peculiarities of saturation arithmetic, which is more consistent with the cycles used by the subsequent team that performs the accumulation operation. The new command also eliminates the need to specify saturating versions of several multiplication commands and thus reduce the space occupied by bits of the operation code and other costs required to ensure saturation arithmetic. Finally, the implementation of the new team requires only a small additional amount of hardware in relation to that already provided in the system in accordance with other aspects of arithmetic with and without saturation.

Очевидно, что для реализации новой команды можно использовать самые разнообразные аппаратные средства. Различные операции, необходимые для получения в качестве окончательного результата N-разрядного слова данных, можно группировать различными способами и выполнять посредством различных схемных блоков. Все эти разнообразные альтернативы, обеспечивающие получение результирующего N-разрядного слова данных с одним и тем же вышеприведенным окончательным значением с использованием одной команды, представляют собой варианты осуществления настоящего изобретения. Obviously, a wide variety of hardware can be used to implement the new team. The various operations necessary to obtain an N-bit data word as the final result can be grouped in various ways and performed by various circuit blocks. All of these diverse alternatives for obtaining the resulting N-bit data word with the same final value above using a single command are embodiments of the present invention.

Помимо вышеописанной команды, предназначенной для использования в операциях умножения с накоплением с насыщением, можно аналогичным образом создать аналогичные команды, обеспечивающие операции умножения с декрементом с насыщением. In addition to the above command, intended for use in operations of multiplication with accumulation with saturation, one can similarly create similar commands that provide operations of multiplication with decrement with saturation.

В командах, отвечающих изобретению, можно использовать сдвиг той или иной величины. Однако особенно полезно применять такой сдвиг, чтобы сдвинутое слово вдвое превосходило первое слово-операнд Р N-разрядных данных. In teams that meet the invention, you can use a shift of one size or another. However, it is especially useful to apply such a shift so that the shifted word is twice as large as the first operand word P of N-bit data.

При осуществлении целочисленного умножения двух чисел в формате Q15 результат, полученный нормальным путем, представляет собой 32-разрядное число в формате "квази-Q30", которое можно рассматривать как элемент арифметики дополнений, сопоставляемый обычному 32-разрядному значению со знаком, деленному на 230, и таким образом представляющий число от -2 до +(2-2-30). Число в формате квази-Q30 можно также рассматривать как знаковое 32-разрядное число с фиксированной запятой с 30 двоичными разрядами. Однако в таких обстоятельствах для дальнейшей обработки требуется число в формате Q31. Чтобы решить эту проблему, можно после стандартной команды целочисленного умножения выполнить команду, отвечающую изобретению, и выполнить сдвиг на величину, обеспечивающую удвоение результата целочисленного умножения для перевода полученного значения из формата квази-Q30 в формат Q31, а затем перейти к операции насыщения и операции накопления или декремента. Таким образом, одну из проблематичных корректировок, необходимых для поддержки арифметики с насыщением, можно обеспечить путем корректировки результата целочисленного умножения, осуществляемой в рамках последующей команды, вместо того, чтобы ждать окончания цикла умножения.When performing integer multiplication of two numbers in the Q15 format, the result obtained in the normal way is a 32-bit number in the quasi-Q30 format, which can be considered as an element of the arithmetic of additions, comparable to the usual 32-bit value with a sign divided by 2 30 , and thus representing a number from -2 to + (2-2 -30 ). A quasi-Q30 number can also be thought of as a signed 32-bit fixed-point number with 30 binary digits. However, in such circumstances, further processing requires a number in Q31 format. To solve this problem, after the standard integer multiplication command, you can execute the command corresponding to the invention and perform a shift by an amount that doubles the result of the integer multiplication to convert the obtained value from the quasi-Q30 format to Q31 format, and then go to the saturation operation and the accumulation operation or decrement. Thus, one of the problematic adjustments needed to support saturation arithmetic can be achieved by adjusting the result of integer multiplication carried out as part of a subsequent command, rather than waiting for the end of the multiplication cycle.

Для осуществления насыщения можно использовать логические схемы самых разных видов. Однако согласно предпочтительным вариантам осуществления изобретения насыщение упомянутого сдвинутого слова предусматривает проверку наличия определенных характеристик упомянутого первого слова-операнда Р N-разрядных данных и в случае наличия таковых - замену упомянутого сдвинутого значения соответствующим граничным значением диапазона разрешенных значений. For the implementation of saturation, you can use logic circuits of various types. However, according to preferred embodiments of the invention, saturation of said shifted word involves checking for the presence of certain characteristics of said first operand word P of N-bit data, and if any, replacing said shifted value with a corresponding boundary value of the range of allowed values.

Эта особенность основана на том, что в некоторых обстоятельствах для обеспечения насыщения можно проверять характеристики первого слова-операнда Р N-разрядных данных, поскольку возможности манипуляции, которой его надлежит подвергнуть, довольно ограничены и потому обстоятельства, при которых может возникнуть переполнение или антипереполнение (потеря значащих разрядов), что обуславливает необходимость в насыщении, можно проверять специально и таким образом снизить требования к аппаратному обеспечению в целом. This feature is based on the fact that in some circumstances, to ensure saturation, it is possible to check the characteristics of the first operand word P of N-bit data, since the possibilities of manipulation to be subjected to it are rather limited and therefore the circumstances under which overflow or anti-overflow may occur (loss significant bits), which necessitates saturation, can be checked specifically and thus reduce the requirements for hardware as a whole.

В частности, когда применение сдвига приводит к удвоению первого слова-операнда Р N-разрядных данных, существует весьма простой способ установления необходимости насыщения, заключающийся в сравнении двух старших разрядов первого слова-операнда Р N-разрядных данных. In particular, when applying a shift doubles the first operand word P of N-bit data, there is a very simple way to establish if saturation is necessary by comparing the two high-order bits of the first operand word P of N-bit data.

По сравнению со сравнительно ограниченным диапазоном обстоятельств, возникающих в ходе выполнения команды Fun(X), при которых возможно переполнение или антипереполнение, при выполнении функции Sat(X) переполнение или антипереполнение может возникать в большем количестве случаев и потому предпочтительные варианты осуществления изобретения предусматривают, что Sat(X) в целях формирования упомянутого результирующего слова R N-разрядных данных предусматривает проверку, лежит ли Х вне диапазона разрешенных значений, и в случае обнаружения этого факта - замену Х соответствующим граничным значением упомянутого диапазона разрешенных значений. Compared with the relatively limited range of circumstances that arise during the execution of the Fun (X) command, in which overflow or anti-overflow is possible, when performing the Sat (X) function, overflow or anti-overflow can occur in more cases and therefore the preferred embodiments of the invention provide that Sat (X), in order to form said resultant word R of N-bit data, provides for checking whether X lies outside the range of allowed values, and if this is found fact - replacing X with the corresponding boundary value of the mentioned range of allowed values.

Хотя новые команды, отвечающие настоящему изобретению, сами по себе обладают преимуществами, они, как было отмечено выше, особенно пригодны для вариантов осуществления, предусматривающих наличие умножителя для выполнения второго командного слова, которое формирует первое слово-операнд N-разрядных данных, перемножая третье слово-операнд A N/2-разрядных данных и четвертое слово-операнд В N/2-разрядных данных. Although the new instructions of the present invention themselves have advantages, they, as noted above, are particularly suitable for embodiments involving a multiplier for executing a second instruction word that forms the first operand word of N-bit data by multiplying the third word -operand AN / 2-bit data and the fourth word-operand In N / 2-bit data.

Команды, отвечающие изобретению, можно применять к операндам любого рода. Однако команда особенно полезна применительно к вариантам осуществления, согласно которым упомянутое первое слово-операнд Р N-разрядных данных, упомянутое второе слово-операнд Q N-разрядных данных и упомянутое результирующее слово R N-разрядных данных являются словами знаковых данных с фиксированной запятой, причем запятая находится непосредственно справа от позиции старшего разряда, так что -1≤Р≤+1, -1≤Q<+1 и -1≤R<+1 и область определения Sat(X) отвечают условию -1≤Х<+1. The instructions of the invention can be applied to operands of any kind. However, the command is particularly useful in relation to embodiments whereby said first operand word P of N-bit data, said second operand word Q of N-bit data, and said result word R of N-bit data are fixed-point character data, wherein the comma is located directly to the right of the position of the highest digit, so that -1≤Р≤ + 1, -1≤Q <+1 and -1≤R <+1 and the definition area Sat (X) meets the condition -1≤X <+1 .

Согласно рассмотренному выше для использования таких операндов в формате QN требуются операции корректировки и насыщения, которые могут эффективно обеспечиваться за счет выполнения команд, отвечающих изобретению, не оказывая чрезмерного воздействия на остальную систему обработки данных. According to the discussion above, the use of such operands in QN format requires adjustment and saturation operations, which can be effectively ensured by executing instructions corresponding to the invention without exerting undue influence on the rest of the data processing system.

Наиболее часто используют те значения первого слова-операнда Р N-разрядных данных, которые можно получить умножением со знаком N/2-разрядного целого на N/2-разрядное целое. Однако предпочтительные варианты осуществления изобретения предусматривают расширение сферы применения Fun(X), допуская ее использование при осуществлении сдвига и насыщения всех возможных N-разрядных значений X. The most often used are the values of the first operand word P of N-bit data, which can be obtained by multiplying the signed N / 2-bit integer by an N / 2-bit integer. However, preferred embodiments of the invention provide an extension of the scope of Fun (X), allowing its use in the implementation of the shift and saturation of all possible N-bit values of X.

Изобретение можно использовать в системах, в которых N принимает те или иные значения. Однако для осуществления операций ЦОС того типа, для которого изобретение особенно полезно, обычно требуются определенные значения N, например N=32. The invention can be used in systems in which N takes one or another value. However, for DSP operations of the type for which the invention is particularly useful, certain N values, for example, N = 32, are usually required.

Хотя очевидно, что изобретение можно реализовать в виде системы, содержащей дискретные компоненты, весьма предпочтительно, чтобы устройство обработки данных было реализовано на основе интегральных схем. Although it is obvious that the invention can be implemented as a system containing discrete components, it is highly preferred that the data processing device be implemented on the basis of integrated circuits.

Другим аспектом настоящего изобретения является способ обработки данных в устройстве обработки данных, согласно которому в соответствии с командными словами обработки данных формируют сигналы управления обработкой и выполняют операции обработки данных над словами-операндами данных под управлением упомянутых сигналов управления обработкой; отличающийся тем, что в соответствии с первым командным словом формируют управляющие сигналы для управления логикой обработки, чтобы она выполняла операцию обработки данных над первым словом-операндом Р N-разрядных данных и вторым словом-операндом Q N-разрядных данных, чтобы сформировать результирующее слово R N-разрядных данных, выражаемое в виде:
R=Sat(Fun(Р)+Q),
где Sat(X) - функция, возвращающая насыщенное значение X; и
Fun(X) - функция, воздействующая на, по меньшей мере, те значения X, которые могут быть получены умножением со знаком N/2-разрядного числа на N/2-разрядное число, и возвращающая значение, полученное сдвигом Х на некоторую величину сдвига, для формирования сдвинутого слова, и насыщением упомянутого сдвинутого слова.
Another aspect of the present invention is a data processing method in a data processing apparatus, according to which, in accordance with data processing instruction words, processing control signals are generated and data processing operations are performed on data operand words under the control of said processing control signals; characterized in that, in accordance with the first command word, control signals are generated to control the processing logic so that it performs a data processing operation on the first operand word P of N-bit data and the second operand word Q of N-bit data to form a resulting word R N-bit data, expressed as:
R = Sat (Fun (P) + Q),
where Sat (X) is a function that returns the saturated value of X; and
Fun (X) is a function acting on at least those X values that can be obtained by multiplying the signed N / 2-bit number by an N / 2-bit number, and returning the value obtained by shifting X by a certain amount of shift , to form a shifted word, and saturation of said shifted word.

Предусмотрены также дополнительные аспекты способа, согласно которым команда выполняет операцию вычитания, а не сложения. There are also additional aspects of the method according to which the team performs a subtraction operation, rather than addition.

Ниже, исключительно в качестве примера, описан вариант осуществления изобретения со ссылками на прилагаемые чертежи, в которых:
фиг. 1 - схема дешифратора команд и логики обработки в интегральной схеме; и
фиг. 2, 3 и 4 - блок-схемы, иллюстрирующие порядок выполнения команд, предусмотренных для поддержки арифметики с насыщением.
Below, solely by way of example, an embodiment of the invention is described with reference to the accompanying drawings, in which:
FIG. 1 is a diagram of a command decoder and processing logic in an integrated circuit; and
FIG. 2, 3, and 4 are flowcharts illustrating the execution order of instructions provided to support saturation arithmetic.

На фиг. 1 показана часть интегральной схемы 2 (аналогичная части микропроцессора ARM9TDMI, производимого ARM Limited, Кембридж, Великобритания), содержащая дешифратор 4 команд и логику 6 обработки. Логика 6 обработки образована большим количеством разнообразных отдельных функциональных элементов. В банке 8 регистров хранятся слова-операнды данных (P, Q), подлежащие манипулированию. Эти слова можно считывать из банка 8 регистров и подавать через мультиплексоры 10, 12, 14 на разные другие блоки обработки, входящие в состав логики 6 обработки. Целочисленный умножитель 16 предусмотрен для осуществления среди других функций целочисленного умножения со знаком. Сумматор 18 предусмотрен для осуществления операций умножения с накоплением без насыщения и для преобразования результата умножения из формата переноса с сохранением в формат дополнения до двойки. Предусмотрены также элемент сдвига 20 и арифметико-логическое устройство 22. Вышеупомянутые основные компоненты логики 6 обработки, в целом, известны. Управляющие сигналы дешифратора 4 команд подают на различные элементы логики 6 обработки для управления и согласования их работы. В частности, когда дешифратор команд дешифрует команды, выдаваемые им управляющие сигналы 24 переключают различные мультиплексоры, входящие в состав логики 6 обработки, для выбора нужного пути данных, а также активируют и настраивают различные блоки обработки, входящие в состав логики 6 обработки, для осуществления операции, заданной дешифрованной командой. Для простоты линии сигнализации, связывающие отдельные компоненты с дешифратором команд, на схеме не изображены. In FIG. 1 shows part of an integrated circuit 2 (similar to that of an ARM9TDMI microprocessor manufactured by ARM Limited, Cambridge, UK), comprising 4 command decoder and 6 processing logic. The processing logic 6 is constituted by a large number of diverse individual functional elements. The bank of 8 registers stores data operand words (P, Q) to be manipulated. These words can be read from the bank of 8 registers and fed through multiplexers 10, 12, 14 to various other processing units that are part of the processing logic 6. An integer multiplier 16 is provided for carrying out, among other functions, a signed integer multiplication. The adder 18 is provided for performing multiplication operations with accumulation without saturation and for converting the result of the multiplication from the transfer format with saving to the format of addition to two. A shift element 20 and an arithmetic logic unit 22 are also provided. The above-mentioned main components of the processing logic 6 are generally known. The control signals of the decoder 4 commands are fed to various elements of the logic 6 processing to control and coordinate their work. In particular, when the command decoder decrypts the commands issued by the control signals 24, they switch the various multiplexers included in the processing logic 6 to select the desired data path, and also activate and configure the various processing units included in the processing logic 6 to perform the operation given by the decrypted command. For simplicity, the signaling lines linking the individual components to the command decoder are not shown in the diagram.

В целях обеспечения дополнительных команд (QDADD, QDSUB и QDRSB) (команда сложения, команда вычитания и команда обращенного вычитания) для арифметики с насыщением предусмотрен блок 26 сдвига и насыщения, расположенный по ходу обработки выше арифметико-логического устройства 22, а также предусмотрен блок 28 полного насыщения, расположенный на пути обратной связи с банком 8 регистров, на следующем каскаде конвейерной обработки после того, на котором действует арифметико-логическое устройство 22. В ходе работы блок 26 сдвига и насыщения сначала проверяет тот факт, что два старших разряда поступившего на него 32-разрядного слова данных не равны друг другу. При выполнении этого условия сдвиг влево на один разряд приведет к переполнению или антипереполнению, если поступившее слово данных представляет слово в формате квази-Q30, которое подлежит преобразованию в слово в формате Q31 путем сдвига влево. Если два старших разряда равны '01', то блок 26 сдвига и насыщения выводит значение 0•7FFFFFFF, представляющее максимальное граничное значение диапазона разрешенных значений. Аналогично, если два старших разряда равны '10', то блок 26 сдвига и насыщения выводит значение 0•80000000, представляющее минимальное граничное значение диапазона разрешенных значений. Если не выполнено ни одно из этих условий, то блок 26 сдвига и насыщения осуществляет сдвиг влево поступившего значения двоичных данных на один разряд, что соответствует удвоению этого значения и таким образом преобразует представление квази-Q30, полученное целочисленным умножением числа в формате Q15 на число в формате Q15, в представление Q31, которое требуется для дальнейшей обработки (например, накопления) и насыщения. In order to provide additional commands (QDADD, QDSUB and QDRSB) (addition command, subtraction command and reverse subtraction command), a shift and saturation block 26 is located for processing arithmetic 26 located above the arithmetic logic unit 22 and block 28 is also provided full saturation, located on the feedback path with the bank of 8 registers, at the next cascade of conveyor processing after the arithmetic logic unit 22 operates. During operation, the shift and saturation unit 26 is first checked the fact that the two MSBs incoming him a 32-bit data word is not equal to each other. If this condition is met, a left shift by one bit will lead to overflow or anti-overflow if the received data word represents a quasi-Q30 word, which is to be converted to a word in Q31 format by left shift. If the two high order bits are equal to '01', then the shift and saturation unit 26 outputs a value of 0 • 7FFFFFFF, representing the maximum boundary value of the range of allowed values. Similarly, if the two high-order bits are equal to '10', then the shift and saturation unit 26 outputs a value of 0 • 80000000, representing the minimum boundary value of the range of allowed values. If none of these conditions is met, then the shift and saturation block 26 moves the received binary data value to the left by one bit, which corresponds to doubling this value and thus converts the quasi-Q30 representation obtained by integer multiplying the number in the Q15 format by the number in Q15 format, into a Q31 view, which is required for further processing (e.g., accumulation) and saturation.

Блок 26 сдвига и насыщения снабжен обходным маршрутом, что позволяет отключать его в соответствии с определенным управляющим сигналом 24, поступающим от дешифратора 4 команд, когда та или иная дешифрованная команда не требует этой операции. Блок 26 сдвига и насыщения размещается на шине А и эта шина обычно меньше ограничена по тактированию, чем шина В, поскольку шина В содержит элемент сдвига 20. Block 26 shift and saturation is equipped with a bypass route, which allows you to disable it in accordance with a specific control signal 24, coming from the decoder 4 commands, when a decrypted command does not require this operation. The shift and saturation unit 26 is located on the tire A and this tire is usually less limited in timing than the tire B, since the tire B contains a shift member 20.

Соответственно, блок 26 сдвига и насыщения не вызывает никаких значительных дополнительных проблем, связанных с тактированием. Accordingly, the block 26 shift and saturation does not cause any significant additional problems associated with timing.

Блок 28 полного насыщения предусмотрен на пути обратной связи и используется после того, как арифметико-логическое устройство 22 произведет необходимую операцию сложения или вычитания. Блок 28 полного насыщения может действовать в соответствии с известными принципами для обнаружения переполнения или антипереполнения знакового результата, полученного на арифметико-логическом устройстве 22, и корректировки его до соответственно максимального или минимального граничного значения диапазона разрешенных значений. Подобно блоку 26 сдвига и насыщения блок 28 полного насыщения снабжен обходным маршрутом, что позволяет отключать его при наличии соответствующего управляющего сигнала 24, когда это насыщение не требуется. Поскольку блок 28 полного насыщения находится в каскаде конвейерной обработки, который обычно не влияет на выполнение команд сложения и вычитания, его работа не добавляет никаких проблем, связанных с тактированием. Однако он требует блокировки процессора в течение одного цикла, если результат команды насыщения сразу используется следующей командой. Этой блокировкой можно управлять наподобие того, как управляют блокировками, генерируемыми на многих микропроцессорах, когда значение, загруженное командой загрузки, сразу используется следующей командой. The full saturation block 28 is provided on the feedback path and is used after the arithmetic logic device 22 performs the necessary addition or subtraction operation. The full saturation unit 28 may act in accordance with known principles for detecting overflow or anti-overflow of a significant result obtained on the arithmetic-logical device 22 and correcting it to the corresponding maximum or minimum boundary value of the range of allowed values. Like the shift and saturation block 26, the full saturation block 28 is equipped with a bypass route, which allows it to be switched off if there is a corresponding control signal 24 when this saturation is not required. Since the block 28 full saturation is in the cascade of pipeline processing, which usually does not affect the execution of the addition and subtraction commands, its operation does not add any problems associated with clocking. However, it requires locking the processor for one cycle if the result of the saturation command is immediately used by the next command. This lock can be controlled similar to how the locks generated on many microprocessors are controlled when the value loaded by the load command is immediately used by the next command.

В ходе работы в целом для того, чтобы выполнять умножение в формате Q15 совместно с операцией накопления в формате Q31, обработку осуществляют следующим образом. Сначала из банка 8 регистров считывают значения в формате Q15 на шину А и шину В и подают на вход одноциклового целочисленного умножителя 16. Результат в формате квази-Q30 направляют обратно в банк 8 регистров. На следующем цикле обработки выполняют одну из новых команд (например, команду QDADD), согласно которой результат умножения в формате квази-Q30 считывают на шину А, а накопленное значение в формате Q31 - на шину В. Затем значение в формате квази-Q30 подвергают сдвигу влево на один разряд или насыщению на блоке 26 сдвига и насыщения и подают его выходные данные на один вход арифметико-логического устройства 22. Значение в формате Q31 подают из шины В на другой вход арифметико-логического устройства 22, используя при этом соответствующие управляющие сигналы 24, в соответствии с которыми элемент сдвига 20 не осуществляет сдвиг на поступившем на него значении. Блок 26 сдвига и насыщения приводит значение из формата квази-Q30 к требуемому формату Q31, после чего скорректированное значение суммируется со значением в формате Q31, поступившее из шины В, на арифметико-логическом устройстве 22. Выходные данные арифметико-логического устройства 22 поступают на блок 28 полного насыщения, где подвергаются насыщению в формате Q31 при наличии флагов переполнения и антипереполнения и выполнении других стандартных условий в выходных данных арифметико-логического устройства 22, после чего направляются обратно на хранение в банк 8 регистров. Арифметико-логическое устройство 22 вместо того, чтобы выполнять сложение, может под управлением соответствующих управляющих сигналов 24 вычитать значение шины А из значения шины В в рамках команды QDRSB или вычитать значение шины В из значения шины А в рамках команды QDSUB. Настройку блока арифметической логики на осуществление операций вычитания посредством соответствующих управляющих сигналов 24, поступающих от дешифратора команд, можно реализовать разными стандартными способами. In the course of work as a whole, in order to perform multiplication in the Q15 format together with the accumulation operation in the Q31 format, the processing is carried out as follows. First, values from the bank of 8 registers are read in the format Q15 to bus A and bus B and fed to the input of a single-cycle integer multiplier 16. The result in the format of quasi-Q30 is sent back to the bank of 8 registers. In the next processing cycle, one of the new commands is executed (for example, the QDADD command), according to which the multiplication result in the quasi-Q30 format is read onto the bus A, and the accumulated value in the Q31 format is read onto the bus B. Then, the value in the quasi-Q30 format is shifted to the left by one bit or saturation on the block 26 shift and saturation and serves its output to one input of the arithmetic logic device 22. The value in the format Q31 is fed from bus B to the other input of the arithmetic logic device 22, using the corresponding control signal ls 24, in accordance with which the shift element 20 does not shift at the value received on it. The shift and saturation block 26 converts the value from the quasi-Q30 format to the required format Q31, after which the adjusted value is summed with the value in the Q31 format received from bus B on the arithmetic-logic device 22. The output of the arithmetic-logical device 22 is sent to the block 28 full saturation, where they are saturated in the Q31 format when there are overflow and anti-overflow flags and other standard conditions are met in the output of the arithmetic-logical device 22, after which they are sent back to xp nenie the bank 8 registers. The arithmetic logic device 22, instead of performing addition, can, under the control of the corresponding control signals 24, subtract the value of bus A from the value of bus B as part of the QDRSB command or subtract the value of bus B from the value of bus A as part of the QDSUB command. The adjustment of the arithmetic logic unit to perform subtraction operations by means of the corresponding control signals 24 coming from the command decoder can be implemented in various standard ways.

Из вышесказанного следует, что операции, выполняемые в рамках команд QDADD, QDSUB и QDRSB, распределяются разными способами между различными функциональными блоками логики обработки. Специалистам в данной области понятно, что распределение этих операций между различными блоками можно осуществлять многими разными способами, но тем не менее получать один и тот же конечный результат. From the foregoing, it follows that the operations performed within the QDADD, QDSUB, and QDRSB commands are distributed in different ways between the various functional blocks of the processing logic. Specialists in this field it is clear that the distribution of these operations between different blocks can be done in many different ways, but nevertheless get the same final result.

На фиг. 2 показана блок-схема, иллюстрирующая этапы обработки, осуществляемые в рамках команды QDADD. На этапе 40 производится проверка, равны ли два старших разряда первого слова-операнда 32-разрядных данных '01'. Если это имеет место, то сдвиг влево на один разряд приведет к переполнению и соответственно на этапе 42 операнду присваивается максимальное разрешенное положительное значение (+1-2-31). Аналогично, на этапе 44 производится проверка, равны ли два старших разряда '10', в каковом случае сдвиг влево приведет к антипереполнению. При выполнении этого условия на этапе 46 операнду присваивается минимальное разрешенное значение -1.In FIG. 2 is a flowchart illustrating processing steps carried out as part of a QDADD command. At step 40, a check is made to see if the two high-order bits of the first operand word of the 32-bit data '01' are equal. If this occurs, a shift to the left by one bit will lead to overflow and, accordingly, at step 42, the operand is assigned the maximum allowed positive value (+ 1-2 -31 ). Similarly, at step 44, a check is made to see if the two high-order bits of '10' are equal, in which case a left shift will lead to anti-overflow. When this condition is met, at step 46, the operand is assigned the minimum allowed value of -1.

Если не выполнено ни условие переполнения, ни условие антипереполнения, то на этапе 48 осуществляется сдвиг влево на один разряд первого слова-операнда 32-разрядных данных, т.е. преобразование из формата квази-Q30 в формат Q31, если это то, что представляет число. Операции, осуществляемые на этапах 40-48, соответствуют функциям, выполняемым блоком 26 сдвига и насыщения, и вышеописанной функции Fun(X). If neither the overflow condition nor the anti-overflow condition is satisfied, then at step 48, a left shift is performed by one bit of the first word-operand of 32-bit data, i.e. conversion from quasi-Q30 format to Q31 format if that is what the number represents. The operations carried out in steps 40-48 correspond to the functions performed by the shift and saturation unit 26 and the function Fun (X) described above.

На этапе 50 осуществляется сложение. Это сложение соответствует сложению, осуществляемому арифметико-логическим устройством 22, изображенным на фиг.1. At step 50, addition is performed. This addition corresponds to the addition carried out by the arithmetic logic device 22 shown in FIG.

На этапах 52 и 54 производится обнаружение и устранение переполнения в насыщенном значении, полученном на этапе 50 сложения. Аналогично, выполнение этапов 56 и 58 устраняет антипереполнение. Если не обнаружено ни переполнения, ни антипереполнения, никакой корректировки не производится. На этапе 60 результат R команды QDADD поступает на хранение обратно в банк 8 регистров. At steps 52 and 54, overflow is detected and eliminated at the saturated value obtained at addition step 50. Similarly, performing steps 56 and 58 eliminates anti-overflow. If neither overflow nor anti-overflow is detected, no adjustment is made. At step 60, the result R of the QDADD command is deposited back to the bank of 8 registers.

Операции, осуществляемые на этапах 52-58, соответствуют операциям, выполняемым блоком 28 полного насыщения, изображенным на фиг.1, и вышеописанной функции Sat(X). The operations carried out in steps 52-58 correspond to the operations performed by the full saturation unit 28 shown in FIG. 1 and the above-described Sat (X) function.

На фиг. 3 показана аналогичная блок-схема, но применительно к команде QDSUB. В этой команде этап 50, обозначенный на фиг.2, заменен этапом 62, на котором второе слово-операнд Q 32-разрядных данных вычитают из сдвинутого и насыщенного первого слова-операнда Р. In FIG. Figure 3 shows a similar block diagram, but with reference to the QDSUB command. In this command, step 50, shown in FIG. 2, is replaced by step 62, in which the second operand word Q of 32-bit data is subtracted from the shifted and saturated first operand word P.

Фиг. 4 аналогична фиг.3 за исключением того, что порядок вычитания, которое осуществляется на этапе 62, обозначенном на фиг.3, заменен обратным на этапе 64, обозначенном на фиг.4. FIG. 4 is similar to FIG. 3 except that the subtraction order that is carried out in step 62 of FIG. 3 is reversed in step 64 of FIG. 4.

Claims (15)

1. Устройство обработки данных, содержащее дешифратор (4) команд, выполненный с возможностью формирования сигналов управления обработкой в соответствии с командными словами обработки данных, и средство (6) логической обработки, выполненное с возможностью выполнения операций обработки данных над словами-операндами данных, под управлением упомянутых сигналов управления обработкой, отличающееся тем, что упомянутый дешифратор (4) команд выполнен с возможностью формирования управляющих сигналов для управления упомянутым средством логической обработки в соответствии с первым командным словом (QDADD), чтобы средство логической обработки выполняло операцию обработки данных над первым словом-операндом P N-разрядных данных и вторым словом-операндом Q N-разрядных данных, формируя результирующее слово R N-разрядных данных, выражаемое в виде1. A data processing device comprising an instruction decoder (4) configured to generate processing control signals in accordance with data processing instruction words, and a logical processing means (6) configured to perform data processing operations on data operand words under control of said processing control signals, characterized in that said command decoder (4) is configured to generate control signals for controlling said means processing in accordance with the first command word (QDADD) so that the logical processing means performs a data processing operation on the first operand word P of N-bit data and the second operand word Q of N-bit data, forming a result word R of N-bit data, expressed as R=Sat(Fun(P)+Q),R = Sat (Fun (P) + Q), где Sat (X) – функция, возвращающая насыщенное значение Х;where Sat (X) is a function that returns the saturated value of X; Fun (Х) - функция, воздействующая на, по меньшей мере, те значения Х, которые могут быть получены умножением со знаком N/2-разрядного числа на N/2-разрядное число, и возвращающая значение, полученное сдвигом Х на некоторую величину сдвига, для формирования сдвинутого слова, и насыщением упомянутого сдвинутого слова.Fun (X) is a function that affects at least those X values that can be obtained by multiplying the signed N / 2-bit number by an N / 2-bit number, and returning the value obtained by shifting X by a certain amount of shift , to form a shifted word, and saturation of said shifted word. 2. Устройство обработки данных, содержащее дешифратор (4) команд, выполненный с возможностью формирования сигналов управления обработкой в соответствии с командными словами обработки данных, и средство (6) логической обработки, действующее под управлением упомянутых сигналов управления обработкой, выполненное с возможностью проведения операций обработки данных над словами-операндами данных, отличающееся тем, что упомянутый дешифратор (4) команд выполнен с возможностью формирования управляющих сигналов для управления упомянутым средством логической обработки в соответствии с первым командным словом (QDSUB), чтобы упомянутое средство выполняло операцию обработки данных над первым словом-операндом Р N-разрядных данных и вторым словом-операндом Q N-разрядных данных, формируя результирующее слово R N-разрядных данных, выражаемое в виде2. A data processing device comprising an instruction decoder (4) configured to generate processing control signals in accordance with data processing command words, and a logical processing means (6) operating under the control of said processing control signals, configured to perform processing operations data over data operands, characterized in that said command decoder (4) is configured to generate control signals for controlling said means Ohm logical processing in accordance with the first command word (QDSUB), so that the said tool performs a data processing operation on the first operand word P of N-bit data and the second operand word Q of N-bit data, forming a result word R of N-bit data, expressed as R=Sat(Fun(P)–Q),R = Sat (Fun (P) –Q), где Sat (Х) – функция, возвращающая насыщенное значение Х;where Sat (X) is a function that returns the saturated value of X; Fun (Х) – функция, воздействующая на, по меньшей мере, те значения Х, которые могут быть получены умножением со знаком N/2-разрядного числа на N/2-разрядное число, и возвращающая значение, полученное сдвигом Х на некоторую величину сдвига, для формирования сдвинутого слова, и насыщением упомянутого сдвинутого слова.Fun (X) is a function that affects at least those X values that can be obtained by multiplying the signed N / 2-bit number by an N / 2-bit number, and returning the value obtained by shifting X by a certain amount of shift , to form a shifted word, and saturation of said shifted word. 3. Устройство обработки данных, содержащее дешифратор (4) команд, выполненный с возможностью формирования сигналов управления обработкой в соответствии с командными словами обработки данных, и средство (6) логической обработки, выполненное с возможностью выполнения операций обработки данных над словами-операндами данных, под управлением упомянутых сигналов управления обработкой, отличающееся тем, что упомянутый дешифратор (4) команд выполнен с возможностью формирования управляющих сигналов для управления упомянутым средством логической обработки в соответствии с первым командным словом (QDRSB), чтобы упомянутое средство выполняло операцию обработки данных над первым словом-операндом Р N-разрядных данных и вторым словом-операндом О N-разрядных данных, формируя результирующее слово R N-разрядных данных, выражаемое в виде3. A data processing device comprising an instruction decoder (4) configured to generate processing control signals in accordance with data processing instruction words, and a logical processing means (6) configured to perform data processing operations on data operand words under control of said processing control signals, characterized in that said command decoder (4) is configured to generate control signals for controlling said means processing in accordance with the first command word (QDRSB) so that said means performs a data processing operation on the first operand word P of N-bit data and the second operand word O of N-bit data, forming a result word R of N-bit data expressed as R=Sat(Q–Fun(P)),R = Sat (Q – Fun (P)), где Sat (Х) – функция, возвращающая насыщенное значение Х;where Sat (X) is a function that returns the saturated value of X; Fun (Х) - функция, воздействующая на, по меньшей мере, те значения Х, которые могут быть получены умножением со знаком N/2-разрядного числа на N/2-разрядное число, и возвращающая значение, полученное сдвигом Х на некоторую величину сдвига, для формирования сдвинутого слова, и насыщением упомянутого сдвинутого слова.Fun (X) is a function that affects at least those X values that can be obtained by multiplying the signed N / 2-bit number by an N / 2-bit number, and returning the value obtained by shifting X by a certain amount of shift , to form a shifted word, and saturation of said shifted word. 4. Устройство обработки данных по любому одному из пп.1, 2 или 3, отличающееся тем, что упомянутая величина сдвига такова, что упомянутое сдвинутое слово вдвое превосходит первое слово-операнд Р N-разрядных данных.4. A data processing device according to any one of claims 1, 2 or 3, characterized in that said shift amount is such that said shifted word is twice as large as the first operand word P of N-bit data. 5. Устройство обработки данных по любому из предшествующих пунктов, отличающееся тем, что насыщение упомянутого сдвинутого слова предусматривает проверку наличия определенных характеристик упомянутого первого слова-операнда Р N-разрядных данных и, в случае наличия таковых, замену упомянутого сдвинутого значения соответствующим граничным значением диапазона разрешенных значений.5. A data processing device according to any one of the preceding paragraphs, characterized in that the saturation of said shifted word involves checking for the presence of certain characteristics of said first operand word P of N-bit data and, if any, replacing said shifted value with a corresponding boundary value of the allowed range values. 6. Устройство обработки данных по одному из пп.4, 5, отличающееся тем, что упомянутое первое слово-операнд N-разрядных данных является значением со знаком и упомянутая определенная характеристика состоит в отсутствии равенства между двумя старшими разрядами упомянутого первого слова-операнда R N-разрядных данных.6. The data processing device according to one of paragraphs.4, 5, characterized in that said first operand word of N-bit data is a signed value and said specific characteristic consists in the absence of equality between the two high-order bits of said first operand word R N -bit data. 7. Устройство обработки данных по любому из предшествующих пунктов, отличающееся тем, что Sat (X) для формирования упомянутого результирующего слова R N-разрядных данных предусматривает проверку, лежит ли Х вне диапазона разрешенных значений, и, в случае обнаружения этого факта, замену Х соответствующим граничным значением упомянутого диапазона разрешенных значений.7. A data processing device according to any one of the preceding claims, characterized in that Sat (X) for generating said resultant word R of N-bit data comprises checking whether X lies outside the range of permitted values, and, if this fact is detected, replacing X the corresponding boundary value of said range of permitted values. 8. Устройство обработки данных по любому из предшествующих пунктов, отличающееся тем, что упомянутое средство логической обработки содержит умножитель (УМНОЖ) и упомянутое первое слово-операнд Р N-разрядных данных является результатом умножения, полученным путем умножения со знаком третьего слова-операнда A N/2-разрядных данных и четвертого слова-операнда В N/2-разрядных данных в соответствии со вторым командным словом.8. A data processing device according to any one of the preceding paragraphs, characterized in that said means of logical processing comprises a multiplier (MULTIPLE) and said first operand word P of N-bit data is a multiplication result obtained by multiplying with the sign of the third operand word AN / 2-bit data and the fourth operand word In N / 2-bit data according to the second control word. 9. Устройство обработки данных по любому из предшествующих пунктов, отличающееся тем, что упомянутое первое слово-операнд Р N-разрядных данных, упомянутое второе слово-операнд Q N-разрядных данных и упомянутое результирующее слово R N-разрядных данных являются словами знаковых данных с фиксированной запятой, причем запятая находится непосредственно справа от позиции старшего разряда, так что –1≤Р<+1, –1≤Q<+1 и –1≤R<+1 и область определения Sat (X) отвечает условию –1≤Х<+1.9. A data processing device according to any one of the preceding paragraphs, characterized in that said first operand word P of N-bit data, said second operand word Q of N-bit data and said resultant word N of N-bit data are character data words with a fixed comma, and the comma is located directly to the right of the position of the highest digit, so –1≤P <+1, –1≤Q <+1 and –1≤R <+1 and the definition area Sat (X) meets the condition –1≤ X <+1. 10. Устройство обработки данных по любому из предшествующих пунктов, отличающееся тем, что функция Fun(X) определена на всех N-разрядных значениях Х и возвращает значение, полученное сдвигом Х на некоторую величину сдвига для формирования сдвинутого слова и насыщением упомянутого сдвинутого слова.10. The data processing device according to any one of the preceding paragraphs, characterized in that the Fun (X) function is defined on all N-bit values of X and returns the value obtained by shifting X by a certain amount of shift to form a shifted word and saturation of said shifted word. 11. Устройство обработки данных по любому из предшествующих пунктов, отличающееся тем, что N=32.11. The data processing device according to any one of the preceding paragraphs, characterized in that N = 32. 12. Устройство обработки данных по любому из предшествующих пунктов, отличающееся тем, что упомянутое устройство обработки данных выполнено в виде интегральной схемы.12. A data processing device according to any one of the preceding paragraphs, characterized in that said data processing device is made in the form of an integrated circuit. 13. Способ обработки данных в устройстве обработки данных, согласно которому в соответствии с командными словами обработки данных формируют сигналы управления обработкой и выполняют операции обработки данных над словами-операндами данных под управлением упомянутых сигналов управления обработкой, отличающийся тем, что в соответствии с первым командным словом (QDADD) формируют управляющие сигналы для управления средством (6) логической обработки, чтобы упомянутое средство выполняло операцию обработки данных над первым словом-операндом Р N-разрядных данных и вторым словом-операндом Q N-разрядных данных, чтобы сформировать результирующее слово R N-разрядных данных, выражаемое в виде13. A data processing method in a data processing device, according to which, in accordance with data processing instruction words, processing control signals are generated and data processing operations are performed on data operand words under control of said processing control signals, characterized in that in accordance with the first command word (QDADD) generate control signals for controlling the logical processing means (6) so that said means performs a data processing operation on the first operand word P N- bit data and the second operand word Q of N-bit data to form a result word R of N-bit data expressed as R=Sat(Fun(P)+Q),R = Sat (Fun (P) + Q), где Sat(Х) – функция, возвращающая насыщенное значение Х;where Sat (X) is a function that returns the saturated value of X; Fun(Х) - функция, воздействующая на, по меньшей мере, те значения Х, которые могут быть получены умножением со знаком N/2-разрядного числа на N/2-разрядное число, и возвращающая значение, полученное сдвигом Х на некоторую величину сдвига, для формирования сдвинутого слова, и насыщением упомянутого сдвинутого слова.Fun (X) is a function that affects at least those X values that can be obtained by multiplying the signed N / 2-bit number by an N / 2-bit number, and returning the value obtained by shifting X by a certain amount of shift , to form a shifted word, and saturation of said shifted word. 14. Способ обработки данных в устройстве обработки данных, согласно которому в соответствии с командными словами обработки данных формируют сигналы управления обработкой и выполняют операции обработки данных над словами-операндами данных под управлением упомянутых сигналов управления обработкой, отличающийся тем, что в соответствии с первым командным словом (QDSUB) формируют управляющие сигналы для управления средством (6) логической обработки, чтобы упомянутое средство выполняло операцию обработки данных над первым словом-операндом Р N-разрядных данных и вторым словом-операндом Q N-разрядных данных, чтобы сформировать результирующее слово R N - разрядных данных, выражаемое в виде14. A data processing method in a data processing device, according to which, in accordance with data processing instruction words, processing control signals are generated and data processing operations are performed on data operand words under the control of said processing control signals, characterized in that in accordance with the first command word (QDSUB) generate control signals for controlling the logical processing means (6) so that said means performs a data processing operation on the first operand word P N- bit data and the second word-operand Q N-bit data to form the resulting word R N - bit data, expressed as R=Sat(Fun(P)–Q),R = Sat (Fun (P) –Q), где Sat (Х) – функция, возвращающая насыщенное значение Х;where Sat (X) is a function that returns the saturated value of X; Fun(X) – функция, воздействующая на, по меньшей мере, те значения Х, которые могут быть получены умножением со знаком N/2-разрядного числа на N/2-разрядное число, и возвращающая значение, полученное сдвигом Х на некоторую величину сдвига, для формирования сдвинутого слова, и насыщением упомянутого сдвинутого слова.Fun (X) is a function that affects at least those X values that can be obtained by multiplying the signed N / 2-bit number by an N / 2-bit number, and returning the value obtained by shifting X by a certain amount of shift , to form a shifted word, and saturation of said shifted word. 15. Способ обработки данных в устройстве обработки данных, согласно которому в соответствии с командными словами обработки данных формируют сигналы управления обработкой и выполняют операции обработки данных над словами-операндами данных под управлением упомянутых сигналов управления обработкой, отличающийся тем, что в соответствии с первым командным словом (QDRSB) формируют управляющие сигналы для управления средством (6) логической обработки, чтобы упомянутое средство выполняло операцию обработки данных над первым словом-операндом Р N-разрядных данных и вторым словом-операндом Q N-разрядных данных, чтобы сформировать результирующее слово R N-разрядных данных, выражаемое в виде15. A data processing method in a data processing device, according to which, in accordance with the data processing command words, processing control signals are generated and data processing operations are performed on data operand words under the control of said processing control signals, characterized in that in accordance with the first command word (QDRSB) generate control signals for controlling the logical processing means (6) so that said means performs a data processing operation on the first operand word P N- bit data and the second operand word Q of N-bit data to form a result word R of N-bit data expressed as R=Sat(Q–Fun(P)),R = Sat (Q – Fun (P)), где Sat(X) – функция, возвращающая насыщенное значение Х;where Sat (X) is a function that returns the saturated value of X; Fun(Х) – функция, воздействующая на, по меньшей мере, те значения Х, которые могут быть получены умножением со знаком N/2-разрядного числа на N/2-разрядное число, и возвращающая значение, полученное сдвигом Х на некоторую величину сдвига, для формирования сдвинутого слова, и насыщением упомянутого сдвинутого слова.Fun (X) is a function that affects at least those X values that can be obtained by multiplying the signed N / 2-bit number by an N / 2-bit number, and returning the value obtained by shifting X by a certain amount of shift , to form a shifted word, and saturation of said shifted word.
RU2001116716/09A 1998-11-20 1999-05-26 Arithmetic operations in data processing system RU2225638C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9825543.3 1998-11-20
GB9825543A GB2343970A (en) 1998-11-20 1998-11-20 Arithmetic operations in a data processing system

Publications (2)

Publication Number Publication Date
RU2001116716A RU2001116716A (en) 2003-06-10
RU2225638C2 true RU2225638C2 (en) 2004-03-10

Family

ID=10842828

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2001116716/09A RU2225638C2 (en) 1998-11-20 1999-05-26 Arithmetic operations in data processing system

Country Status (6)

Country Link
JP (1) JP4177962B2 (en)
KR (1) KR100623604B1 (en)
DE (1) DE69902814T2 (en)
IL (1) IL141982A (en)
MY (1) MY114856A (en)
RU (1) RU2225638C2 (en)

Also Published As

Publication number Publication date
DE69902814D1 (en) 2002-10-10
KR20010092743A (en) 2001-10-26
MY114856A (en) 2003-01-31
DE69902814T2 (en) 2003-01-09
KR100623604B1 (en) 2006-09-13
JP4177962B2 (en) 2008-11-05
JP2002530774A (en) 2002-09-17
IL141982A0 (en) 2002-03-10
IL141982A (en) 2005-12-18

Similar Documents

Publication Publication Date Title
US6260055B1 (en) Data split parallel shifter and parallel adder/subtractor
US5633897A (en) Digital signal processor optimized for decoding a signal encoded in accordance with a Viterbi algorithm
EP1049025A1 (en) Method and apparatus for arithmetic operation
KR19980063501A (en) Single Instruction Multiple Data Correction Circuit for Arithmetic / Shift Operations
US6167420A (en) Multiplication method and multiplication circuit
EP1137980B1 (en) Arithmetic operations in a data processing system
KR20030066631A (en) Single instruction multiple data processing
KR19980052740A (en) How to perform double precision multiplication in digital signal processor
JPH07234778A (en) Arithmetic circuit
KR100627993B1 (en) Three input split-adder
RU2225638C2 (en) Arithmetic operations in data processing system
JPH0346024A (en) Floating point computing element
US4254471A (en) Binary adder circuit
JPH04256016A (en) Method and apparatus for correcting multiplier for complement of 2 so that multiplication of non-signed number is performed
US20020165890A1 (en) Method and apparatus for linear interpolation using gradient tables
US7047271B2 (en) DSP execution unit for efficient alternate modes for processing multiple data sizes
JP4159565B2 (en) Vector product-sum operation circuit
JPH04160533A (en) Microprocessor
JP3068640B2 (en) Computing device
JP2956252B2 (en) 4-point interpolation circuit
KR20080052194A (en) Method and apparatus for arithmetic of configurable processor
JPH0285922A (en) Arithmetic circuit
JP2000076045A (en) Microprocessor having alu instruction with shift function
JPH05100825A (en) Normalization floating point adder/subtracter
JPH04260122A (en) Addition/subtraction high speed digit matching circuit

Legal Events

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

Effective date: 20070527