KR100297312B1 - 산술연산시스템 - Google Patents
산술연산시스템 Download PDFInfo
- Publication number
- KR100297312B1 KR100297312B1 KR1019970071119A KR19970071119A KR100297312B1 KR 100297312 B1 KR100297312 B1 KR 100297312B1 KR 1019970071119 A KR1019970071119 A KR 1019970071119A KR 19970071119 A KR19970071119 A KR 19970071119A KR 100297312 B1 KR100297312 B1 KR 100297312B1
- Authority
- KR
- South Korea
- Prior art keywords
- operand
- register
- decimal point
- output
- result
- Prior art date
Links
- 238000004364 calculation method Methods 0.000 claims abstract description 35
- 238000000034 method Methods 0.000 claims description 15
- 230000002457 bidirectional effect Effects 0.000 claims description 13
- 230000008901 benefit Effects 0.000 description 9
- 235000019800 disodium phosphate Nutrition 0.000 description 8
- 230000008569 process Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
Images
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
-
- 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
-
- 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/49936—Normalisation mentioned as feature only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Abstract
최소한의 하드웨어 장비를 이용하여 부동 소수점 산술 연산을 고속으로 행할 수 있는 산술 연산 시스템이 제공된다. 실 소수점 검출기는 제 1 오퍼랜드의 실 소수점의 위치를 검출하고, 검출된 위치에 따라서 위치 데이터 및 비트수 데이터를 발생시킨다. 제 1 시프터는 비트수 데이터에 따라서 실 소수점이 있는 제 1 오퍼랜드를 시프팅시켜 실 소주점이 없는 제 3 오퍼랜드를 발생한다. 정수 산술 연산자는 실 소수점이 없는 제 2 오퍼랜드와 제 3 오퍼랜드를 산술적으로 연산하여 제 1 연산 결과를 출력시킨다. 라운더는 위치 데이터에 따라 제 1 연산 결과를 라운드하여 제 2 연산 결과를 출력시킨다. 제 2 시프터는 비트수 데이터에 따라서 상기 제 2 연산 결과를 우측으로 라운드시켜 시프팅함으로써 실 소수점이 있는 제 2 연산 결과가 발생된다. 그러므로, 제 1 및 제 2 오퍼랜드에 대한 부동 소수점 산술 연산은 어떠한 전용 부동 소수점 산술 프로세서나 연산자가 없이도 수행될 수 있다.
Description
본 발명은 산술 연산 시스템에 관한 것으로, 특히 부동 소수점 산술 연산 프로세서 및 부동 소수점 연산 디지털 신호 프로세서(DSP)와 같은 어떠한 전용 부동 소수점 산술 연산 서브시스템을 이용하지 않고서도 소수점이 있는 제 1 오퍼랜드 및 소수점이 없는 제 2 오퍼랜드를 산술적으로 연산하는 산술 연산 시스템에 관한 것이다.
소수점이 없는 변수(x)를 소수점이 있는 이득(K)과 승산함으로써 출력(y)(즉, y=K ·x)을 제공하는 산술 연산이 전자 제어 응용으로 수행될 때, 부동 소수점 산술 연산이 반드시 필요하다.
이러한 종류의 종래의 마이크로컴퓨터 응용 시스템에서, 전용 부동 소수점 산술 연산 DSP는 부동 소수점 산술 연산을 제공하기 위해서 마이크로프로세서와 함께 부수적으로 제공된다. 선택적으로, 부동 소수점 산술 연산 기능을 이용하는 고성능 마이크로프로세서가 이용된다. 이것은 전형적인 마이크로컴퓨터나, DSP는 정수 산술 연산(즉, 고정 소수점 산술 연산) 만을 행할 수 있기 때문이다.
그러나, 전용 부동 소수점 산술 연산 DSP를 구비한 종래의 마이크로컴퓨터 응용 시스템은 전용 DSP가 마이크로컴퓨터 응용 시스템의 제조 단가를 상승시킨다는 문제점을 갖고 있다. 부동 소수점 산술 기능을 이용하는 고성능 마이크로컴퓨터를 구비한 종래의 마이크로컴퓨터 응용 시스템은 전용 부동 소수점 산술 연산 장치가 부동 소수점 산술 기능을 실현하기 위해 제공될 필요가 있다는 문제점을 갖고 있어서, 마이크로컴퓨터 응용 시스템의 제조 단가를 상승시킬 수 있다.
상술한 전용 부동 소수점 산술 연산 장치에 응용할 수 있는 부동 소수점 승산기는 1990년 공개된 미심사 단계에 있는 일본국 특개평 제2-183828호에 기재되어 있다.
그러나, 일본국 특개평 제2-183828호에 기재된 종래의 부동 소수점 승산기는 복잡한 구조를 가지고 있다. 이것은 고정 소수점 승산기와는 달리 이러한 승산기는 승산될 유효 수를 라운딩시키기 위한 라운딩 회로(rounding circuit), 유효수 및 지수를 산술적으로 시프팅시키기 위한 시프터, 지수 가산기, 캐리(carry) 검출기 및 멀티플렉서와 같은 여러 가지 전용 회로를 필요로 하기 때문이다.
상술한 문제점을 해결하기 위해서, Ohm publishing Co. Ltd. 사가 공개한 "OHM"이라는 명칭의 제 9 권, 95 페이지(1993) 서적에 "whole power electronics"란 명칭의 문헌에 그 개선책이 보고되어 있다. 이러한 개선책에서, 부동 소수점 산술 연산은 정수(즉, 고정 소수점) 산술 연산 및 이를 위해 생산된 전용 소프트웨어를 수행할 수 있는 전형적인 마이크로컴퓨터의 사용으로 수행된다. 이러한 소프트웨어는 제 1 도에 도시된 다음과 같은 단계를 가지고 있다.
여기에서, 제 2 도에 도시된 바와 같이, 이득(K)은 총 폭이 m 비트이고, n 비트 폭의 소수부(fraction)을 가지고 있다고 제안되어 있는데, 여기에서 n<m이다. 그러므로, 이득(K)의 최상위 비트(MSB)는 비트(m-1)이고, 최하위 비트는 0이다. 실이진수 소수점(P)은 비트(n)와 비트(n-1) 사이에 배치된다.
제 1 도에 도시된 단계(51)에서, 이득(K)은 정수 계수(k)로 변환하기 위해 n 비트만큼 좌측으로 시프트된다. [즉, 이득(K)은 2ten n만큼 승산된다]. 계수(k)는 제 2 도에 도시된 바와 같이 비트(n-1)와 비트(n) 사이에 배치된 가상 이진수 소수점(P')을 갖고 있다.
단계(S2)에서, 정수 계수(k)가 소수부 변수(x)와 승산되커 곱(Y)이 생성된다(즉, Y=k ·x).
단계(S3)에서, 곱(Y)의 소수부가 이진수로 0.1 미만(즉, 0.1two) 인지의 여부가 판단된다. 이진수 0.1은 10진수 0.5(즉, 0.5ten)와 동일하다. 이러한 판단은 곱(Y)을 비트(n-1)에서 라운드 오프 하기 위하여 실행되어, 곱(Y)의 라운딩 에러를 최소화시킨다.
비트(n-1)와 비트(0)중에 배치된 곱(Y)의 가상 소수부가 0.1two또는 0.5ten이하일 때, 변수(T)는 단계(54)에서 이진수로 1(즉, 1two)로 설정된다. 이러한 단계(S4)는 곱(Y)을 라운딩하여 비트(n)를 "1two"로 하기 위해 수행된다.
이 때, 1two의 변수(T)는 단계(S6)에서 n 비트만큼 좌측으로 시프트된다. 좌측으로 시프트된 변수(T)는 단계(S7)에서 곱(Y)에 가산된다.
최종적으로 곱(Y)은 n 비트만큼 우측으로 시프트되므로[즉, 곱(Y)이 2ten n으로 제산됨), 단계(58)에서 이득(K)과 변수(x)의 라운드된 곱(y)을 발생시킨다. 곱(y)의 실 보수점(P)은 상술한 라운딩 오프로 인해 비트 0의 우측에 배치된다. 다시 말하면, 곱(y)은 정수치를 갖는다.
한편, 곱(Y)의 가상 소수부가 0.1two또는 0.5ten미만일 때, 변수(T)는 단계(S5)에서 0two로 설정된다.
이 때, 0two의 변수(T)는 단계(56)에서 n 비트만큼 좌측으로 시프트된다. 좌측으로 시프트된 변수(T)에는 단계(57)에서 곱(Y)이 가산된다. 변수(T)가 0two의 값을 가지고 있기 때문에, 곱(Y)의 값에 대한 변경이 전혀 발생하지 않는다.
최종적으로, 곱(Y)이 n 비트만큼 우측으로 시프트되므로, 단계(58)에서 이득(K)과 변수(x)의 라운드된 곱(y)을 발생시킨다.
마이크로컴퓨터 응용 시스템에서, 산술 연산 정확성은 데이터 값의 소수부를 산술적으로 연산하기 위한 방법에 따라서 변한다. 그러므로, 데이터 값의 소수부에 대한 산술 연산 방법은 연산의 정확성에 비추어 보아 매우 중요하다.
예를 들어, 전동기를 이용하는 위치 제어 시스템과 같은 피드백 제어 시스템에서, 소수부를 포함하는 완전한 데이터 값의 산술 연산이 반드시 필요하다. 이러한 경우에, 데이터 값의 소수부에 대한 산술 연산 방법은 피드백 제어 시스템의 제어 정확성에 크게 영향을 끼친다.
제 1 도에 도시된 전용 소프트웨어를 이용함에 따른 종래의 부동 소수점 산술 연산에서, 요구된 연산 정확성이 실현될 수 있다. 그러나, 이러한 경우에, 부동 소수점 연산은 마이크로컴퓨터 응용 시스템내의 마이크로컴퓨터의 중앙 처리 장치(CPU)에 의해 소프트웨어를 실행함으로써 수행된다. 결과적으로, 산술 연산을 완료하기 위해서는 장시간이 소요된다는 문제가 있다. 이것은 소프트웨어를 이용하는 상술한 종래의 부동 소수점 산술 연산이 고속 제어 동작에 필요한 마이크로컴퓨터 응용 시스템에 응용될 수 없음을 의미한다.
한편, 부동 소수점 산술 연산이 필요한 프로세스의 발생율은 마이크로컴퓨터 응용 시스템의 전체 프로세스 중 높지 않다. 그러므로, 전용 부동 소수점 산술 연산 DSP 또는 전용 부동 소수점 산술 연산 장치가 부수적으로 도입될지라도, 도입된 고가의 전용 DSP 또는 장치는 효과적으로 이용되지 않는다.
따라서, 본 발명의 목적은 최소 하드웨어 장치를 이용하여 부동 소수점 산술 연산을 고속으로 행할 수 있는 산술 연산 시스템을 제공하기 위한 것이다.
본 발명의 다른 목적은 CPU의 명령어 처리 단계를 최소화하면서 부동 소수점 산술 연산을 수행하는 부동 소수점 산술 연산 시스템을 제공하기 위한 것이다.
상술한 목적은 특정하여 상술지 않은 목적과 함께 다음 설명으로부터 당해 분야에 숙련된 기술자들은 명백해 진다.
본 발명에 따르면, 실 소수점이 있는 제 1 오퍼랜드 및 실 소수점이 없는 제 2 오퍼랜드를 산술적으로 연산하기 위한 산술 연산 시스템이 제공된다.
이러한 시스템은 (a) 제 1 오퍼랜드의 실 소수점의 위치를 검출하여 제 1 위치 데이터 및 비트 수 데이터를 출력시키는 소수점 검출기, (b) 제 1 위치 데이터를 저장하기 위한 제 1 레지스터, (c) 비트수 데이터를 저장하기 위한 제 2 레지스터, (d) 실 소수점이 없는 제 3 오퍼랜드를 출력시키기 위해 제 2 레지스터 내에 저장된 비트수 데이터에 따른 특정 비트만큼 제 1 오퍼랜드를 좌측으로 시프트시키기 위한 제 1 시프터, (e) 제 2 및 제 3 오퍼랜드를 산술 연산하여 제 1 연산 결과를 출력시키는 정수 산술 연산가, (f) 제 1 위치 데이터에 따라서, 제 1 연산 결과에 가상 소수점의 위치를 지정하기 위한 가상 소수점 지정자(designator), (g) 가상 소수점 지정자에 의해 제 1 연산 결과에 대하여 지정된 가상 소수점에 따라서 제 1 연산 결과를 라운딩시켜 제 2 연산 결과를 출력시키기 위한 라운더(rounder), 및 (h) 비트수 데이터에 따라서 특정 비트만큼 제 2 연산 결과를 시프트시켜 실 소수점이 없는 제 3 연산 결과를 출력시키기 위한 제 2 시프터(shifter)로 구성된다.
제 3 연산 결과는 제 1 및 제 2 오퍼랜드의 라운드된 연산 결과를 나타낸다.
본 발명에 따른 산술 연산 시스템에서, 실 소수점 검출기는 제 1 오퍼랜드의 실 소수점 위치를 검출하여, 제 1 위치 데이터 및 비트수 데이터를 발생시킨다. 제 1 시프터는 비트수 데이터에 따라서 실 소수점을 가지는 제 1 오퍼랜드를 좌측으로 시프트시켜 실 소수점이 없는 제 3 오퍼랜드를 발생한다. 정수 산술 연산자는 실 소수점이 없는 제 2 오퍼랜드와 제 3 오퍼랜드를 산술적으로 연산하여 제 1 연산 결과를 출력한다.
라운더는 이와 같이 출력된 제 1 연산 결과를 제 1 연산 결과에 대해 지정된 가상 소수점에 따라서 라운드하여 제 2 연산 결과를 출력한다.
다음, 제 2 시프터는 이와 같이 라운드된 제 2 연산 결과를 비트수 데이터에 따라서 우측으로 시프팅시켜 실 소수점이 없는 제 3 연산 결과를 생성한다.
따라서, 제 1 및 제 2 오퍼랜드에 대한 부동 소수점 산술 연산은 어떠한 전용 부동 소수점 산술 연산 DSP나 전용 부동 소수점 산술 연산 장치가 없이도 수행될 수 있다. 이것은 이러한 시스템의 제조 단가를 감소시키게 된다.
또한, 상술한 부동 소수점 산술 연산은 실 소수점 검출기, 제 1 및 제 2 레지스터, 제 1 및 제 2 시프터, 정수 산술 연산자, 가상 소수점 지정자, 및 라운더를 이용함으로써 수행된다. 다시 말하면, 이러한 연산은 하드웨어 장치를 이용함으로써 부동 소수점 산술 연산에 어떠한 전용 소프트웨어를 이용하지 않고서도 수행된다.
결과적으로, 이러한 연산은 CPU의 명령어 처리 단계를 최소화하면서 최소한의 하드웨어 장치를 이용하여 고속으로 수행될 수 있다.
본 발명에 따른 시스템의 바람직한 실시예에서, 정수 산술 연산자의 출력은 라운더의 입력에 접속되므로, 정수 산술 연산자로부터 출력된 제 1 연산 결과는 라운더에 직접 입력된다.
이러한 경우에, 버스 구조가 간단해 진다는 부수적인 장점이 있다.
본 발명에 따른 시스템의 다른 바람직한 실시예에서, 제 3 레지스터는 정수 산술 연산자로부터 출력된 제 2 연산 결과를 저장하기 위해 부수적으로 제공된다. 제 3 레지스터내에 저장된 제 2 연산 결과는 라운더에 인가된다.
이러한 경우에, 제 3 레지스터 내에 저장된 제 2 연산 결과를 이용함으로써 필요에 따라 여러 가지 산술 연산이 수행될 수 있다는 부수적인 장점이 있다.
본 발명에 따른 시스템의 다른 바람직한 실시예에서, 가상 소수점 지정자는 제 2 연산 결과의 가상 소수점 위치를 제공하는 제 2 위치 데이터를 출력하고, 제 2 위치 데이터는 제 4 레지스터에 저장된다.
이러한 경우에, 라운더에 의한 제 1 연산 결과의 라운딩 처리와 제 1 레지스터의 판독 처리 사이의 경쟁(competition)이 전혀 발생할 수 없다는 부수적인 장점이 있다.
본 발명에 따른 시스템의 또 다른 바람직한 실시예에서, 실 소수점 검출기는 산술 논리 장치(ALU)에 의해 형성된다.
이러한 경우에, 실 소수점 검출기의 구조가 간단해 질 수 있다는 부수적인 장점이 있다.
본 발명에 따른 시스템의 또 다른 바람직한 실시예에서, 제 1 및 제 2 시프터는 하나의 양방향 시프터로 형성된다.
이러한 경우에, 제 1 및 제 2 시프터의 구조가 간단해질 수 있다는 부수적인 장점이 있다.
제 1 도는 전용 소프트웨어 및 고정 소수점 산술 연산자를 이용하는 종래의 부동 소수점 산술 연산에 따른 스텝 시퀀스를 도시한 흐름도.
제 2 도는 실 소수점을 가지는 이득(K)과 실 소수점이 없는 변수(x)의 곱(Y)을 제공하는 부동 소수점 산술 연산의 개념을 개략적으로 도시한 도면.
제 3 도는 본 발명의 제 1 실시예에 따른 산술 연산 시스템의 구조를 도시한 블록도.
제 4 도는 제 1 실시예에 따는 시스템에 이용된 승산 결과(Y')의 가상 소수점의 위치를 제공하는 위치 데이터 값의 예를 개략적으로 도시한 도면.
제 5 도는 제 1 실시예에 따른 시스템의 부동 소수점 산술 연산의 스텝 시퀀스를 도시한 흐름도.
제 6 도는 본 발명의 제 2 실시예에 따른 산술 연산 시스템의 구조를 도시한 블록도.
제 7 도는 제 2 실시예에 따른 시스템의 부동 소수점 산술 연산의 스텝 시퀀스를 도시한 흐름도.
제 8 도는 본 발명의 제 3 실시예에 따른 산술 연산 시스템의 구조를 도시한 블록도.
제 9 도는 제 3 실시예에 따른 부동 소수점 산술 연산 시스템의 부동 소수점 산술 연산의 스텝 시퀀스를 도시한 흐름도.
* 도면의 주요부분에 대한 부호의 설명
1 : 레지스터 파일 1f : 입력 선택기
1g : 출력 선택기 2 : ALU
3 : 양방향 시프터 6 : 라운딩 회로
7 : 가상 소수점 레지스터 15 : 제어기
이하, 첨부 도면을 참조하여 본 발명의 장점, 구성 및 작용을 포함하는 실시예에 대해 상세하게 설명하고자 한다.
본 발명의 바람직한 실시예는 첨부된 제 3 도 내지 제 8 도를 참조하여 이하에 기재하고자 한다.
[제 1 실시예]
제 3 도에 도시된 바와 같이, 본 발명의 제 1 실시예에 따른 산술 연산 시스템은 레지스터 파일(1), ALU(2), 양방향 시프터(3), 승산기(4), 라운딩 회로(6), 가상 소수점 레지스터(7) 및 제어기(15)로 구성된다. 레지스터 파일(1), ALU(2), 시프터(3), 승산기(4), 라운딩 회로(6), 및 가상 소수점 레지스터(7)는 제어기(15)에 의해 제어된다.
승산될 이득(K)과 변수(x)는 공통 버스(5)의 일 단부에 배치된 입력 터미널(16)에 입력된다. 이득(K)과 변수(x)의 라운드된 곱(y)(즉, y=K.x)은 공통 버스(5)의 다른 단부에 배치된 출력 터미널(17)로부터 출력된다.
제 2 도에 도시된 바와 같이, 이득(K)은 폭이 m 비트이고, 실 이진수 소수점(P)을 갖고 있다. 이득(K)의 소수부는 폭이 n비트이고, 이득(K)의 정수부는 폭이(m-n) 비트인데, m>n이다. 이득(K)의 MSB 및 LSB는 비트(m-1)(즉, 최상위 비트) 및 비트(0)(즉, 최하위 비트)이다. 실 이진수 소수점(P)은 비트(n-1)와 비트(n) 사이에 배치된다.
레지스터 파일(1)은 5개의 범용 레지스터 (1a, 1b, 1c, 1d 및 1e), 및 2개의 선택기 또는 멀티플렉서(1f 및 1g)를 포함한다.
입력 선택기(1f)는 제어기(15)로부터의 제어 신호(C1)에 따라서 레지스터(1a, 1b, 1c, 1d 및 1e)들 중 하나의 레지스터를 선택하고, 입력 데이터가 레지스터(1a, 1b, 1c, 1d 및 1e)들 중 선택된 하나의 레지스터 내에 버스(5)를 통해 기입되거나 저장되게 한다. 출력 선택기(1g)는 제어기(15)로부터의 제어신호(C2)에 따라서 레지스터(1a, 1b, 1c, 1d 및 1e)들 중 하나를 선택하고, 선택된 레지스터의 내용(즉, 저장된 데이터)이 버스(9 또는 10)에서 독출되게 한다. 버스(9)는 ALU(2), 양방향 시프터(3) 및 승산기(4)에 접속된다. 버스(10)는 양방향 시프터(3) 및 승산기(4)에 접속된다.
레지스터(1a)는 이득(K)의 가상 이진수 소수점(P')의 위치 데이터(PT)를 저장한다. 레지스터(1b)는 시프터(3) 내로 시프트될 이득(K)의 비트수 데이터(n)를 저장한다. 레지스터(1c)는 이득(K) 또는 계수(k)를 저장한다. 이득(K)을 비트수 데이터(n)와 동일한 특정 비트만큼 좌측으로 시프트시킴으로써 얻어지는 계수(k)는 정수치를 갖고 있고 실 이진수 소수점을 가지고 있지 않다. 레지스터(16)는 정수치를 가지는 변수(x)를 저장한다. 레지스터(1e)는 곱(y 및 Y)을 저장한다. 곱(Y)은 변수(x)를 계수(k)와 승산하고, 승산 결과(Y')(=k ·x)를 라운딩시킴으로써 얻어진다.
가상 소수점 레지스터(7)는 이득(K)의 가상 이진수 소수점(P')의 위치 데이터를 저장한다. 이 위치 데이터는 시프터(3)로부터 버스(5)를 통해 제공된다. 레지스터(7)는 위치 데이터(PT)를 버스(14)를 통해 라운딩 회로(6)로 출력시킨다. 이러한 연산은 제어기(15)로부터 제공된 제어 신호(C3)에 따라서 수행된다.
가상 소수점 레지스터(7)는 래치 회로에 의해 간단하게 형성될 수 있다.
ALU(2)는 이진수 소수점을 전혀 포함하고 있지 않는 정수의 산술 및 논리 연산을 행할 수 있다. ALU(2) 자체는 부동 소수점 산술 연산을 수행할 수 없다. ALU(2)는 버스(9)를 통해 인가된 이득(K)의 실 이진수 소수점(P)의 위치(즉, 소수부의 자리수)를 제어기(15)로부터 제공된 제어 신호(C4)에 따라서 계산한다. 그러므로, ALU(2)는 버스(11)를 통해 버스(5)로 시프트될, 이득(K)의 실 이진수 소수점(P)의 위치 데이터(PT) 및 비트수 데이터(n)를 산출한다. 검출된 위치 데이터(PT) 및 비트수 데이터(n)는 버스(5)를 통해 레지스터(1a 및 1b)내에 각각 저장된다.
위치 데이터(PT)의 값은 비트수 데이터(n)의 값과 항상 동일하지는 않다.
양방향 시프터(3)는 레지스터(1a)로부터 버스(9)를 통해 위치 데이터(PT)를 수신한다. 이 때, 시프터(3)는 시프팅 연산 없이 위치 데이터(PT)를 버스(12)를 통해 버스(5)로 출력한다. 이러한 연산은 제어기(15)로부터 제공된 제어 신호(C5)에 따라서 수행된다.
또한, 시프터(3)는 레지스터(1a 및 1b)로부터 버스(9 및 10)를 통해 이득(K) 및 비트수 데이터(n)를 각각 수신한다. 시프터(3)는 비트수 데이터(n)와 동일한 특정 비트만큼 이득(K)을 좌측으로 시프트시켜, 계수(k)를 버스(12)를 통해 버스(5)로 출력한다. 이러한 연산은 제어 신호(C5)에 따라서 실행된다.
더욱이, 시프터(3)는 레지스터(1e 및 1b)로부터 버스(9 및 10)를 통해 각각 라운드된 곱(Y)과 비트수 데이터(n)를 수신한다. 다음, 시프터(3)는 비트수 데이터(n)와 공일한 비트만큼 라운드된 곱(Y)을 우측으로 시프트시켜, 곱(y)을 버스(12)로 출력한다. 이러한 연산은 제어 신호(C5)에 따라서 실행된다.
승산기(4)는 레지스터(1c 및 1d)로부터 버스(9 및 10)를 통해 계수(k) 및 변수(x)를 수신한다. 승산기(4)는 계수(k) 및 변수(x)를 승산하여, 곱(Y')(=k ·x)을 버스(13)를 통해 라운딩 회로(6)로 출력한다. 이러한 연산은 제어기(15)로부터 제공된 제어 신호(C6)에 따라서 실행된다.
라운딩 회로(6)는 승산기(4)로부터 출력된 곱(Y')(=k ·x) 및 가상 소수점 레지스터(7)로부터 출력된 위치 데이터(PT)를 수신한다. 다음, 회로(6)는 곱(Y')을 라운드 오프시켜 가상 소수점(P')의 위치 데이터(PT)와 일치시킨다.
예를 들어, 라운딩 회로(6)의 라운딩 연산은 다음 방식으로 구현된다.
가상 소수점(P')의 위치 데이터(PT)와 비트수 데이터(n)에 의해 주어지는, 곱(Y')의 소수부간은 이진수 0.1(즉, 0.1two)과 비교된다. 다시 말하면, 곱(Y')의 비트(n-1)의 값이 1 또는 0인지의 여부가 판단된다.
곱(Y')의 소수부값이 0.1two(=0.5ten)과 같거나 이보다 클 때, 다시 말해서 곱(Y')의 비트(n-1)의 값이 1two일 때, 이진수 1(즉, 1two)이 라운딩용으로 곱(Y')의 비트(n-1)의 값에 가산된다. 이것은 1two이 곱(Y')의 비트(n)에 가산되는 것을 의미한다.
곱(Y')의 소수부값이 0.1two또는 0.5ten미만일 때, 다시 말하면 곱(Y')의 비트(n-1)의 값이 0two일 때, 곱(Y')의 비트(n-1)에 가산되는 값은 없다. 이것은 곱(Y')의 비트(n)의 값이 여기에서는 변경되지 않는다는 것을 의미한다.
다음, 라운딩 회로(6)는 라운드된 곱(Y)을 버스(8)를 통해 버스(5)로 출력시킨다.
라운딩 회로(6)의 상술한 라운딩 연산은 제어기(15)로부터 제공된 제어 신호(C7)에 따라서 수행된다.
라운딩 회로는 단방향 시프터, 비교기 및 가산기의 조합으로 간단하게 형성될 수 있다.
제 4 도는 제 1 실시예에 따른 시스템에 이용된 승산 결과(Y')의 가상 소수점(P')의 위치를 제공하는 위치 데이터(PT)의 예시치를 도시한 것이다. 이 예에서, 값은 폭이 32 비트이고, 비트 8만의 값이 "1two"이고, 나머지 값은 모두 "0two"이다. 특히, 이진수값은 다음과 같이 표현된다.
한편, 32 비트 곱(Y')은 다음과 칼은 값을 갖는다고 가정싼다.
여기에서, 표시 "."는 곱(Y')의 가상 이진수 소수점(P')을 나타낸다. 소수부의 값은 폭이 8비트이다.
비트(0) 내지 비트(7) 중에 배치되는 곱(Y')의 소수부의 이진수 값"11111111"은 0.1two또는 0.5ten보다 크다. 그러므로, 다음의 위치 데이터 값(PT)이
곱(Y')의 하위 8비트의 값에 가산되어,
이 된다.
다음, 32 비트 곱(Y')이
의 값을 갖는다고 가정한다.
비트(0) 내지 비트(7) 중에 배치되는 곱(Y')의 모수부의 이진수 값 "00000001"은 0.1two또는 0.5ten미만이다. 그러므로, 다음의 위치 데이터(PT) 값이
곱(Y')의 비트(8)의 값에 가산되지 않아서, 라운딩 동작 이전과 같이
의 동일한 값이 된다.
다음, 제 1 실시예에 따른 산술 연산 시스템의 처리 시퀀스를 제 5 도를 참조하여 이하에 설명한다.
단계(S1)에서, 공통 버스(5)의 입력 단자(16)를 통해 시스템 내에 입력되는 이득(K)과 변두(x)는 각각 입력 선택기(1f)의 작용으로 인해 공통 버스(5)를 통해 레지스터(1c 및 1d) 내에 저장된다.
단계(S2)에서, 레지스터(1c)내에 저장된 이득(K)은 출력 선택기(1g)의 작용으로 인해 버스(9)로 독출된다. 레지스터(1c)의 내용은 이 단계 중에 변경되지 않는 상태로 유지된다. ALU(2)는 이와 같이 독출된 이득(K)을 수신하고, 이득(K)의 실 이진수 소수점(P) 위치 및 시프터(3)에서 시프트될 비트수를 검출(또는 계산)하고, 상기 검출된 위치 데이터(PT)와 비트수 데이터(n)를 버스(11)로 출력한다.
단계(S3)에서, ALU(2)에 의해 계산되거나 검출된 위치 데이터(PT) 및 비트수 데이터(n)는 공통 버스(5)를 각각 통해 레지스터(1a 및 1b)내에 저장된다.
단계(S4)에서, 레지스터(1a)내에 저장된 위치 데이터(PT)가 독출되어 시프터(3) 내로 입력된다. 시프터(3)는 입력된 위치 데이터(PT)를 시프팅시키지 않고 버스(12)에 출력 한다.
단계(S5)에서, 시프터(3)에 의해 버스(12)로 출력되는 위치 데이터(PT)가 공통 버스(5)를 통해 가상 소수점 레지스터(7) 내에 저장된다. 저장된 위치 데이터(PT)는 필요에 따라 라운딩 회로(6)에 의해 독출될 수 있다.
단계(S6)에서, 레지스터(1c 및 1b)내에 저장된 이득(K) 및 비트수 데이터(n)는 시프터(3)로 독출된다. 이 때, 시프터(3)는 비트수 데이터(n)와 동일한 특정 비트만큼 이득(K)을 좌측으로 시프트시켜 얻어지는, 정수값을 갖는 계수(k)를 버스(12)에 출력한다.
단계(S7)에서, 계수(k)는 버스(5)를 통해 레지스터(1c) 내에 저장된다. 그러므로, 레지스터(1c)의 내용은 이득(K)에서 계수(k)로 변경된다.
단계(S8)에서, 레지스터(1c) 내에 저장된 계수(k) 및 레지스터(16) 내에 저장된 변수(x)가 독출되어 승산기(4)에 인가된다. 이 때, 승산기(4)는 계수(k) 및 변수(x)를 승산하여, 곱(Y')(=k ·x)을 발생한다. 곱(Y')은 버스(13)로 출력된다.
단계(S9)에서, 라운딩 회로(6)는 승산기(4)로부터 출력된 곱(Y')을 버스(13)를 통해 수신한다. 한편, 라운딩 회로(6)는 가상 소수점 레지스터(7) 내에 저장된 위치 데이터(PT)를 수신한다. 이 때, 라운딩 회로(6)는 위치 데이터(PT)에 따라서 곱(Y')을 라운드시키고, 이 라운드된 곱(Y)을 버스(8)로 출력시킨다.
단계(S10)에서, 라운딩 회로(6)로부터 출력된 라운드된 곱(Y)은 공통 버스(5)를 통해 레지스터(1e)내에 저장된다.
단계(S11)에서, 레지스터(1e)내에 저장된 라운드된 곱(Y) 및 레지스터(1b)내에 저장된 비트수 데이터(n)가 독출되어 시프터(3) 내로 입력된다. 시프터(3)는 비트수 데이터(n)와 종일한 비트만큼 라운드된 곱(Y)을 우측으로 시프트시켜, 곱(y)을 버스(12)로 출력시킨다.
단계(S12)에서, 시프터(3)로부터 출력된 곱(y)은 출력 단자(17)를 통해 출력되고, 버스(5)를 통해 레지스터(1e)내에 저장된다. 레지스터 파일(1)의 레지스터(1a, 1b, 1c, 1d 및 1e) 및 단계(S1 내지 S12)내의 가상 소수점 레지스터의 내용이 표 1에 도시되어 있다.
[표 1]
제 3 도와 제 5 도의 제 1 실시예에 따른 산술 연산 시스템에서, ALU는 실 소수점 검출기로서 작용하여 이득(K)의 실 소수점(P)의 위치를 검출하고, 위치 데이터(PT) 및 비트수 데이터(n)를 발생한다. 양방향 시프터(3)는 비트수 데이터(n)에 따라서 실 소수점(P)이 있는 이득(K)을 좌측으로 시프트시켜서 실 소수점이 없는 계수(k)를 발생한다. 승산기(4)는 실 소수점이 없는 계수(k)와 변수(x)를 승산하여 제 1 승산 결과인 곱(Y')을 출력한다.
다음, 라운딩 회로(6)는 상기 제 1 승산 결과인 곱(Y')을, 곱(Y')의 지정된 가상 소수점(P')에 따라서 라운드 오프하여, 제 2 승산 결과인 라운드된 곱(Y)을 출력한다.
또한, 시프터(3)는 라운드된 제 2 승산 결과인 라운드된 곱(Y)을 비트수 데이터(n)에 따라서 우측으로 시프트시켜 실 소수점이 없는 제 3 승산 결과인 곱(y)을 발생한다.
따라서, 이득(K) 및 변수(x)에 대한 부동 소수점 산술 연산은 어떠한 전용 부동 소수점 산술 연산 DSP나 전용 부동 소수점 산술 연산 장치가 없이도 수행될 수 있다. 이것은 이러한 시스템의 제조 단가를 감소하게 할 수 있다.
또한, 상술한 산술 연산은 실 소수점 검출기로서 작용하는 ALU(2), 레지스터(1a 및 1b), 양방향 시프터(3), 정수 산술 연산자로서 작용하는 승산기(4), 가상 소수점 지정자로서 작용하는 ALU(2) 및 가상 소수점 레지스터(7) 및 라운딩 회로(6)를 이용함으로써 수행된다. 다시 말해, 이러한 연산은 하드웨어 장치를 이용함으로서 부동 소수점 산술 연산용으로 어떠한 전용 소프트웨어도 이용하지 않고서 수행된다.
결과적으로, 산술 연산은 CPU의 명령어 처리 단계를 최소화시키면서 최소 하드웨어를 이용하여 고속으로 수행될 수 있다.
라운딩 회로(6)에 의한 승산 결과(Y')의 라운딩 처리와 레지스터 파일(1)의 판독 처리 사이의 경쟁이 전혀 발생하지 않는다는 부수적인 장점이 있다.
[제 2 실시예]
본 발명의 제 2 실시예에 따른 산술 연산 시스템이 제 6 도에 도시되어 있다.
이러한 시스템은 (1) 승산기(4)의 버스(13)가 라운딩 회로(6)에는 접속되지 않지만, 공통 버스(5)에는 접속되로, (ii) 레지스터 파일(1)의 버스(10)가 시프터(3)와 승산기(4) 뿐만 아니라 라운딩 회로(6)에도 접속되는 것을 제외하고는 제 3 도의 제 1 실시예의 구조와 거의 동일한 구조를 갖고 있다.
그러므로, 설명을 간단화하기 위한 목적으로 제 6 도의 동일하거나 대응하는 구성 요소에는 동일한 참조 번호 또는 문자를 붙이고, 동일한 구조에 관련된 설명은 생략한다.
제 7 도를 참조하여 제 2 실시예에 따른 산술 연산 시스템의 처리 시퀀스를 이하에 설명한다.
단계(51)에서, 공통 버스(5)의 입력 단자(16)를 통해 시스템 내에 입력되는 이득(K)과 변수(x)는 입력 선택기(1f)의 작용으로 인해 공통 버스(5)를 통해 레지스터(1c 및 1d) 내에 각각 저장된다.
단계(52)에서, 레지스터(1c)내에 저장된 이득(K)은 출력 선택기(1g)의 작용으로 인해 버스(9)로 독출된다. 레지스터(1c)의 내용은 이 단계 중에 변경되지 않은 상태로 유지된다. ALU(2)는 독출된 이득(K)을 수신하고, 이득(K)의 실 소수점(P) 위치와 시프터(3)에서 시프트될 비트수를 검출하고, 이 위치 데이터(PT)와 비트수 데이터(n)를 버스(11)로 출력한다.
단계(S3)에서, ALU(2)에 의해 검출된 위치 데이터(PT) 및 비스수 데이터(n)가 공통 버스(5)를 각각 통해 레지스터(1a 및 1b)내에 저장된다.
단계(S4)에서, 레지스터(1a)내에 저장된 위치 데이터(PT)가 독출되어 시프터(3) 내에 입력된다. 시프터(3)는 입력된 위치 데이터(PT)를 시프팅이 없이 버스(12)에 출력된다.
단계(S5)에서, 시프터(3)에 의해 버스(12)로 출력되는 위치 데이터(PT)는 공동 버스(5)를 통해 가상 소수점 레지스터(7)내에 저장된다. 저장된 위치 데이터(PT)는 필요에 따라 라운딩 회로에 의해 독출된다.
단계(S6)에서, 레지스터(1c 및 1b) 내에 저장된 이득(K) 및 비트수 데이터(n)가 시프터(3)로 독출된다. 이때, 시프터(3)는 이득(K)을 비트수 데이터(n)와 동일한 특정 비트만큼 좌측으로 시프트시켜, 정숯를 가지는 계수(k)를 버스(12)로 출력한다.
단계(S7)에서, 계수(k)는 버스(5)를 통해 레지스터(1c)내에 저장된다. 그러므로, 레지스터(1c)의 내용은 이득(K)에서 계수(k)로 변경된다.
단계(S8)에서 레지스터(1c) 내에 저장된 계수(k)와 레지스터(1d) 내에 저장된 변수(x)가 독출되어 승산기(4)에 인가된다. 이때, 승산기(4)는 계수(k)와 변수(x)를 승산하여 곱(Y')(=k ·x)을 발생한다. 곱(Y')은 버스(13)로 출력된다.
상술한 단계(S1 내지 S8)는 제 1 실시예에서와 동일하다.
단계(S9)에서, 승산기(4)로부터 출력된 곱(Y')은 버스(13 및 5)를 통해 레지스터(1e) 내에 저장된다.
단계(S10)에서, 레지스터(1e) 내에 저장된 곱(Y')이 독출되어 라운딩 회로(6)에 인가된다. 한편, 가상 소수점 레지스터(7) 내에 저장된 위치 데이터(PT)가 독출되어 라운딩 회로(6)에 인가된다. 이때, 라운딩 회로(6)는 위치 데이터(PT)에 따라서 곱(Y')을 라운드시켜, 라운드된 곱(Y)을 버스(8)로 출력한다.
단계(S11)에서, 라운딩 회로(6)로부터 출력된 라운드된 곱(Y)은 버스(8) 및 공통 버스(5)를 통해 레지스터(1e) 내에 저장된다.
단계(S12)에서, 레지스터(1e) 내에 저장된 라운드된 곱(Y)과 레지스터(1b)내에 저장된 비트수 데이터(n)가 독출되어 시프터(3)내에 입력된다. 시프터(3)는 비트수 데이터(R)와 동일한 비트만큼 라운드된 곱(Y)을 우측으로 시프트시키고, 곱(y)을 버스(12)로 출력한다.
단계(S13)에서, 시프터(13)로부터 출력된 곱(y)은 출력 단자(17)를 통해 출력되고, 버스(5)를 통해 레지스터(1e) 내에 저장된다.
레지스터 파일(1)의 레지스터(1a, 1b, 1c, 1d 및 1e) 및 단계(S1 내지 S12)내의 가상 소수점 레지스터(7)의 내용이 표 2에 도시되어 있다.
[표 2]
제 6 도 및 제 7 도의 제 2 실시예에 따른 산술 연산 시스템은 제 1 실시예의 시스템과 거의 동일한 구조를 갖기 때문에 제 1 실시예의 장점과 동일한 장점을 갖는다.
레지스터(1e) 내에 저장된 승산 결과(Y')를 이용함으로써 여러 가지 산술 연산이 필요에 따라 수행될 수 있다는 부수적인 장점이 있다.
[제 3 실시예]
본 발명의 제 3 실시예에 따른 산술 연산 시스템이 제 8 도에 도시되어 있다. 이러한 시스템은(i) 승산기(4) 및 이에 대응하는 버스(13)가 제거되고, (ii) 레지스터 파일(1)의 버스(10)가 시프터(3) 뿐만 아니라 라운딩 회로(6)에도 접속되는 것을 제외하고는 제 3 도의 제 1 실시예의 구조와 동일한 구조를 갖고 있다.
그러므로, 제 8 도의 동일하거나 대응하는 구성 요소에는 동일한 참조 번호 또는 문자를 붙이고 설명을 간단하게 하기 위해 동일한 구조에 대한 설명을 생략한다.
제 9 도를 참조하여 제 3 실시예에 따른 산술 연산 시스템의 처리 시퀀스를 이하에 설명한다.
단계(S1)에서, 공통 버스(5)의 입력 단자(16)를 통해 시스템 내에 입력되는 이득(K)과 변수(x)는 입력 선택기(1f)의 작용으로 인해 공통 버스(5)를 통해 각각의 레지스퍼(1c 및 1d) 내에 저장된다.
단계(S2)에서, 레지스터(1c) 내에 저장된 이득(K)은 출력 선택기(1g)의 작용으로 인해 버스(9)로 독출된다. 레지스터(1c)의 내용은 이러한 단계 중에 변경되지 않은 상태로 유지된다. ALU(2)는 독출된 이득(K)을 수신하고, 이득(K)의 실 이진수 소수점(P) 위치와 시프터(3)에서 시프트될 비트수를 검출하고, 이 위치 데이터(PT)와 비트수 데이터(n)을 버스(11)로 출력한다.
단계(S3)에서, ALU(2)에 의해 계산되어 검출된 위치 데이터(PT) 및 비트수 데이터(n)가 공통 버스(5)를 각각 통해 레지스터(1a 및 1b) 내에 저장된다.
단계(S4)에서, 레지스터(1a) 내에 저장된 위치 데이터(PT)가 독출되어 시프터(3) 내에 입력된다. 시프터(3)는 입력된 위치 데이터(PT)를 시프팅시키지 않고 버스(12)에 출력한다.
단계(S5)에서, 시프터(3)에 의해 버스(12)로 출력되는 위치 데이터(PT)가 공통 버스(5)를 통해 가상 소수점 레지스터(7)내에 저장된다. 저장된 위치 데이터(PT)는 필요에 따라 라운딩 회로(6)에 의해 독출될 수 있다.
단계(S6)에서, 레지스터(1c 및 1d) 내에 저장된 이득(K) 및 비트수 데이터(n)가 독출되어 버스(9 및 10)를 통해 시프터(3)에 인가된다. 이때, 시프터(3)는 비트수 데이터(n)와 동일한 특정 비트만큼 이득(K)을 좌측으로 시프트시키고, 정수 값을 가지는 계수(k)를 버스(12)로 출력한다.
단계(S7)에서, 계수(k)는 버스(5)를 통해 레지스터(1c) 내에 저장된다. 그러므로, 레지스터(1c)의 내용은 이득(K)에서 계수(k)로 변경된다.
상술한 단계(S1 및 S7)는 제 1 실시예와 동일하다.
단계(S8)에서, 레지스터(1b) 내에 저장된 비트수 데이터(n)와 레지스터(14)내에 저장된 변수(x)가 독출되어 버스(9 및 10)를 통해 시프터(3)에 인가된다. 다음, 변수(x)와 계수(k)의 실 소수점을 서로 정렬시키기 위해, 시프터(3)는 변수(x)를 비트수 데이터(n)와 동일한 특정 비트만큼 좌측으로 시프트시켜, 실 소수점이 없는 변수(X)를 발생시킨다. 변수(X)는 버스(12)로 출력된다.
단계(S9)에서, 시프터(3)로부터 출력된 변수(X)는 버스(12 및 5)를 통해 레지스터(16) 내에 저장된다. 레지스터(16)의 내용은 x에서 X로 변경된다.
단계(S10)에서 , 레지스터(1c 및 1d) 내에 저장된 계수(k) 및 변수(X)가 독출되어 버스(9 및 10)를 통해 ALU(2)에 인가된다. 이때, ALU(2)는 계수(k) 및 변수(X)를 가산하여, 합(z')을 버스(11)로 출력한다.
단계(S11)에서, ALU(2)로부터 출력된 합(z')은 버스(11) 및 공통 버스(5)를 통해 레지스터(1e) 내에 저장된다.
단계(S12)에서, 레지스터(1e) 내에 저장된 합(z')이 독출되어 버스(10)를 통해 라운딩 회로(6) 내에 입력된다. 한편 가상 소수점 레지스터(7) 내에 저장된 위치 데이터(PT)가 독출되어 버스(14)를 통해 라운딩 회로(6) 내에 입력된다. 라운딩 회로(6)는 위치 데이터(PT)에 따라서 합(z')을 라운드시켜, 라운드된 합(Z)을 버스(8)로 출력시킨다.
단계(S13)에서, 라운드된 합(Z)은 버스(8 및 5)를 통해 레지스터(1e) 내에 저장된다.
단계(S14)에서, 레지스터(1e) 내에 저장된 라운드된 합(Z)과 레지스터(1b)내에 저장된 비트수 데이터(n)가 독출되어 버스(9 및 10)를 통하여 시프터(3) 내에 입력된다. 시프터(3)는 비트수 데이터(n)와 동일한 비트만큼 라운드된 합(Z)을 우측으로 시프트시키고, 합(z)을 버스(12)로 출력한다.
단계(S15)에서, 시프터(3)로부터 출력된 합(z)은 출력 단자(17)를 통해 출력되고, 버스(5)를 통해 레지스터(1e) 내에 저장된다.
레지스터 파일(1)의 레지스터(1a, 1b, 1c, 및 1e) 및 단계(S1 및 S12)내의 가상 소수점 레지스터(7)의 내용은 표 3내에 도시되어 있다.
[표 3]
제 8 도 및 제 9 도의 제 3 실시예에 따른 산술 연산 시스템은 제 1 실시예의 시스템과 구조가 거의 동일하기 때문에 제 1 실시예의 장점과 동일한 장점을 갖고 있다.
제 3 실시예에 따른 시스템에서는, 제 1 및 제 2 실시예와는 달리, 가산 연산이 수행된다.
본 발명은 바람직한 형태로 기재되었지만, 당해 분야에 숙련된 기술자라면 본 발명의 범위 내에서 본 발명을 여러 가지로 변경시킬 수 있다는 것을 이해할 수 있을 것이다. 그러스로, 본 발명의 범위는 다음의 특허 청구의 범위에 의해서만 결 정된다.
Claims (14)
- 실 소수점이 있는 제 1 오퍼랜드 및 실 소수점 없는 제 2 오퍼랜드를 산술적으로 연산하기 위한 산술 연산 시스템으로서,(a) 제 1 위치 데이터 및 비트수 데이터를 출력하기 위해 상기 제 1 오퍼랜드의 실 소수점의 위치를 검출하는 밀 소수점 검출기;(b) 상기 제 1 위치 데이터를 저장하는 제 1 레지스터 ;(c) 상기 비트수 데이터를 저장하는 제 2 레지스터 ;(d) 실 소수점이 없는 제 3 오퍼랜드를 출력하기 위해, 상기 제 2 레지스터 내에 저장된 비트수 데이터에 따른 특정 비트만큼 상기 제 1 오퍼랜드를 좌측으로 시프트시키는 제 1 시프터;(e) 제 1 연산 결과를 출력하기 위해, 상기 제 2 오퍼랜드와 제 3 오퍼랜드를 산술 연산하는 정수 산술 연산자;(f) 상기 제 1 위치 데이터에 따라서 상기 제 1 연산 결과의 가상 소수정 위치를 지정하는 가상 소수점 지정자;(g) 제 2 연산 결과를 출력하기 위해, 상기 가상 소수점 지정자가 지정한 상기 제 1 연산 결과의 가상 소수점에 따라서 상기 제 1 연산 결과를 라운딩하는 라운더 ; 및(h) 실 소수점이 없는 제 3 연산 결과를 출력하기 위해, 상기 비트수 데이터에 따른 특정 비트만큼 상기 제 2 연산 결과를 우측으로 시프팅하는 제 2 시프터를 포함하고,상기 제 3 연산 결과가 상기 제 1 및 제 2 오퍼랜드의 라운드된 연산 결과를 나타내는 산술 연산 시스템.
- 제 1 항에 있어서, 상기 정수 산술 연산자의 출력이 상기 라운더의 입력에 접속되어, 상기 정수 산술 연산자로부터 출력된 상기 제 1 연산 결과가 상기 라운더에 직접 입력되는 산술 연산 시스템.
- 제 1 항에 있어서,상기 정수 산술 연산자로부터 출력된 상기 제 2 연산 결과를 저장하는 제 3 레지스터를 더 포함하고,상기 제 3 레지스터 내에 저장된 상기 제 2 연산 결과가 상기 라운더에 인가되는 산술 연산 시스템.
- 제 1 항에 있어서,상기 가상 소수점 지정자가 상기 제 1 연산 결과의 가상 소수점 위치를 나타내는 제 2 위치 데이터를 출력하고,상기 제 2 위치 데이터는 제 4 레지스터 내에 저장되는 산술 연산 시스템.
- 제 1 항에 있어서, 상기 실 소수점 검출기가 ALU로 형성되는 산술 연산 시템.
- 제 1 항에 있어서, 상기 제 1 시프터와 제 2 시프터가 하나의 양방향 시프터로 형성되는 산술 연산 시스템.
- 실 소수점이 있는 제 1 오퍼랜드 및 실 소수점이 없는 제 2 오퍼랜드를 산술적으로 연산하기 위한 산술 연산 시스템으로서,(a) 제 1 위치 데이터와 비트수 데이터를 출력하기 위해, 상기 제 1 오퍼랜드의 실 소수점 위치를 검출하는 ALU;(b) 상기 제 1 위치 데이터를 저장하는 제 1 레지스터;(c) 상기 비트수 데이터를 저장하는 제 2 레지스터;(d) 실 소수점이 없는 제 3 오퍼랜드를 출력하기 위해, 상기 제 2 레지스터 내에 저장된 비트수 데이터에 따른 특정 비트만큼 상기 제 1 오퍼랜드를 좌측으로 시프트시키는 양방향 시프터;(e) 제 1 승산 결과를 출력시키기 위해, 상기 제 2 오퍼랜드와 제 3 오퍼랜드를 승산하는 승산기;(f) 상기 제 1 승산 결과의 가상 소수점의 제 2 위치 데이터를 저장하는 제 3 레지스터;(g) 제 2 승산 결과를 출력하기 위해, 상기 제 3 레지스터 내에 저장된 제 2 위치 데이터에 따라서 상기 제 1 승산 결과를 라운딩하는 라운딩 회로를 포함하고,상기 양방향 시프터가 상기 제 2 위리 데이터에 따른 특정 비트만큼 상기 제 2 승산 결과를 우측으로 시프트시켜 실 소수점이 없는 제 3 승산 결과를 출력하며,상기 제 3 승산 결과가 상기 제 1 오퍼랜드와 제 2 오퍼랜드의 라운드된 승산 결과를 나타내는 산술 연산 시스템.
- 제 7 항에 있어서, 상기 승산기의 출력이 상기 라운딩 회로의 입력에 접속되어, 상이 승산기로부터 출력된 상기 제 2 승산 결과가 상기 라운딩 회로에 직접 인가되는 산술 연산 시스템.
- 제 7 항에 있어서,상기 제 2 승산 결과를 저장하는 제 4 레지스터를 더 포함하고,상기 승산기로부터 출력된 상기 제 2 승산 결과가 상기 제 4 레지스터를 통해 상기 라운딩 회로에 인가되는 산술 연산 시스템.
- 제 7 항에 있어서,상기 제 1 레지스터와 제 2 레지스터를 포함하는 제 1 하드웨어 장치가 상기 제 3 레지스터를 포함하는 제 2 하드웨어 장치와 독립적으로 제어되는 산술 연산 시스템.
- 실 소수점이 있는 제 1 오퍼랜드 및 실 소수점이 없는 제 2 오퍼랜드를 산술적으로 연산하기 위한 산술연산 시스템으로서,(a) 제 1 위치 데이터 및 비트수 데이터를 출력하기 위해, 상기 제 1 오퍼랜드의 실 소수점 위치를 검출하는 ALU;(b) 상기 제 1 위치 데이터를 저장하는 제 1 레지스터;(c) 상기 비트수 데이터를 저장하는 제 2 레지스터;(d) 실 소수점이 없는 제 3 오퍼랜드를 출력하기 위해, 상기 제 2 레지스터 내에 저장된 비트수 데이터에 따른 특정 비트만큼 상기 제 1 오퍼랜드를 좌측으로 시프팅시키는 양방향 시프터;(e) 제 1 연산 결과를 출력하기 위해, 상기 제 2 오퍼랜드와 제 3 오퍼랜드를 산술 연산하는 ALU;(f) 상기 제 1 연산 결과의 가상 소수점의 제 2 위치 데이터를 저장하는 제 3 레지스터;(g) 제 2 연산 결과를 출력하기 위해, 상기 제 3 레지스터 내에 저장된 상기 제 2 위치 데이터에 따라서 상기 제 1 연산 결과를 라운딩하는 라운딩 회로를 포함하고,상기 양방향 시프터가 상기 제 2 위치 데이터에 따른 특정 비트만큼 상기 제 2 연산 결과를 우측으로 시프트시켜서 실 소수점이 없는 제 3 연산 결과를 출력하며,상기 제 3 연산 결과가 상기 제 1 오퍼랜드와 제 2 오퍼랜드의 라운드된 연산 결과를 나타내는 산술 연산 시스템.
- 제 11 항에 있어서,상기 제 2 연산 결과를 저장하는 제 4 레지스터를 더 포함하고,상기 ALU로부터 출력된 상기 제 2 연산 결과가 상기 제 4 레지스터를 통해 상기 라운딩 회로에 인가되는 산술 연산 시스템.
- 제 11 항에 있어서,상기 제 1 레지스터와 제 2 레지스터를 포함하는 제 1 하드웨어 장치가 상기 제 3 레지스터를 포함하는 제 2 하드웨어 장치와 독립적으로 제어되는 산술 연산 시스템.
- 실 소수점이 있는 제 1 오퍼랜드(K) 및 실 소수점이 없는 제 2 오퍼랜드(x)를 산술적으로 연산하는 산술연산 시스템으로서,상기 제 1 오퍼랜드(K)의 실 소수점 위치를 검출하여 제 1 위치 데이터(PT)와 비트수 데이터(n)-여기서, 제 1 위치 데이터(PT)와 비트수 데이터(n)는 각각 제 1 레지스터와 제 2 레지스터 내에 저장됨-를 출력시키며,실 소수점이 없는 제 3 오퍼랜드(k)를 출력하기 위해, 상기 제 1 오퍼랜드(K)를 상기 제 2 레지스터 내에 저장된 비트수 데이터(n)에 따른 특정 비트만큼 좌측으로 시프트시키며,상기 제 2 오퍼랜드와 제 3 오퍼랜드를 정수 산술 연산 처리하여 제 1 연산 결과(Y')를 출력시키며,제 2 연산 결과(Y)를 출력하기 위해, 상기 제 1 연산 결과(Y')를 상기 제 1 레지스터 내에 저장된 제 1 위치 데이터(PT)에 따라서 라운드시키며,실 소수점이 있는 제 3 연산 결과(y)를 출력하기 위해, 상기 제 2 연산 결과(Y)를 상기 제 2 레지스터 내에 저장된 비트수 데이터(n)에 따른 특정 비트만큼 우측으로 시프트시키며,상기 제 3 연산 결과(y)가 상기 제 1 오퍼랜드와 제 2 오퍼랜드의 최종 연산 결과를 나타내는 산술 연산 시스템에 있어서,상기 제 1 오퍼랜드가 제 1 시프터에 의해 좌측으로 시프트되고, 상기 제 2 연산 결과가 제 2 시프터에 의해 우측으로 시프트되며,상기 제 1 연산 결과가 라운더에 의해 라운드되는 것을 특징으로 하는 산술 연산 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP96-340695 | 1996-12-20 | ||
JP8340695A JPH10187416A (ja) | 1996-12-20 | 1996-12-20 | 浮動小数点演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980064405A KR19980064405A (ko) | 1998-10-07 |
KR100297312B1 true KR100297312B1 (ko) | 2001-10-24 |
Family
ID=18339434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970071119A KR100297312B1 (ko) | 1996-12-20 | 1997-12-20 | 산술연산시스템 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6014683A (ko) |
EP (1) | EP0849662A3 (ko) |
JP (1) | JPH10187416A (ko) |
KR (1) | KR100297312B1 (ko) |
CN (1) | CN1195808A (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6317770B1 (en) | 1997-08-30 | 2001-11-13 | Lg Electronics Inc. | High speed digital signal processor |
JP3755602B2 (ja) * | 2003-03-04 | 2006-03-15 | ソニー株式会社 | 信号処理装置、信用処理装置用プログラム、信号処理装置用プログラムを記録した記録媒体、及び信号処理方法 |
US7949695B2 (en) * | 2004-10-27 | 2011-05-24 | Via Technologies Inc. | Two's complement circuit |
JP4482052B2 (ja) * | 2006-02-14 | 2010-06-16 | 富士通株式会社 | 演算装置および演算方法 |
US9223751B2 (en) | 2006-09-22 | 2015-12-29 | Intel Corporation | Performing rounding operations responsive to an instruction |
US7958179B2 (en) * | 2006-12-06 | 2011-06-07 | Electronics And Telecommunications Research Institute | Arithmetic method and device of reconfigurable processor |
JP6492739B2 (ja) * | 2015-02-20 | 2019-04-03 | セイコーエプソン株式会社 | 回路装置、物理量検出装置、電子機器及び移動体 |
JP7087918B2 (ja) * | 2018-10-31 | 2022-06-21 | 富士通株式会社 | 演算処理装置及びその制御方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0473249U (ko) * | 1990-10-29 | 1992-06-26 | ||
JPH05143324A (ja) * | 1991-05-06 | 1993-06-11 | Motorola Inc | 消費電力を低減した乗算実行装置及びその方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60164247A (ja) * | 1984-02-07 | 1985-08-27 | Mitsubishi Electric Corp | 回転探傷装置 |
JPH01116730A (ja) * | 1987-10-30 | 1989-05-09 | Mitsubishi Electric Corp | デイジタル信号処理プロセツサ |
JPH02183828A (ja) * | 1989-01-11 | 1990-07-18 | Fujitsu Ltd | 浮動小数点乗算器 |
US5208770A (en) * | 1989-05-30 | 1993-05-04 | Fujitsu Limited | Accumulation circuit having a round-off function |
JPH0473249A (ja) * | 1990-07-14 | 1992-03-09 | Oji Paper Co Ltd | 不織布の製造方法及び装置 |
JPH05224888A (ja) * | 1992-02-13 | 1993-09-03 | Fujitsu Ltd | 小数点位置可変型データの乗算回路 |
GB2268604A (en) * | 1992-07-02 | 1994-01-12 | Motorola Inc | Integer divider. |
JPH06180649A (ja) * | 1992-12-14 | 1994-06-28 | Hitachi Ltd | マイクロプロセッサ |
JP2513139B2 (ja) * | 1993-07-27 | 1996-07-03 | 日本電気株式会社 | 信号処理プロセッサ |
-
1996
- 1996-12-20 JP JP8340695A patent/JPH10187416A/ja active Pending
-
1997
- 1997-12-19 EP EP97122568A patent/EP0849662A3/en not_active Withdrawn
- 1997-12-20 KR KR1019970071119A patent/KR100297312B1/ko not_active IP Right Cessation
- 1997-12-22 CN CN97122094A patent/CN1195808A/zh active Pending
- 1997-12-22 US US08/995,861 patent/US6014683A/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0473249U (ko) * | 1990-10-29 | 1992-06-26 | ||
JPH05143324A (ja) * | 1991-05-06 | 1993-06-11 | Motorola Inc | 消費電力を低減した乗算実行装置及びその方法 |
Also Published As
Publication number | Publication date |
---|---|
US6014683A (en) | 2000-01-11 |
KR19980064405A (ko) | 1998-10-07 |
EP0849662A3 (en) | 1999-12-01 |
EP0849662A2 (en) | 1998-06-24 |
CN1195808A (zh) | 1998-10-14 |
JPH10187416A (ja) | 1998-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6144977A (en) | Circuit and method of converting a floating point number to a programmable fixed point number | |
EP0464493B1 (en) | High-radix divider | |
KR19980702882A (ko) | 시프트 수단을 이용한 지수 회로 및 사용 방법 | |
US5677861A (en) | Arithmetic apparatus for floating-point numbers | |
US6728739B1 (en) | Data calculating device and method for processing data in data block form | |
KR100297312B1 (ko) | 산술연산시스템 | |
US8370415B2 (en) | Overflow detection and clamping with parallel operand processing for fixed-point multipliers | |
US6205462B1 (en) | Digital multiply-accumulate circuit that can operate on both integer and floating point numbers simultaneously | |
US5144576A (en) | Signed digit multiplier | |
EP0869432B1 (en) | Multiplication method and multiplication circuit | |
US4899302A (en) | Arithmetic unit for inverse trigonometric function | |
US6314443B1 (en) | Double/saturate/add/saturate and double/saturate/subtract/saturate operations in a data processing system | |
US5903486A (en) | Device for digitally carrying out a division operation | |
US5576982A (en) | Fast significant bit calculator and its application to integer multiplication and division | |
US5825681A (en) | Divider/multiplier circuit having high precision mode | |
US5528525A (en) | Processor for determining shift counts based on input data | |
US6094669A (en) | Circuit and method for determining overflow in signed division | |
US5432727A (en) | Apparatus for computing a sticky bit for a floating point arithmetic unit | |
US7237000B2 (en) | Speed of execution of a conditional subtract instruction and increasing the range of operands over which the instruction would be performed correctly | |
CA1173164A (en) | Fraction calculator | |
JPH10333883A (ja) | 乗算方法および乗算回路 | |
JP4428778B2 (ja) | 演算装置及び演算方法並びに計算装置 | |
KR100623604B1 (ko) | 데이터 처리장치 및 그의 데이터 처리 방법 | |
JPH0414173A (ja) | 固定小数点演算器 | |
KR100265358B1 (ko) | 고속의쉬프팅장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |