KR19980064405A - 산술 연산 시스템 - Google Patents

산술 연산 시스템 Download PDF

Info

Publication number
KR19980064405A
KR19980064405A KR1019970071119A KR19970071119A KR19980064405A KR 19980064405 A KR19980064405 A KR 19980064405A KR 1019970071119 A KR1019970071119 A KR 1019970071119A KR 19970071119 A KR19970071119 A KR 19970071119A KR 19980064405 A KR19980064405 A KR 19980064405A
Authority
KR
South Korea
Prior art keywords
register
output
decimal point
operand
result
Prior art date
Application number
KR1019970071119A
Other languages
English (en)
Other versions
KR100297312B1 (ko
Inventor
히로시 가츠타
Original Assignee
가네코 히사시
닛폰 덴키(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가네코 히사시, 닛폰 덴키(주) filed Critical 가네코 히사시
Publication of KR19980064405A publication Critical patent/KR19980064405A/ko
Application granted granted Critical
Publication of KR100297312B1 publication Critical patent/KR100297312B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49936Normalisation mentioned as feature only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding

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 오퍼런드의 실 소수점의 위치가 실 소수점 검출기에 의해 검출되어, 검출된 위치에 따라서 데이터 및 비트수 데이터를 발생시킨다. 실 소수점이 없는 제 3 오퍼런드는 비트수 데이터에 따라서 제 1 시프터에 의해 실 소수점이 있는 제 1 오퍼런드를 시프팅시킴으로써 발생된다. 실 소수점이 없는 제 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)를 가지고 있다고 제안되어 있는데, 여기에서 nm이다. 그러므로, 이득(K)의 최대 유효 비트(MSB)는 비트(0)이다. 실 이진수 소수점(P)은 비트(n)와 비트(n-1) 사이에 배치된다.
도 1에 도시된 단계(S1)에서, 이득(K)은 정수 계수(k)로 변환하기 위해 n비트만큼 좌측으로 시프트된다.[즉, 이득(K)은 2ten n만큼 승산된다]. 계수(k)는 도 2에 도시된 바와 같이 비트(n-1)와 비트(n) 사이에 배치된 가상 이진수 소수점(P')을 갖고 있다.
단계(S2)에서, 정수 계수(k)는 곱(Y)을 생성하는 분수 변수(x) 만큼 승상된다(즉, Y=k·x).
단계(S3)에서, 곱(Y)의 분수가 이진수로 2 미만(즉, 0.1two) 인지의 여부가 판단된다. 이진수 0.1이 10진수 0.5(즉, 0.5ten)와 동일하다. 이러한 판단은 곱(Y)을 비트(n-1)로 라운드 오프시키도록 달성되어, 곱(y)의 라운딩 에러를 최소화시킨다.
비트(n-1)와 비트(0)중에 배치된 곱(Y)의 가상 분수가 0.1two또는 0.5ten이하일 때, 변수(T)는 단계(S4)에서 이진수로 1(즉, 1two)로 설정된다. 이러한 단계(S4)는 곱(Y)을 1two로 비트(n)에서 라운딩 하기 위해 수행된다.
이때, 1two의 변수(T)는 단계(S6)에서 n비트만큼 좌측으로 시프트된다. 좌측으로 시프트된 변수(T)는 단계(S7)에서 곱(Y)에 가산된다.
최종적으로 곱(Y)은 n비트만큼 우측으로 시프트되므로[즉, 곱(Y)이 2ten n으로 제산되므로), 단계(S8)에서 이득(K)과 변수(x)의 라운드된 곱(y)을 발생시킨다. 곱(y)의 실 소수점(P)은 상술한 라운딩 오프로 인해 비트 0의 우측에 배치된다. 다시 말하면, 곱(y)은 정수치를 갖는다.
한편, 곱(Y)의 가산 분수가 0.1two또는 0.5ten미만일 때, 변수(T)는 단계(S5)에서 0two로 설정된다.
이때, 0two의 변수(T)는 단계(S6)에서 n비트만큼 좌측으로 시프트된다. 좌측으로 시프트된 변수(T)에는 단계(S7)에서 곱(Y)이 가산된다. 변수(T)가 0two의 값을 가지고 있기 때문에, 곱(Y)의 값에 대한 변경이 전혀 발생하지 않는다.
최종적으로 곱(Y)이 n비트만큼 우측으로 시프트되므로, 단계(S8)에서 이득(K)과 변수(x)의 라운드된 곱(y)을 발생시킨다.
마이크로컴퓨터 응용 시스템에서, 산술 연산 정확성은 데이터 값의 분수를 산술적으로 연산하기 위한 방법에 따라서 변한다. 그러므로, 데이터 값의 분수에 대한 산술 연산 방법은 연산의 정확성에 비추어 보아 매우 중요하다.
예를 들어, 전동기를 이용하는 위치 제어 시스템과 같은 피드백 제어 시스템에서, 분수를 포함하는 완전한 데이터 값의 산술 연산이 반드시 필요하다. 이러한 경우에, 데이터 값의 분수에 대한 산술 연산 방법은 피드백 제어 시스템의 제어 정확성에 크게 영향을 끼운다.
도 1에 도시된 전용 소프트웨어를 이용함에 따른 종례의 부동 소수점 산술 연산에서, 요구된 연산 정확성이 실현될 수 있다. 그러나, 이러한 경우에, 부동 소수점 연산은 마이크로컴퓨터 응용 시스템내의 마이크로컴퓨터의 중앙 처리 장치(CPU)에 의해 소프트웨어를 실행함으로써 수행된다. 결과적으로 산술 연산을 완료하기 위해서는 장시간이 소요된다는 문제가 있다. 이것은 소프트웨어를 이용하는 상술한 종례의 부동 소수점 산술 연산이 고속 제어 동작에 필요한 마이크로컴퓨터 응용 시스템에 응용될 수 없다.
한편, 부동 소수점 산술 연산에 필요한 처리에 관한 발생 속도는 마이크로컴퓨터 응용 시스템의 전체 처리 시에 높지는 않다. 그러므로, 전용 부동 소수점 산술 연산 DSP 또는 전용 부동 소수점 산술 연산 장치가 부수적으로 도입될지라도, 소개된 고가 전용 DSP 또는 장치는 효과적으로 이용되지 않는다.
따라서, 본 발명의 목적은 최소 하드웨어 장치를 이용하여 부동 소수점 산술 연산을 고속으로 행할 수 있는 산술 연산 시스템을 제공하기 위한 것이다.
본 발명의 다른 목적은 CPU의 명령어 처리 단계를 최소화하면서 부동 소수점 산술 연산을 수행하는 부동 소수점 산술 연산 시스템을 제공하기 위한 것이다.
특정하게 상술한 이외의 것과 함께 상술한 목적은 다음 설명으로부터 당해 분야에 숙련된 기술자들은 명백해 진다.
본 발명에 따르면, 실 소수점이 있는 제 1 오퍼런드 및 실 소수점이 없는 제 2 오퍼런드를 산술적으로 연산하기 위한 산술 연산 시스템이 제공된다.
이러한 시스템은 (a) 제 1 위치 데이터 및 비트 수 데이터를 출력시키기 위한 제 1 오퍼런드의 실 소수점의 위치를 검출하기 위한 실 소수점 검출기, (b) 제 1 위치 데이터를 저장하기 위한 제 1 레지스터, (c) 비트수 데이터를 저장하기 위한 제 2 레지스터, (d) 실 소수점이 없는 제 3 오퍼런드를 출력시키기 위해 제 2 레지스터 내에 저장된 비트수 데이터에 따른 특정 비트에 의해 제 1 오퍼런드를 좌측으로 시프트시키기 위한 제 1 시프터, (e) 제 1 연산 결과를 출력시키기 위해 제 2 및 제 3 오퍼런드를 산술 연산하기 위한 정수 산술 연산자, (f) 제 1 위치 데이터에 따른 제 1 연산 결과의 가상 소수점의 위치를 지정하기 위한 가상 소수점 지정자(designator), (g) 제 2 연산 결과를 출력시키기 위해 가상 소수점 지정자에 의해 제 1 연산 결과에 관한 지정된 사상 소수점에 따라서 제 1 연산 결과를 라운딩시키기 위한 라운터(rounder), 및 (h) 실 소수점이 없는 제 3 연산 결과를 출력시키기 위한 비트수 데이터에 따라서 특정 비트만큼 제 2 연산 결과를 시프트시키기 위한 제 2 시프터(shifter)로 구성된다.
제 3 연산 결과는 제 1 및 제 2 오퍼런드의 라운드된 연산 결과를 나타낸다. 본 발명에 따른 산술 연산 시스템에서, 제 1 오퍼런드의 실 소수점의 위치는 실 소수점 검출기에 의해 검출되어, 제 1 위치 데이터 및 비트수 데이터를 발생시킨다. 실 소수점이 없는 제 3 오퍼런드는 비트수 데이터에 따라서 제 1 시프터에 의해 실 소수점을 가지는 제 1 오퍼런드를 좌측으로 시프트시킴으로써 발생된다. 실 소수점이 없는 제 2 오퍼런드와 제 3 오퍼런드는 정수 산술 연산자에 의해 산술적으로 연산되어, 제 1 연산 결과를 출력시킨다.
이때, 출력된 제 1 연산 결과는 제 1 연산 결과에 관해 지정된 가상 소수점에 따라서 라운더에 의해 라운드되므로, 제 2 연산 결과를 출력시킨다.
더욱이, 실 소수점이 없는 제 3 연산 결과는 제 2 연산 결과를 우측으로 시프팅시킴으로써 발생되므로, 비트수 데이터에 따라서 제 2 시프터에 의해 라운드된다.
따라서, 제 1 및 제 2 오퍼런드에 대한 부동 소수점 산술 연산은 어떠한 전용 부동 소수점 산술 연산 DSP나 전용 부동 소수점 산술 연산 장치가 없이도 수행될 수 있다. 이것은 이러한 시스템의 제조 단가를 감소시키게 된다.
또한, 상술한 부동 소수점 산술 연산은 실 소수점 검출기, 제 1 및 제 2 레지스터, 제 1 및 제 2 시프터, 정수 산술 연산자, 가상 소수점 지정자, 및 라운더를 이용함으로써 수행된다. 다시 말하면, 이러한 연산은 하드웨어 장치를 이용함으로써 부동 소수점 산술 연산에 어떠한 전용 소프트웨어를 이용하지 않고서도 수행된다.
결과적으로, 이러한 연산은 CPU의 명령어 처리 단계를 최소화하면서 최소 하드웨어 장치를 이용하여 고속으로 수행될 수 있다.
본 발명에 따른 시스템의 양호한 실시예에서, 정수 산술 연산자의 출력은 라운더의 입력에 접속되므로, 정수 산술 연산자로부터 출력된 제 1 연산을 라운더 내에 직접 입력된다.
이러한 경우에, 버스 구조가 간단해 진다는 부수적인 장점이 있다.
본 발명에 따른 시스템의 다른 양호한 실시예에서, 제 3 레지스터는 정수 산술 연산자로부터 출력된 제 2 연산 결과를 저장하기 위해 부수적으로 제공된다. 제 2 레지스터내에 저장된 제 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)는 공통 버스의 한 단부에 배치된 입력 터미널(16)내에 입력된다. 이득(K)과 변수(x)의 라운드된 곱(y)(즉, y=K·x)은 공통 버스(5)의 다른 단부에 배치된 출력 터미널(17)로부터 유도된다.
도 2에 도시된 바와 같이, 이득(K)은 넓이가 m비트이고, 실 이진수 소수점(P)을 갖고 있다. 이득(K)의 분수는 넓이가 n비트이고, 이의 정수는 넓이가(m-n)비트인데, mn이다. 이득(K)의 MSB 및 LSB는 비트(m-1)(즉, 최좌측 비트) 및 비트(0)(즉, 최우측 비트)이다. 실 이진수 소수점(P)은 비트(n-1)와 비트(n) 사이에 배치된다.
레지스터 파일(1)은 5개의 범용 레지스터(1a, 1b, 1c, 1d 및 1e), 및 2개의 선택기 또는 멀티플렉서(1f 및 1g)를 포함한다.
제어 신호(C1)에 따라서 레지스터(1a, 1b, 1c, 1d 및 1e)들 중 하나의 레지스터를 선택하는 경우에 입력 선택기는 입력 데이터가 레지스터(1a, 1b, 1c, 1d 및 1e)들 중 선택된 하나의 레지스터 내에 버스(5)를 통해 기입되거나 저장되게 할 수 있게 제어기(15)로부터 제공된다. 출력 선택기(1g)는 레지스터(1a, 1b, 1c, 1d 및 1e)들 중 선택된 하나의 레지스터의 내용(즉, 저장된 데이터)이 버스(9 또는 10)에서 독출되게 할 수 있게 제어기(15)로부터 제공된다. 버스(9)는 ALU(2), 양방향성 시프터(3) 및 승산기(4)에 접속된다. 버스(10)는 양방향성 시프터(3) 및 승산기(4)에 접속된다.
레지스터(1a)는 이득(K)의 가상 이진수 소수점(P')의 위치 데이터(PT)를 저장한다. 레지스터(1b)는 시프터(3) 내로 시프트될 이득(K)의 비트수 데이터(n)를 저장한다. 레지스터(1c)는 이득(K) 또는 계수(k)를 저장한다. 계수(k)는 정수치를 갖고 있고 실 이진수 소수점을 가지고 있지 않는 비트수 데이터(n)와 동일한 특정 비트만큼 이득(K)을 좌측으로 시프트시킴으로써 제공된다. 레지스터(1d)는 정수치를 가지는 변수(x)를 저장한다. 레지스터(1e)는 곱(y 및 Y)을 저장한다. 곱(Y)은 변수(x)를 계수(k)와 승산하고, 승산 결과(Y')(=k·x)를 라운딩시킴으로써 제공된다.
가상 소수점 레지스터(7)은 시프터(3)로부터 버스(5)를 통해 제공되는 이득(K)이 가상 이진수 소수점(P')의 위치 데이터를 저장한다. 레지스터(7)는 위치 데이터(PT)를 버스(14)를 통해 라운딩 회로(6)로 출력시킨다. 이러한 연산은 제어기(15)로부터 제공된 제어 신호(C3)에 따라서 수행된다.
가상 소수점 레지스터(7)는 래치 회로로 간단하게 형성될 수 있다.
ALU(2)는 이진수 소수점을 전혀 포함하고 있지 않는 정수의 산술 및 논리 연산을 행할 수 있다. ALU(2)자체는 부동 소수점 산술 연산을 수행할 수 없다. ALU(2)는 제어기(15)로부터 제공된 제어 신호(C4)에 따라서 버스(P)를 통해 인가된 이득(K)의 실 이진수 소수점(P)의 위치(즉, 분수의 자리수)를 계산한다. 그러므로, ALU(2)는 버스(11)를 통해 버스(5)로 시프트될 이득(K)의 실 이진수 소수점(P)의 위치 데이터(PT) 및 비트수 데이터(n)를 출력시킨다. 검출된 위치 데이터(PT) 및 비트수 데이터(n)는 버스(5)를 통해 레지스터(1a 및 1b)내에 각각 저장된다.
위치 데이터(PT)의 값은 비트수 데이터(n)의 값과 항상 동일하지는 않다.
양방향성 시프터(3)는 레지스터(1a)로부터 버스(9)를 통해 위치 데이터(PT)를 수신한다. 이때, 시프터(3)는 버스(12)를 통해 연산을 시프팅시키지 않고서도 위치 데이터(PT)를 버스(5)로 출력시킨다. 이러한 연산은 제어기(15)로부터 제공된 제어 신호(C5)에 따라서 수행된다.
또한, 시프터(3)는 레지스터(1a 및 1b)로부터 각각 통해 이득(K) 및 비트수 데이터(n)를 수신한다. 시프터(3)는 비트수 데이터(n)와 동일한 특정 비트만큼 이득(K)을 좌측으로 시프트시켜, 계수(k)를 버스(12)를 통해 버스(5)로 출력시킨다. 이러한 연산은 제어 신호(C5)에 따라서 달성된다.
더욱이, 시프터(3)는 레지스터(le 및 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)로부터 출력된 이득(K)의 위치 데이터(PT)를 수신한다. 이때, 회로(6)는 가상 소수점(P')의 위치 데이터(PT)와 일치시키기 위해 곱(Y')을 라운드시킨다.
예를 들어, 라운딩 회로(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)로부터 제공된 제어 신호에 따라서 수행된다.
라운딩 회로는 단방향 시프터, 비교기 및 가산기의 조합으로 간단하게 형성될 수 있다.
도 4는 제 1 실시예에 따른 시스템에 이용된 승산 결과(Y')의 가상 소수점(P')의 위치를 제공하는 위치 데이터(PT)의 예시치를 도시한 것이다. 이 예에서, 값이 넓이가 32 비트이고, 비트 8만의 값은 1two이고, 나머지 값은 모두 -0two-이다. 특히, 이진수값은 다음과 같이 표현된다.
00000000000000000000000100000000
한편, 32 비트 곱(Y')은 다음과 같은 갖는 값을 다고 제안되어 있는데,
011010011010010110010110. 11111111
여기에서, 표시 .는 곱(Y')의 가상 이진수 소수점(P')을 나타낸다. 분수치는 넓이가 8비트이다.
비트(0) 내지 비트(7) 중에 배치되는 곱(Y')의 분수에 관한 이준수 값11111111은 0.1two또는 0.5ten보다 크다. 그러므로, 다음 이진수, 즉
000000000000000000000001.00000000=1two
의 위치 데이터(PT)의 값은 곱(Y')의 비트(8)의 값에 가산되어,
011010011010010110010111.11111111
을 발생시킨다.
또한, 32비트 곱(Y')은
011010011010010110010110.00000001
을 값을 갖는다고 지시한다.
비트(0) 내지 비트(7) 중에 배치되는 곱(Y')의 분수에 관한 이진수 값 1은 0.1two또는 0.5ten미만이다. 그러므로,
000000000000000000000001.00000000=1two
의 위치 데이터(PT)의 값은 곱(Y')의 비트(8)의 값에 가산되지 않아서, 라운딩 동작 이전과 같이
011010011010010110010110,00000001
의 동일한 값을 발생시킨다.
그 다음에, 제 1 실시예에 따른 산술 연산 시스템의 처리 시퀀스는 도 5를 참조하여 이하에 설명하고자 한다.
단계(S1)에서, 공통 버스(5)의 입력 터미널(16)을 통해 이러한 시스템 내에 입력되는 이득(K) 및 변수(x)는 각각의 경우에 입력 선택기의 작용으로 인해 공통버스(5)를 통해 레지스터(1c 및 1d) 내에 저장된다.
단계(S2)에서, 레지스터(1c)내에 저장된 이득(K)은 출력 선택기(1g)의 작용으로 인해 버스(9)로 독출된다. 레지스터(1c)의 내용은 이 단계 중에 변경되지 않는 상태로 유지된다. ALU(2)는 독출된 이득(K)을 수신하고, 실 이진수 소수점(P)의 위치 및 시프터(3) 내로 시프트될 비트수를 계산하거나 검출하여, 이득(K)의 실 이진수 소수점(P)의 위치 데이터(PT) 및 이의 비트수 데이터(n)를 버스(11)로 출력시킨다.
단계(S3)에서, ALU(27)에 의해 계산되거나 검출된 위치 데이터(PT) 및 비트수 데이터(n)는 공통 버스(5)를 각각 통해 레지스터(1a 및 1b)내에 저장된다.
단계(S4)에서, 레지스터(1a)내에 저장된 위치 데이터(PT)는 시프터(3) 내로 입력되게 독출된다. 시프터(3)는 시프팅시키지 않고서도 버스(12)로 입력 위치 데이터(PT)를 출력시킨다.
단계(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) 및 레지스터(1d) 내에 저장된 변수(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)는 시프터(2) 내로 입력되게 독출된다. 시프터(3)는 비트수 데이터(n)와 동일한 비트만큼 라운드된 곱(Y)을 우측으로 시프트시켜, 곱(y)을 버스(12)로 출력시킨다.
단계(S12)에서, 시프터(3)로부터 출력된 곱(y)은 출력 터미널(17)을 통해 출력되어, 버스(5)를 통해 레지스터(1e)내에 저장된다. 레지스터 파일(1)의 레지스터(1a, 1b, 1c, 1d 및 1e) 및 단계(S1 내지 S12)내의 가상 소수점 레지스터의 내용이 표 1에 도시되어 있다.
[표 1]
도 3 및 도 5내의 제 1 실시예의 따른 산술 연산 시스템에서, 이득(K)의 실 소수점(P)의 위치는 실 소수점 검출기로서 작용하는 ALU에 의해 검출되어, 위치 데이터(PT) 및 비트수 데이터(n)를 발생시킨다. 실 소수점 없는 계수(k)는 비트수 데이터(n)에 따라서 양방향성 시프터(3)에 의해 실 소수점(P)이 있는 이득(K)을 좌측으로 시프트시킴으로써 발생된다. 실 소수점이 없는 계수(k)와 변수(x)는 승산기(4)에 의해 승산되므로, 제 1 승산 결과로서 작용하는 곱(Y')를 출력시킨다.
이때, 출력된 제 1 승산 결과로서 작용하는 곱(Y')은 곱(Y')의 지정된 가상 소수점(P')에 따라서 라운딩 회로(6)에 의해 라운드되어, 제 2 승산 결과로서 작용하는 라운드된 곱(Y)을 출력시킨다.
더욱이, 실 소수점이 없는 제 3 승산 결과로서 작용하는 곱(y)은 비트수 데이터(n)에 따라서 시프터(3)에 의해 라운드된 제 2 승산 결과로서 작용하는 라운드된 곱(Y)을 우측으로 시프트시킴으로써 발생된다.
따라서, 이득(K) 및 변수(x)에 대한 부동 소수점 산술 연산은 어떠한 전용 부동 소수점 산술 연산 DSP나 전용 부동 소수점 산술 연산 장치가 없이도 수행될 수 있다. 이것은 이러한 시스템의 제조 단가를 감소하게 할 수 있다.
또한, 상술한 산술 연산은 실 소수점 검출기로서 작용하는 ALU(2), 레지스터 (1a 및 1b), 양방향성 시프터(3), 정수 산술 연산자로서 작용하는 승산기(4), 가상 소수점 지정자로서 작용하는 ALU(2) 및 가상 소수점 레지스터(7) 및 라운딩 회로(6)를 이용함으로써 수행된다. 다시 말해, 이러한 연산은 하드웨어 장치를 이용함으로서 부동 소수점 산술 연산용으로 어떠한 전용 소프트웨어도 이용하지 않고서 수행된다.
결과적으로, 산술 연산은 CPU의 명령어 처리 단계를 최소화시키면서 최소 하드웨어를 이용하여 고속으로 수행될 수 있다.
라운딩 회로(6)에 의한 승산 결과(Y')의 라운딩 처리와 레지스터 파일(1)의 판독 처리 사이의 경쟁이 전혀 발생하지 않는다는 부수적인 장점이 있다.
[제 2 실시예]
본 발명의 제 2 실시예에 따른 산술 연산 시스템이 도 6에 도시되어 있다. 이러한 시스템은 (i) 승산기(4)의 버스(13)가 라운딩 회로(6)에는 접속되지 않지만, 공통 버스(5)에는 접속되고, (ii) 레지스터 파일(1)의 버스(10)가 시프터(3)에 접속될 뿐 아니라 승산기(4)가 라운딩 회로(6)에도 접속되는 것을 제외하고는 도 3의 제 1 실시예의 구조와 거의 동일한 구조를 갖고 있다.
그러므로, 동일한 구조에 관련된 설명은 설명을 간단화하기 위한 목적으로 도 6에 동일하거나 대응하는 구성 요소에는 동일한 참조 번호 또는 문자를 붙이고, 설명을 생략한다.
그 다음, 제 2 실시예에 따른 산술 연산 시스템의 처리 시퀀스는 도 7을 참조하여 이하에 설명하고자 한다.
단계(S1), 공통 버스(5)의 입력 터미널(16)을 통해 이러한 시스템 내에 입력되는 이득(K) 및 변수(x)는 입력 선택기(1f)의 작용으로 인해 공통 버스(5)를 통해 레지스터(1c 및 1d) 내에 각각 저장된다.
단계(S2)에서, 레지스터(1c)내에 저장된 이득(K)은 출력 선택기(1g)의 작용으로 인해 버스(9)로 독출된다. 레지스터(1c)의 내용은 이 단계 중에 변경되지 않은 상태로 유지된다. ALU(2)는 독출된 이득(K)을 수신하고, 시프터(3)로 시프트될 실 소수점(P) 및 비트수의 위치를 계산하거나 검출하여, 이득(K)의 실 이진수 소수점(P)의 위치 데이터(PT) 및 이의 비트수 데이터(n)를 버스(11)로 출력시킨다.
단계(S3)에서, ALU(2)에 의한 계산 또는 검출된 위치 데이터(PT) 및 비트수 데이터(n)가 공통 버스(5)를 각각 통해 레지스터(1a 및 1b)내에 저장된다.
단계(S4)에서, 레지스터(1a)내에 저장된 위치 데이터(PT)는 시프터(3) 내에 입력되게 독출된다. 시프터(3)는 시프팅이 없이도 버스(12)에 입력된 위치 데이터(PT)를 출력시킨다.
단계(S5)에서, 시프터(3)에 의해 버스(12)로 출력되는 위치 데이터(PT)는 공동 버스(5)를 통해 가상 소수점 레지스터(7)내에 저장된다. 저장된 위치 데이터(PT)는 필요에 따라 라운딩 회로에 의해 독출된다.
단계(S6)에서, 레지스터(1c 및 1b) 내에 저장된 이득(K) 및 비트수 데이터(n)는 시프터(3)로 독출된다. 이때, 시프터(3)는 비트수 데이터(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 및 15)를 통해 레지스터(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)는 비트수 데이터(n)와 동일한 비트만큼 라운드된 곱(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에 동일하거나 대응하는 구성 요소에는 동일한 참조 번호 또는 문자를 붙이고 이에 대한 설명을 생략한다.
그 다음, 제 3 실시예에 따른 산술 연산 시스템의 처리 시퀀스는 도 9를 참조하여 이하에 설명하고자 한다.
단계(S1)에서, 공통 버스(5)의 입력 터미널(16)을 통해 이러한 시스템 내에 입력되는 이득(K) 및 변수(x)는 입력 선택기(1f)의 각각의 작용으로 인해 공통 버스(5)를 통해 레지스터(1c 및 1d) 내에 저장된다.
단계(S2)에서, 레지스터(1c) 내에 저장된 이득(K)은 출력(1g)의 작용으로 인해 버스(9)로 독출된다. 레지스터(1c)의 내용은 이러한 단계 중에 변경되지 않은 상태로 유지된다. ALU(2)는 독출된 이득(K)을 수신하고, 시프터(3) 내로 시프트될 실 이진수 소수점(P) 및 비트수의 위치를 계산하거나 검출하여, 이득(K)의 실 이진수 소수점(P)의 위치 데이터(PT) 및 이의 비트수 데이터(n)를 버스(11)로 출력시킨다.
단계(S3)에서, ALU(2)에 의해 계산되거 검출된 위치 데이터(PT) 및 비트수 데이터(n)는 공통 버스(5)를 각각 통해 레지스터(1a 및 1b) 내에 저장된다.
단계(S4)에서, 레지스터(1a) 내에 저장된 위치 데이터(PT)는 시프터(3) 내에 입력되게 독출된다. 시프터(3)는 시프팅시키지 않고서도 버스(12)에 입력된 위치 데이터(PT)를 출력시킨다.
단계(S5)에서, 시프터(3)에 의해 버스(12)로 출력되는 위치 데이터(PT)는 공통 버스(5)를 통해 가상 소수점 레지스터(7) 내에 저장된다. 저장된 위치 데이터(PT)는 필요에 따라 라운딩 회로(6)에 의해 독출될 수 있다.
단계(S6)에서, 레지스터(1c 및 1d) 내에 저장된 이득(K) 및 비트수 데이터는 버스(9 및 10)를 통해 시프터(3)에 인가되게 독출된다. 이때, 시프터(3)는 비트수 데이터(n)와 동일한 특정 비트만큼 이득(K)을 좌측으로 시프트시켜, 정수치를 가지는 계수(k)를 버스(12)로 출력시킨다.
단계(S7)에서, 계수(k)는 버스(5)를 통해 레지스터(1c) 내에 저장된다. 그러므로, 레지스터(1c)의 내용은 이득(K)에서 계수(k)로 변경된다.
상술한 단계(S1 및 S7)는 제 1 실시예와 동일하다.
단계(S8)에서, 레지스터(1b) 내에 저장된 비트수 데이터(n) 및 레지스터(1d)내에 저장된 변수(x)는 버스(9 및 10)를 통해 시프터(3)에 인가되게 독출된다. 이때, 변수(x) 및 계수(k)의 실 소수점을 서로 정렬하기 위해, 시프터(3)는 비트수 데이터(n)와 동일한 특정 비트만큼 변수(x)를 좌측으로 시프트시켜, 실 소수점이 없는 변수(x)를 발생시킨다. 변수(X)는 버스(12)로 출력된다.
단계(S9)에서, 시프터(3)로부터 출력된 변수(X)는 버스(12 및 5)를 통해 레지스터(1d) 내에 저장된다. 레지스터(1d)의 내용은 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 실시예에서와 동일한 장점을 갖고 있다.
제 1 및 제 2 실시예와는 달리, 제 3 실시예에 따른 시스템 내에 추가 기능이 수행된다.
본 발명의 양호한 형태가 기재되었지만, 당해 분야에 숙련된 기술자라면 본 발명의 범위 내에서 본 발명을 여러 가지로 변경시킬 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 본 발명의 범위는 다음의 특허 청구의 범위에 의해서만 결정된다.

Claims (14)

  1. 실 소수점이 있는 제 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) 제 2 연산 결과를 출력시키기 위해 상기 제 1 레지스터 내에 저장된 상기 위치 데이터에 따라서 상기 제 1 연산 결과를 라운딩시키기 위한 라운더와,
    (i) 실 소수점이 없는 제 3 연산 결과를 출력시키기 위해 상기 비트수 데이터에 따라서 상기 특정 비트에 의해 상기 제 2 연산 결과를 우측으로 시프팅시키기 위한 제 2 시프터를 포함하고,
    상기 제 3 연산 결과는 상기 제 1 및 제 2 오퍼런드의 라운드된 연산 결과를 나타내는 산술 연산 시스템.
  2. 제 1 항에 있어서, 상기 정수 산술 연산자의 상기 출력이 상기 라운더의 입력에 접속되어, 상기 정수 산술 연산자로부터 출력된 상기 제 1 연산 결과가 상기 라운더 내에 직접 입력되는 것을 특징으로 하는 산술 연산 시스템.
  3. 제 1 항에 있어서,
    상기 정수 산술 연산자로부터 출력된 상기 제 2 연산 결과를 저장하기 위한 제 3 레지스터를 더 포함하고,
    상기 제 3 레지스터 내에 저장된 상기 제 2 연산 결과는 상기 라운더에 인가되는 산술 연산 시스템.
  4. 제 1 항에 있어서,
    상기 가상 소수점 지정자가 상기 제 1 연산 결과의 상기 가상 소수점의 상기 위치를 제공하는 제 2 위치 데이터를 출력시키고,
    상기 제 2 위치 데이터는 제 4 레지스터 내에 저장되는 산술 연산 시스템.
  5. 제 1 항에 있어서, 상기 실 소수점 검출기가 ALU로 형성되는 산술 연산 시스템.
  6. 제 1 항에 있어서, 상기 제 1 및 제 2 시프터가 단일 양방향성 시프터로 형성되는 산술 연산 시스템.
  7. 실 소수점이 있는 제 1 오퍼런드 및 실 소수점이 없는 제 2 오퍼런드를 산술적으로 연산하기 위한 산술 연산 시스템으로서,
    (a) 위치 데이터 및 비트수 데이터를 출력시키기 위해 상기 제 1 오퍼런드의 상기 실 소수점의 위치를 검출하기 위한 ALU와,
    (b) 상기 제 1 위치 데이터를 지정하기 위한 제 1 레지스터와,
    (c) 상기 비트수 데이터를 저장하기 위한 제 2 레지스터와,
    (d) 실 소수점이 없는 제 3 오퍼런드를 출력시키기 위해 상기 제 2 레지스터내에 저장된 상기 비트수 데이터에 따라서 특정 비트만큼 상기 제 1 오퍼런드를 좌측으로 시프트시키기 위한 양방향성 시프터와,
    (e) 제 1 승산 결과를 출력시키기 위해 상기 제 2 및 제 3 오퍼런드를 승산하기 위한 승산기와,
    (f) 상기 제 1 연산 결과의 가상 소수점의 제 2 위치 데이터를 저장하기 위한 제 3 레지스터와,
    (g) 제 2 승산 결과를 출력시키기 위해 상기 제 3 레지스터 내에 저장된 상기 제 2 위치 데이터에 따라서 상기 제 1 승산 결과를 라운딩시키기 위한 라운딩 회로를 포함하고,
    상기 양방향성 시프터는 실 소수점이 없는 제 3 승산 결과를 출력시키기 위해 상기 제 1 승산 결과의 상기 가상 소수점의 상기 제 2 위치 데이터에 따라서 특정 비트만큼 상기 제 2 승산 결과를 우측으로 시프트시키고,
    상기 제 3 연산 결과는 상기 제 1 및 제 2 오퍼런드의 라운드된 승산 결과를 나타내는 산술 연산 시스템.
  8. 제 7 항에 있어서, 상기 승산기의 상기 출력은 상기 라운딩 회로의 입력에 접속되어, 상기 승산기로부터 출력된 상기 제 2 승산 결과가 상기 라운딩 회로에 직접 인가되는 것을 특징으로 하는 산술 연산 시스템.
  9. 제 7 항에 있어서,
    상기 제 2 승산 결과를 저장하기 위한 제 4 레지스터를 더 포함하고,
    상기 승산기로부터 출력된 상기 제 2 승산 결과는 상기 제 4 레지스터를 통해 상기 라운딩 회로에 인가되는 산술 연산 시스템.
  10. 제 7 항에 있어서, 상기 제 1 및 제 2 레지스터가 제 1 하드웨어 장치 내에 제공되고, 상기 제 3 레지스터가 상기 제 1 하드웨어 장치와 무관하게 제어되는 제 2 하드웨어 장치에 의해 형성되는 산술 연산 시스템.
  11. 실 소수점이 있는 제 1 오퍼런드 및 실 소수점이 없는 제 2 오퍼런드를 산술적으로 연산하기 위한 산술 연산 시스템으로서,
    (a) 위치 데이터 및 비트수 데이터를 출력시키기 위해 상기 제 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 연산 결과를 라운딩시키기 위한 라운딩 회로를 포함하고,
    상기 양방향성 시프터는 실 소수점이 없는 제 3 연산 결과를 출력시키기 위해 상기 제 1 연산 결과의 상기 가상 소수점의 상기 제 2 위치 데이터에 따라서 특정 비트만큼 상기 제 2 연산 결과를 우측으로 시프트시키고,
    상기 제 3 연산 결과는 상기 제 1 및 제 2 오퍼런드의 라운드된 연산 결과를 나타내는 산술 연산 시스템.
  12. 제 11 항에 있어서,
    상기 제 2 연산 결과를 저장하기 위한 제 4 레지스터를 더 포함하고,
    상기 ALU로부터 출력된 상기 제 2 연산 결과는 상기 제 4 레지스터를 통해 상기 라운딩 회로에 인가되는 산술 연산 시스템.
  13. 제 11 항에 있어서, 상기 제 1 및 제 2 레지스터는 제 1 하드웨어 장치 내에 제공되고, 상기 제 3 레지스터는 상기 제 1 하드웨어 장치와 무관하게 제어되는 제 2 하드웨어 장치로 형성되는 것을 특징으로 하는 산술 연산 시스템.
  14. 실 소수점이 있는 제 1 오퍼런드(K) 및 실 소수점이 없는 제 2 오퍼런드(x)를 산술적으로 연산하는 산술 연산 시스템으로서,
    상기 제 1 오퍼런드의 상기 실 소수점의 위치가 제 1 위치 데이터(PT) 및 비트수 데이터(n)를 출력시키디록 검출되는데, 상기 위치 데이터 및 상기 비트수 데이터가 제 1 및 제 2 레지스터(1a, 1b)내에 각각 저장되고,
    상기 제 1 오퍼런드가 실 소수점이 없는 제 3 오퍼런드(k)를 출력시키기 위해 상기 제 2 레지스터 내에 저장된 상기 비트수 데이터에 따라서 특정 비트만큼 좌축으로 시프트되며,
    상기 제 2 및 제 3 오퍼런드가 제 1 연산 결과(Y')를 출력시키기 위해 정수 산술 연산을 하고,
    상기 제 1 연산 결과가 제 2 연산 결과(Y)를 출력시키기 위해 상기 제 1 레지스터 내에 저장된 상기 위치 데이터에 따라서 라운드되며,
    상기 제 2 연산 결과가 실 소수점이 있는 제 3 연산 결과(y)를 출력시키기 위해 상기 제 2 레지스터 내에 저장된 상기 비트수 데이터에 따라서 상기 특정 비트만큼 우측으로 시프트되고,
    상기 제 3 연산 결과가 상기 제 1 및 제 2 오퍼런드의 최종 연산 결과를 나타내는 산술 연산 시스템에 있어서,
    상기 제 1 오퍼런드가 제 1 시프터에 의해 좌측으로 시프트되고, 상기 제 2 연산 결과가 제 2 시프터에 의해 우측으로 시프트되고,
    상기 제 연산 결과가 라운더에 의해 라운드되는 것을 특징으로 하는 산술 연산 시스템.
KR1019970071119A 1996-12-20 1997-12-20 산술연산시스템 KR100297312B1 (ko)

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 true KR19980064405A (ko) 1998-10-07
KR100297312B1 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)

* Cited by examiner, † Cited by third party
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 富士通株式会社 演算処理装置及びその制御方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
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 不織布の製造方法及び装置
JPH0473249U (ko) * 1990-10-29 1992-06-26
US5128890A (en) * 1991-05-06 1992-07-07 Motorola, Inc. Apparatus for performing multiplications with reduced power and a method therefor
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 日本電気株式会社 信号処理プロセッサ

Also Published As

Publication number Publication date
US6014683A (en) 2000-01-11
KR100297312B1 (ko) 2001-10-24
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
US5161117A (en) Floating point conversion device and method
US6282554B1 (en) Method and apparatus for floating point operations and format conversion operations
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
EP1137980B1 (en) Arithmetic operations in a data processing system
KR100297312B1 (ko) 산술연산시스템
US6205462B1 (en) Digital multiply-accumulate circuit that can operate on both integer and floating point numbers simultaneously
US20070156803A1 (en) Overflow detection and clamping with parallel operand processing for fixed-point multipliers
EP0869432B1 (en) Multiplication method and multiplication circuit
US4899302A (en) Arithmetic unit for inverse trigonometric function
EP0416308A2 (en) Rectangular array signed digit multiplier
US5903486A (en) Device for digitally carrying out a division operation
GB2549153B (en) Apparatus and method for supporting a conversion instruction
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
US6615228B1 (en) Selection based rounding system and method for floating point operations
US6094669A (en) Circuit and method for determining overflow in signed division
JP2645422B2 (ja) 浮動小数点演算処理装置
JPS62197868A (ja) パイプライン構成の直線近似変換回路
US7237000B2 (en) Speed of execution of a conditional subtract instruction and increasing the range of operands over which the instruction would be performed correctly
JPH10333883A (ja) 乗算方法および乗算回路
KR100623604B1 (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