KR20020004798A - Apparatus and method for data processing using multiply-accumulate instructions - Google Patents
Apparatus and method for data processing using multiply-accumulate instructions Download PDFInfo
- Publication number
- KR20020004798A KR20020004798A KR1020000069853A KR20000069853A KR20020004798A KR 20020004798 A KR20020004798 A KR 20020004798A KR 1020000069853 A KR1020000069853 A KR 1020000069853A KR 20000069853 A KR20000069853 A KR 20000069853A KR 20020004798 A KR20020004798 A KR 20020004798A
- Authority
- KR
- South Korea
- Prior art keywords
- bit
- result value
- class
- register bank
- operand
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/491—Computations with decimal numbers radix 12 or 20.
- G06F7/498—Computations with decimal numbers radix 12 or 20. using counter-type accumulators
- G06F7/4983—Multiplying; Dividing
- G06F7/4986—Multiplying; Dividing by successive multiplication or division by 2
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow or underflow
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
본 발명은 데이터 처리 시스템의 장치 및 방법에 관한 것이다. 더 구체적으로는 곱셈 누산 명령을 이용하는 데이터 처리 시스템의 장치 및 방법에 관한 것이다. 데이터 처리 시스템은 오버플로우(overflow) 상태를 쉽게 검출할 수 있고 계산을 단순화하여 실행 시간을 단축시킬 수 있다.The present invention relates to an apparatus and method for a data processing system. More specifically, the present invention relates to an apparatus and method for a data processing system using a multiply accumulate instruction. Data processing systems can easily detect overflow conditions and can simplify execution and shorten execution time.
데이터 처리 분야에 있어서, 다양한 데이터 레지스터(resiters)에 저장되어 있는 피연산자(operands)로 어떤 연산을 수행할 수 있어야 한다. 이러한 연산 중의 하나가 제1 N 비트 피연산자를 제2 N 비트 피연산잔와 곱하고 그 결과값에 제3 N 비트 피연산자를 더하는 것이다. 유사한 다른 연산은 제1 N 비트 피연산자를제2 N 비트 피연산자에 곱하고 그 결과값에 2N 비트 피연산자를 더하는 것이다.In the field of data processing, it is necessary to be able to perform certain operations with operands stored in various data registers. One such operation is to multiply the first N bit operand with the second N bit operand and add the third N bit operand to the result. Another similar operation is to multiply the first N bit operand by the second N bit operand and add the 2N bit operand to the result.
도 1은 발명의 명칭이 "곱셈 누산 명령을 이용한 데이터 처리(DATA PROCESSING USING MULTIPLY-ACCUMULATE INSTRUCTIONS)"인 미국 특허 제 5,583,804 호의 데이터 처리 시스템용 종래의 곱셈 누산기를 도시한 블록도이다. 상기 시스템은 N*N+2N→2N의 형태로 곱셈 누산 명령의 제1 클래스를 수행하고, N*N+N→N의 형태로 곱셈 누산 명령의 제2 클래스(class)를 수행한다.1 is a block diagram illustrating a conventional multiplication accumulator for a data processing system of US Pat. No. 5,583,804, entitled "DATA PROCESSING USING MULTIPLY-ACCUMULATE INSTRUCTIONS." The system performs a first class of multiply accumulate instructions in the form of N * N + 2N → 2N, and performs a second class of multiply accumulate instructions in the form of N * N + N → N.
곱셈 누산기는 제1 데이터 레지스터(10), 제2 데이터 레지스터(20), N*N 곱셈기(30), N+N 누산기(40) 및 2N+2N 누산기(50)를 포함한다. 상기 곱셈기(30)는 N*N을 계산하여 N 또는 2N의 결과값을 얻을 수 있다. 상기 N+N 누산기(40)는 N+N을 계산하여 N의 결과값을 얻을 수 있다. 상기 2N+2N 누산기(50)는 2N+2N을 계산하여 2N의 결과값을 얻을 수 있다.The multiply accumulator includes a first data register 10, a second data register 20, an N * N multiplier 30, an N + N accumulator 40, and a 2N + 2N accumulator 50. The multiplier 30 may calculate N * N to obtain a result value of N or 2N. The N + N accumulator 40 may calculate N + N to obtain a result of N. The 2N + 2N accumulator 50 may calculate 2N + 2N to obtain a result value of 2N.
하지만, N*N+N→N 클래스 명령로 연산을 수행할 경우 마지막 N의 결과값이 N 비트 크기의 결과값 내에서 나타낼 수 있는 것보다 더 클 수가 있다. 이런 상황이 발생한 경우 사용자가 연산에서 오버플로우 상태가 발생했음을 깨닫는 것이 중요하다. 도 1의 곱셈 누산기의 결점은 이러한 오버플로우 상태를 표시하지 못하는 것이다. 가능한 한 효율적인 방법으로 사용자에게 이러한 중요 정보를 제공하는 것이 본 발명의 곱셈 누산기가 개발된 이유 중의 하나이다.However, when performing operations with N * N + N → N class instructions, the last N result may be larger than what can be represented within the N bit size. When this happens, it is important for the user to realize that an overflow condition has occurred in the operation. The drawback of the multiply accumulator of Figure 1 is that it does not indicate this overflow condition. Providing this important information to the user in a way as efficient as possible is one of the reasons why the multiplication accumulator of the present invention has been developed.
따라서, 본 발명의 목적은 오버플로우 상태를 검출할 수 있고 곱셈 누산 명령을 수행할 수 있는 단일 누산기를 포함하는 데이터 처리 시스템을 제공하는 것이다. 그러므로 시스템 구성은 단순화되는 동시에 유용한 오버플로우 정보를 제공한다. 데이터 처리 시스템은 오버플로우 상태를 쉽게 검출할 수 있고 계산을 단순화하여 실행 시간을 단축시킬 수 있다.It is therefore an object of the present invention to provide a data processing system comprising a single accumulator capable of detecting overflow conditions and performing multiply accumulate instructions. Thus, system configuration is simplified and provides useful overflow information. Data processing systems can easily detect overflow conditions and simplify execution to reduce execution time.
도 1은 데이터 처리 시스템에 대한 종래의 곱셈 누산기를 도시하는 블록도이다.1 is a block diagram illustrating a conventional multiply accumulator for a data processing system.
도 2는 본 발명에 따른 데이터 처리 시스템에 대한 곱셈 누산기를 도시하는 블록도이다.2 is a block diagram illustrating a multiply accumulator for a data processing system according to the present invention.
본 발명의 목적에 따른 상기 및 다른 이점들을 달성하기 위하여, 여기에서 구체화되고 광범위하게 기술되는 본 발명은 N 비트 데이터 처리 레지스터로 이루어진 제1 레지스터 뱅크(resister bank), N 비트 데이터 처리 레지스터로 이루어진 제2 레지스터 뱅크, 선택기, 곱셈기 및 누산기를 포함하는 데이터 처리 장치를 제공한다. 선택기는 제1 레지스터 뱅크 및 제2 레지스터 뱅크와 연결되고, 제1 및 제2 레지스터 뱅크 중의 하나를 선택하여 선택된 레지스터 뱅크로부터 N 비트 데이터를 출력하는 데 사용된다. 출력된 N 비트 데이터 및 제2 레지스터 뱅크에 유지되는 N 비트 데이터는 2N 비트 가산 피연산자를 형성한다. 곱셈기는 제1 피연산자 및 제2 피연산자로 곱셈 연산을 수행하고 2N 비트 곱셈 결과값을 출력한다. 누산기는 곱셈기, 선택기 및 제2 레지스터 뱅크와 연결되고 2N 비트 곱셈 결과값 및 2N 비트 가산 피연산자로 누산 연산을 수행하여 2N 비트 누산 결과값을 출력한다.In order to achieve the above and other advantages according to the object of the present invention, the present invention embodied and broadly described herein comprises a first register bank consisting of N bit data processing registers, a first consisting of N bit data processing registers. A data processing device including two register banks, a selector, a multiplier, and an accumulator is provided. The selector is connected with the first register bank and the second register bank, and is used to select one of the first and second register banks to output N bit data from the selected register bank. The output N bit data and the N bit data held in the second register bank form a 2N bit addition operand. The multiplier performs a multiplication operation with the first operand and the second operand and outputs a 2N bit multiplication result. An accumulator is connected to a multiplier, a selector, and a second register bank, and performs an accumulate operation with a 2N bit multiplication result and a 2N bit addition operand to output a 2N bit accumulate result.
데이터 처리 장치에 있어서, 클래스 신호(class signal)를 수신하는데 추가로 사용되는 선택기는 상기 클래스에 신호에 응답하여 제1 및 제2 레지스터 뱅크 중의 하나를 선택한다.In a data processing apparatus, a selector additionally used to receive a class signal selects one of the first and second register banks in response to a signal in the class.
상기 데이터 처리 장치의 클래스 신호는 제1 클래스 명령 또는 제2 클래스 명령을 지시하는데 사용된다.The class signal of the data processing device is used to indicate a first class command or a second class command.
데이터 처리 장치는 누산기와 연결되어 2N 비트 누산 결과값을 수신하고 오버플로우 상태가 발생하는 지를 검사하는 검출 장치를 추가로 포함한다.The data processing device further includes a detection device connected to the accumulator to receive the 2N bit accumulated result value and check whether an overflow condition occurs.
데이터 처리 장치에 있어서, 선택기로부터 출력된 N 비트 데이터 및 제2 레지스터 뱅크에 유지되는 N 비트 데이터는 2N 비트 가산 피연산자의 제1 N 비트 부분 및 제2 N 비트 부분으로 결합하여 형성되고, 클래스 신호가 신호가 제2 클래스 명령일 경우 누산 결과값은 제3 N 비트 부분 및 제4 N 비트 부분을 포함하며, 검출 장치는 2N 비트 가산 피연산자의 제1 N 비트 부분과 누산 결과값의 제3 N 비트 부분을 비교하여 오버플로우 상태가 발생하는 지를 결정한다.In the data processing apparatus, the N bit data output from the selector and the N bit data held in the second register bank are formed by combining the first N bit portion and the second N bit portion of the 2N bit add operand, and the class signal is If the signal is a second class instruction, the accumulation result value includes a third N bit portion and a fourth N bit portion, and the detection apparatus includes a first N bit portion of the 2N bit addition operand and a third N bit portion of the accumulation result value. Compare to to determine if an overflow condition occurs.
본 발명에 따른 상기 및 다른 이점들을 달성하기 위하여, 여기에서 구체화되고 광범위하게 기술된 본 발명은 N 비트 데이터 처리 레지스터들로 이루어진 제1 레지스터 뱅크, N 비트 데이터 처리 레지스터들로 이루어진 제2 레지스터 뱅크, 선택기, 곱셈기 및 누산기를 구비한 장치를 이용한 데이터 처리 방법을 제공하고, 상기 방법은 제1 및 제2 레지스터 뱅크 중의 하나를 선택하여 선택된 레지스터 뱅크로부터 N 비트 데이터-여기서 출력된 N 비트 데이터 및 제2 레지스터 뱅크에 유지되는 N 비트 데이터는 2N 비트 가산 피연산자를 형성함-를 출력하는 단계; 제1 피연산자 및 제2 피연산자 로 곱셈 연산을 수행하여 2N 비트 곱셈 결과값을 출력하는 단계; 2N 비트 곱셈 결과값 및 2N 비트 가산 피연산자 로 누산 연산을 수행하여 2N 비트 누산 결과값을 출력하는 단계를 포함한다.In order to achieve the above and other advantages according to the present invention, the present invention embodied and broadly described herein comprises a first register bank consisting of N bit data processing registers, a second register bank consisting of N bit data processing registers, A data processing method using a device having a selector, a multiplier, and an accumulator is provided, wherein the method selects one of the first and second register banks, and selects N bit data from the selected register bank—the N bit data and the second output therein. Outputting the N bit data held in the register bank forms a 2N bit addition operand; Performing a multiplication operation with the first operand and the second operand and outputting a 2N bit multiplication result value; Performing an accumulation operation with a 2N bit multiplication result and a 2N bit addition operand, and outputting a 2N bit accumulation result.
상기 데이터 처리 방법에 있어서, 제1 및 제2 레지스터 뱅크 중의 하나를 선택하고 선택된 레지스터 뱅크로부터 N 비트 데이터를 출력하는 단계는 클래스 신호를 수신하는 단계를 추가로 포함하며 선택기가 수신하는 클래스 신호에 의해 레지스터 뱅크의 선택이 결정된다.In the data processing method, selecting one of the first and second register banks and outputting N-bit data from the selected register bank further includes receiving a class signal and by means of a class signal received by the selector. The selection of the register bank is determined.
클래스 신호는 제1 클래스 명령 또는 제2 클래스 명령을 지시하는데 사용된다.The class signal is used to indicate a first class command or a second class command.
상기 데이터 처리 방법은 2N 비트 누산 결과값을 수신하는 단계와 오버플로우 상태가 발생하는 지를 검사하는 단계를 추가로 포함한다.The data processing method further includes receiving a 2N bit accumulation result value and checking whether an overflow condition occurs.
상기 데이터 처리 방법에 있어서, 선택기로부터 출력된 N 비트 데이터 및 제2 레지스터 뱅크에 유지되는 N 비트 데이터는 2N 비트 가산 피연산자의 제1 N 비트 부분 및 제2 N 비트 부분으로 결합하여 형성되고, 클래스 신호가 제2 클래스 명령일 경우 누산 결과값은 제3 N 비트 부분 및 제4 N 비트 부분을 포함하며, 2N 비트 가산 피연산자의 제1 N 비트 부분과 누산 결과값의 제3 N 비트 부분을 비교하여 오버플로우 상태가 발생하는 지를 결정한다.In the data processing method, the N bit data output from the selector and the N bit data held in the second register bank are formed by combining the first N bit portion and the second N bit portion of the 2N bit add operand, and the class signal. Is the second class instruction, the accumulating result value includes a third N bit portion and a fourth N bit portion, and compares the first N bit portion of the 2N bit addition operand with the third N bit portion of the accumulation result value. Determine if a flow condition occurs.
전술한 일반적인 기술과 후술할 상세한 기술은 둘 다 본보기(exemplary)이며, 청구항으로 본 발명의 추가 설명을 하고자 한다.The foregoing general description and the detailed description below are both exemplary and are intended to provide further explanation of the invention in the claims.
실시예Example
도면 부호는 본 발명의 바람직한 실시예에서 구체화될 것이고, 본 발명의 실시예는 첨부 도면에서 설명된다. 어느 부분에서도 동일한 도면 부호는 도면과 동일 또는 유사한 부분을 언급하는 설명에 사용된다.Reference numerals will be embodied in a preferred embodiment of the invention, embodiments of the invention are described in the accompanying drawings. The same reference numerals are used in the descriptions to refer to the same or similar parts as the drawings.
도 2를 참조하여, 도 2는 본 발명에 따른 데이터 처리 시스템의 곱셈 누산기(200)를 도시한 블록도이다. 곱셈 누산기(200)는 선택기(160),곱셈기(130), 및 누산기(150)를 포함한다. 특수 레지스터 뱅크(110) 및 범용 레지스터 뱅크(120)는 데이터를 제공한다. 곱셈기(130)는 누산기(150)와 연결된다. 특수 레지스터 뱅크(110) 및 범용 레지스터 뱅크(120)는 선택기(160)와 연결된다. 선택기(160)는 누산기(150)와 연결된다. 범용 레지스터 뱅크(120)는 또한 누산기(150)와 직접 연결된다. 곱셈 누산기(200)는 누산기(150)와 연결되는 검출기(170)를 추가로 포함한다.Referring to FIG. 2, FIG. 2 is a block diagram illustrating a multiply accumulator 200 of a data processing system in accordance with the present invention. The multiply accumulator 200 includes a selector 160, a multiplier 130, and an accumulator 150. Special register bank 110 and general purpose register bank 120 provide data. The multiplier 130 is connected to the accumulator 150. Special register bank 110 and general purpose register bank 120 are coupled to selector 160. The selector 160 is connected to the accumulator 150. General purpose register bank 120 is also directly connected to accumulator 150. The multiply accumulator 200 further includes a detector 170 coupled with the accumulator 150.
곱셈기(130)는 2개의 N 비트 피연산자를 곱할 수 있고, 이후 2N 비트 곱셈 결과값(134)을 출력한다. 예를 들면, N*N은 2N 결과값을 출력한다. 도 2에 도시된 바와 같이,E로 표기된 제1 N 비트 피연산자 및F로 표기된 제2 N 비트 피연산자는 곱셈기(130)로 입력된다. 곱셈기(130)는 2N 비트 결과값(134)을 출력한다. 곱셈기(130)로부터의 2N 비트 곱셈 결과값(134)은 누산기(150)로 보내져 가산 피연산자와 더해진다. 가산 피연산자는 또한 제1 N 비트 부분 및 제2 N 비트 부분을 포함하는 2N 비트이다. 본 발명에서는 오직 하나의 누산기만이 더 바람직한 계산을 하는데 필요하다. 예를 들면, 종래 기술에서 N*N+N→N 및 N*N+2N→2N과 같은 2개의 계산을 원할 경우, 이러한 원하는 계산에는 적어도 2개의 누산기가 필요하다. 본 발명의 구성에 있어서, 2개의 계산에는 오직 1개의 누산기만 필요하다. 도 2에 도시된 회로는 상기 특징을 구현할 수 있다.The multiplier 130 may multiply two N bit operands, and then output a 2N bit multiplication result 134. For example, N * N outputs a 2N result. As shown in FIG. 2, the first N bit operand denoted E and the second N bit operand denoted F are input to the multiplier 130. The multiplier 130 outputs a 2N bit result value 134. The 2N bit multiplication result 134 from multiplier 130 is sent to accumulator 150 and added with the add operand. The addition operand is also 2N bits including the first N bit portion and the second N bit portion. In the present invention only one accumulator is needed to make more favorable calculations. For example, if the prior art wants two calculations, such as N * N + N → N and N * N + 2N → 2N, then at least two accumulators are needed for this desired calculation. In the configuration of the present invention, only one accumulator is required for the two calculations. The circuit shown in FIG. 2 can implement this feature.
본 발명에 있어서, 클래스 신호(100)는 선택기(160)에 제공되어 2개의 상이한 클래스 명령 중 하나를 지시한다. 클래스 신호(100)는 어느 클래스 명령이 수행되는 지를 지시한다. 예를 들면, N*N+2N→2N과 같은 제1 클래스 명령 또는N*N+N→N과 같은 제2 클래스 명령이다. 클래스 신호는 곱셈 누산기(200)에 제공되는 복호 명령(decoding instruction)에 의해 설정된다. 제1 클래스 명령은 더 많은 실행 시간을 필요로 하며 상기 제1 클래스 명령으로부터 더 정밀한 결과값이 출력된다. 제2 클래스 명령은 제1 클래스 명령보다 더 적은 실행 시간을 필요로 한다.In the present invention, the class signal 100 is provided to the selector 160 to indicate one of two different class commands. The class signal 100 indicates which class command is performed. For example, a first class command such as N * N + 2N → 2N or a second class command such as N * N + N → N. The class signal is set by a decoding instruction provided to the multiply accumulator 200. The first class instruction requires more execution time and a more precise result is output from the first class instruction. The second class instruction requires less execution time than the first class instruction.
클래스 명령이 제1 클래스 명령, 즉 원하는 계산이 N*N+2N→2N일 경우, 클래스 신호(100)는 선택기(160)로 하여금 범용 레지스터 뱅크(120)로부터 누산기(150)에 데이터를 제공하도록 한다. 즉, 가산 신호(152)의 2N 비트는 (N,N)을 포함한다. 가산 신호(152)의 제1 N 비트 부분을C로 표기하고 제2 N 비트 부분을D로 표기한다. 제1 N 비트 부분C는 범용 레지스터 뱅크(120)가 제공한다. 도 2에 도시한 바와 같이, 또한 제2 N 비트 부분D도 범용 레지스터 뱅크(120)가 제공한다.If the class instruction is a first class instruction, i.e., the desired calculation is N * N + 2N → 2N, the class signal 100 causes the selector 160 to provide data from the general purpose register bank 120 to the accumulator 150. do. In other words, the 2N bits of the addition signal 152 include (N, N). The first N bit portion of the addition signal 152 is denoted C and the second N bit portion is denoted D. The first N bit portion C is provided by the general purpose register bank 120. As shown in FIG. 2, the second N bit portion D is also provided by the general purpose register bank 120.
클래스 명령이 제2 클래스, 즉 N*N+N→N일 경우, 클래스 신호(100)는 선택기(160)로 하여금 특수 레지스터 뱅크(110)로부터 누산기(150)로 데이터를 제공하도록 한다. 즉, 특수 레지스터 뱅크(110)는 가산 피연산자(152)의제1 N 비트 부분C를 제공한다. 사용자는 소프트웨어 제어로 특수 레지스터 뱅크(110)에 접근할 수 있다. 제2 N 비트 부분D는 범용 레지스터 뱅크(120)가 제공한다. 본 발명의 바람직한 실시예의 곱셈 누산기(200)에 있어서, N*N+N→N의 계산이 단지 N 비트 데이터를 더하여 N 비트 누산 결과값을 출력하는데 필요로 할지라도 누산기(150)는 2N 비트(152)를 더하여 2N 비트 결과값을 출력한다. 본 발명의 구성은 몇 가지 장점을 제공한다. 예를 들면, 이러한 디자인에서는 오버플로우 상태를 쉽게 검출한다. 이하에서 상세하게 기술한다. 다른 장점은 실행 시간을 단축시키기 위하여 약간의 계산을 단순화하는 것이다. 예를 들어XkYk= X0Y0+X1Y1+·…XnYn과 같은 계산을 원할 경우, 바람직한 실시예와 종래 기술의 비교는 다음과 같다.If the class command is a second class, N * N + N → N, the class signal 100 causes the selector 160 to provide data from the special register bank 110 to the accumulator 150. That is, special register bank 110 provides the first N bit portion C of add operand 152. The user can access the special register bank 110 by software control. The second N bit portion D is provided by the general purpose register bank 120. In the multiply accumulator 200 of the preferred embodiment of the present invention, the accumulator 150 has 2N bits (although the calculation of N * N + N → N only needs to add N bit data to output the N bit accumulate result). 152) is added to output a 2N bit result value. The configuration of the present invention provides several advantages. For example, this design easily detects overflow conditions. It describes in detail below. Another advantage is to simplify some calculations to shorten execution time. E.g X k Y k = X 0 Y 0 + X 1 Y 1 +... If a calculation such as X n Y n is desired, the comparison between the preferred embodiment and the prior art is as follows.
종래 기술에 있어서, 프로그램 언어는In the prior art, the programming language is
for(k=0;k≥n;k++) {for (k = 0; k≥n; k ++) {
Move Xkto R0 Move X k to R 0
Move Ykto R1 Move Y k to R 1
R2=R0*R1+ R2; MLA R2, R0, R1, R2 R 2 = R 0 * R 1 + R 2 ; MLA R 2 , R 0 , R 1 , R 2
k=k+1k = k + 1
}}
이고, 여기서 "MLA"는 N*N+N→N에 대한 명령이며 "MLA" 명령을 실행한 후의 결과값은 32 비트 길이이다.Where "MLA" is a command for N * N + N → N and the result after executing the "MLA" command is 32 bits long.
바람직한 실시예에 있어서, 프로그램 언어는In a preferred embodiment, the programming language is
for(k=0;k≥n;k++) {for (k = 0; k≥n; k ++) {
Move Xkto R0 Move X k to R 0
Move Ykto R1 Move Y k to R 1
(RCP,R2)=R0*R1+ (RCP,R2); MLA R2, R0, R1, R2 (R CP , R 2) = R 0 * R 1 + (R CP , R 2 ); MLA R 2 , R 0 , R 1 , R 2
k=k+1k = k + 1
}}
이고, 여기서 "MLA"는 N*N+N→N에 대한 명령이며, 본 발명의 프로그램에서 "MLA" 명령을 실행한 후의 결과값은 64 비트 길이이다.Where "MLA" is a command for N * N + N → N, and the result value after executing the "MLA" command in the program of the present invention is 64 bits long.
누산 결과값은 본 발명의 바람직한 실시예는 64 비트이고 종래 기술은 32 비트이다. 종래 기술에서 64 비트 결과값을 원할 경우, N*N+2N→2N의 계산이 필요하며 이것은 본 발명의 실시예보다 더 많은 실행 시간을 필요로 한다. 즉, 본 발명에 있어서의 단순화된 계산은 종래 기술과 동일한 실행 시간을 필요로 한다.The accumulated result is 64 bits in the preferred embodiment of the present invention and 32 bits in the prior art. If a 64-bit result is desired in the prior art, a calculation of N * N + 2N → 2N is required, which requires more execution time than the embodiment of the present invention. In other words, the simplified calculation in the present invention requires the same execution time as the prior art.
누산 후, 누산기(150)는 누산 결과값(154)를 출력한다. 누산 결과값(154)는 2N 비트이고 제1 N 비트 부분H및 제2 N 비트 부분I를 포함한다. 누산 결과값(154)는 곱셈 누산기(200)의 출력 결과값이다. 누산 결과값(154)는 또한 검출 결과값(172)에 의해 지시되는 오버플로우 상태를 검출하기 위하여 검출 장치(170)로 출력된다.After accumulation, the accumulator 150 outputs an accumulation result value 154. Accumulation result 154 is 2N bits and includes a first N bit portion H and a second N bit portion I. The accumulation result value 154 is an output result value of the multiplication accumulator 200. The accumulated result value 154 is also output to the detection device 170 to detect the overflow condition indicated by the detection result value 172.
클래스 명령이 제2 클래스, 즉 N*N+N→N의 계산을 원할 경우, 검출 장치(170)는 누산 결과값(154)의 제1 N 비트 부분H와 특수 레지스터 뱅크(110)가 제공하는 가산 피연산자(152)의 제1 N 비트 부분C를 비교한다. 만약 누산 결과값(154)의 제1 N 비트 부분H가 가산 피연산자(152)의 제1 N 비트 부분C와 동일하지 않다면 상기 계산에서 오버플로우 상태가 발생했음을 뜻한다.If the class instruction wants to calculate a second class, that is, N * N + N → N, the detection device 170 provides the first N bit portion H of the accumulation result value 154 and the special register bank 110 to provide. The first N bit portions C of the addition operand 152 are compared. If the first N-bit portion H of the accumulation result value 154 is not the same as the first N-bit portion C of the add operand 152, it means that an overflow condition has occurred in the calculation.
명확성을 위하여 곱셈기(130)로 입력되는 2개의 N 비트 피연산자는 각각E와F로 표기된다. N*N+N→N 명령 계산은 본 발명에 의해E*F+CD→HI로 실행될 수 있다.C가H와 동일하지 않은 이러한 경우는 오버플로우가 발생함을 뜻한다.N*N+2N→2N 명령 계산 역시 본 발명의 동일한 구성에 의해E*F+CD→HI로 실행될 수 있다.For clarity, the two N bit operands input to the multiplier 130 are denoted E and F , respectively. The calculation of N * N + N → N commands can be executed by E * F + CD → HI according to the present invention. This case where C is not equal to H means that an overflow occurs. N * N + 2N → 2N instruction calculations can also be executed from E * F + CD → HI by the same configuration of the present invention.
N*N+2N→2N 클래스 명령에 대하여, 누산기는E*F곱셈 연산의 결과값에CD를 더하여 누산 결과값HI를 출력한다. 누산기는 2N+2N→2N의 한 가지 형태의 계산만을 수행한다. N*N+N→N 클래스 명령에 대하여, 누산기는E*F곱셈 연산의 결과값에CD를 더하여HI결과값을 출력한다. 이러한 경우에C는 특수 레지스터 뱅크(110)에 의해 제공된다. 가산 피연산자H가C와 동일하지 않다면 오버플로우가 발생한 것이다.For N * N + 2N → 2N class instructions, the accumulator adds CD to the result of the E * F multiplication operation and outputs the accumulated result HI . The accumulator performs only one type of calculation, 2N + 2N → 2N. For N * N + N → N class instructions, the accumulator outputs the HI result by adding CD to the result of the E * F multiplication operation. In this case C is provided by special register bank 110. If the addition operand H is not equal to C , an overflow has occurred.
도 1의 곱셈 누산기가 상기한 오버플로우 지시를 하지 못하는 반면 상기 오버플로우 지시기는 빠르고 편리하게 사용자에게 유용한 정보를 제공한다. 이것은 본 발명의 또 다른 장점이다.While the multiply accumulator of FIG. 1 does not provide the overflow indication, the overflow indicator provides useful information quickly and conveniently to the user. This is another advantage of the present invention.
수 많은 변형예가 본 발명의 원리와 범위를 벗어남이 없이 본 발명의 구성이 될 수 있음은 당업자에게 자명하다. 앞서 말한 것의 관점에서, 본 발명은 후술하는 청구범위 및 균등범위 내의 변형예를 포함하자고 한다.It will be apparent to those skilled in the art that numerous modifications can be made to the invention without departing from the spirit and scope of the invention. In view of the foregoing, it is intended that the present invention include modifications within the scope of the appended claims and equivalents.
이상에서 설명한 바와 같이, 본 발명은 곱셈 누산 명령을 이용하는 데이터 시스템에서 오버플로우 상태를 쉽게 검출할 수 있다. 또한 계산을 단순화하여 실행 시간을 단축시킬 수 있다.As described above, the present invention can easily detect an overflow condition in a data system using a multiply accumulate instruction. It also simplifies calculations and shortens execution time.
Claims (16)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US21295400P | 2000-06-21 | 2000-06-21 | |
US60/212,954 | 2000-06-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20020004798A true KR20020004798A (en) | 2002-01-16 |
KR100457040B1 KR100457040B1 (en) | 2004-11-10 |
Family
ID=22793104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2000-0069853A KR100457040B1 (en) | 2000-06-21 | 2000-11-23 | Apparatus and method for data processing using multiply-accumulate instructions |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP3541005B2 (en) |
KR (1) | KR100457040B1 (en) |
CN (1) | CN1200339C (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7277479B2 (en) * | 2003-03-02 | 2007-10-02 | Mediatek Inc. | Reconfigurable fir filter |
US8966223B2 (en) * | 2005-05-05 | 2015-02-24 | Icera, Inc. | Apparatus and method for configurable processing |
CN101206561B (en) * | 2006-12-22 | 2010-11-03 | 上海贝岭股份有限公司 | Special arithmetic unit ALU |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL8304186A (en) * | 1983-12-06 | 1985-07-01 | Philips Nv | INTEGRATED PROCESSOR FOR PROCESSING WORDS RECEIVABLE INFORMATION. |
JP2951685B2 (en) * | 1990-05-07 | 1999-09-20 | 沖電気工業株式会社 | Fixed-point arithmetic unit |
US5210710A (en) * | 1990-10-17 | 1993-05-11 | Cylink Corporation | Modulo arithmetic processor chip |
DE4036455C1 (en) * | 1990-11-15 | 1992-04-02 | Siemens Ag, 8000 Muenchen, De | |
ATE180907T1 (en) * | 1991-10-29 | 1999-06-15 | Advanced Micro Devices Inc | ARITHMETIC LOGIC UNIT |
-
2000
- 2000-11-23 KR KR10-2000-0069853A patent/KR100457040B1/en not_active IP Right Cessation
- 2000-12-08 JP JP2000374609A patent/JP3541005B2/en not_active Expired - Fee Related
- 2000-12-15 CN CNB001353454A patent/CN1200339C/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR100457040B1 (en) | 2004-11-10 |
CN1329301A (en) | 2002-01-02 |
JP3541005B2 (en) | 2004-07-07 |
CN1200339C (en) | 2005-05-04 |
JP2002024004A (en) | 2002-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5864703A (en) | Method for providing extended precision in SIMD vector arithmetic operations | |
US7991987B2 (en) | Comparing text strings | |
US5511016A (en) | Method for store rounding and circuit therefor | |
JP5573134B2 (en) | Vector computer and instruction control method for vector computer | |
US5126963A (en) | Hardware arrangement for floating-point multiplication and operating method therefor | |
KR101183270B1 (en) | Method and data processor with reduced stalling due to operand dependencies | |
KR101016257B1 (en) | Processor and information processing apparatus | |
CN107851007B (en) | Method and apparatus for comparison of wide data types | |
US20040158694A1 (en) | Method and apparatus for hazard detection and management in a pipelined digital processor | |
US7707389B2 (en) | Multi-ISA instruction fetch unit for a processor, and applications thereof | |
KR100457040B1 (en) | Apparatus and method for data processing using multiply-accumulate instructions | |
US4956767A (en) | Data processing system with model for status accumulating operation by simulating sequence of arithmetic steps performed by arithmetic processor | |
US6442678B1 (en) | Method and apparatus for providing data to a processor pipeline | |
US6691223B1 (en) | Processing full exceptions using partial exceptions | |
US6104731A (en) | Method and apparatus for data forwarding in a processor having a dual banked register set | |
US8001358B2 (en) | Microprocessor and method of processing data including peak value candidate selecting part and peak value calculating part | |
US6862678B1 (en) | Apparatus and method for data processing using multiply-accumalate instructions | |
US6339821B1 (en) | Data processor capable of handling an increased number of operation codes | |
EP1054320A2 (en) | Method and apparatus to bypass the register file and load data with format conversion in a floating-point unit | |
JP3310316B2 (en) | Arithmetic unit | |
US6057720A (en) | High speed sticky signal generator | |
TW579483B (en) | Data processing device and method | |
US6760738B2 (en) | Exponent unit of data processing system | |
KR960012664B1 (en) | Dizital signalling processor | |
US6763421B2 (en) | Instruction pair detection and pseudo ports for cache array |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20070821 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |