RU2225638C2 - Arithmetic operations in data processing system - Google Patents
Arithmetic operations in data processing system Download PDFInfo
- 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
Links
Images
Classifications
-
- 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/30181—Instruction operation extension or modification
- G06F9/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
-
- 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/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
Abstract
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
В целях обеспечения дополнительных команд (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
Если не выполнено ни условие переполнения, ни условие антипереполнения, то на этапе 48 осуществляется сдвиг влево на один разряд первого слова-операнда 32-разрядных данных, т.е. преобразование из формата квази-Q30 в формат Q31, если это то, что представляет число. Операции, осуществляемые на этапах 40-48, соответствуют функциям, выполняемым блоком 26 сдвига и насыщения, и вышеописанной функции Fun(X). If neither the overflow condition nor the anti-overflow condition is satisfied, then at
На этапе 50 осуществляется сложение. Это сложение соответствует сложению, осуществляемому арифметико-логическим устройством 22, изображенным на фиг.1. At
На этапах 52 и 54 производится обнаружение и устранение переполнения в насыщенном значении, полученном на этапе 50 сложения. Аналогично, выполнение этапов 56 и 58 устраняет антипереполнение. Если не обнаружено ни переполнения, ни антипереполнения, никакой корректировки не производится. На этапе 60 результат R команды QDADD поступает на хранение обратно в банк 8 регистров. At
Операции, осуществляемые на этапах 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,
Фиг. 4 аналогична фиг.3 за исключением того, что порядок вычитания, которое осуществляется на этапе 62, обозначенном на фиг.3, заменен обратным на этапе 64, обозначенном на фиг.4. FIG. 4 is similar to FIG. 3 except that the subtraction order that is carried out in
Claims (15)
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) |
-
1999
- 1999-05-26 JP JP2000584375A patent/JP4177962B2/en not_active Expired - Lifetime
- 1999-05-26 IL IL14198299A patent/IL141982A/en not_active IP Right Cessation
- 1999-05-26 DE DE69902814T patent/DE69902814T2/en not_active Expired - Lifetime
- 1999-05-26 KR KR1020017006111A patent/KR100623604B1/en not_active IP Right Cessation
- 1999-05-26 RU RU2001116716/09A patent/RU2225638C2/en not_active IP Right Cessation
- 1999-06-17 MY MYPI99002498A patent/MY114856A/en unknown
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 |