KR100236250B1 - 고속 수치 프로세서 - Google Patents

고속 수치 프로세서 Download PDF

Info

Publication number
KR100236250B1
KR100236250B1 KR1019900005849A KR900005849A KR100236250B1 KR 100236250 B1 KR100236250 B1 KR 100236250B1 KR 1019900005849 A KR1019900005849 A KR 1019900005849A KR 900005849 A KR900005849 A KR 900005849A KR 100236250 B1 KR100236250 B1 KR 100236250B1
Authority
KR
South Korea
Prior art keywords
circuit
processor
array
product
multiplier
Prior art date
Application number
KR1019900005849A
Other languages
English (en)
Other versions
KR900016858A (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 KR900016858A publication Critical patent/KR900016858A/ko
Application granted granted Critical
Publication of KR100236250B1 publication Critical patent/KR100236250B1/ko

Links

Images

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
    • 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5324Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers
    • 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/52Multiplying; Dividing
    • G06F7/535Dividing 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/544Methods 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 for evaluating functions by calculation
    • G06F7/552Powers or roots, e.g. Pythagorean sums
    • G06F7/5525Roots or inverse roots of single operands
    • 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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/382Reconfigurable for different fixed word lengths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5355Using iterative approximation not using digit recurrence, e.g. Newton Raphson or Goldschmidt

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)

Abstract

90년 9월 1일이전 출원건.

Description

고속 수치 프로세서
제1도는 본 발명의 프로세서 구조의 도면.
제2도는 본 발명에서 사용되는 승산기 회로의 기능적인 블럭도.
* 도면의 주요부분에 대한 부호의 설명
12 : 디코더 16,100 : 오퍼랜드 루팅 회로
18 : 논리회로 20,118 : 스위칭 회로
28 : 시드 생성기 38 : 승산기
44,112A, 112B,114A,114B,116A,116B,120 : 가산기
46 : 라운더 회로 48 : Q 레지스터
50 : G 레지스터 52 : Q 라운더
56 : G 라운드 레지스터 60 : F 레지스터
62 : F 생성기 108 A-D, 110 A-D : 부분곱 생성기
본 발명은 일반적으로 정보 처리 시스템(information handling system)에 관한 것으로, 특히 고속으로 제산 및 제곱근 계산을 실행하기 위한 프로세서에 관한 것이다.
고속 연산은, 컴퓨터, 신호 프로세서, 및 프로세스 제어기와 같은 많은 정보 처리 시스템 내에서 중요한 설계 요인이다. 이 시스템들은 고속 계산을 제공하도록 고도의 병렬 설계를 사용하는 대규모 집적회로(large scale integrated circuit)에 상당히 의존하고 있다. 병렬 기술을 사용하여 승산을 실행하는 장치는 광범위하게 사용되고 있지만, 제산 및 제곱근 기능을 실행하는 장치는 일반적으로 본질상 직렬로 이루어지므로 저속으로 작동된다.
가산, 감산 또는 승산과 달리 제산 및 제곱근 계산은 반복 프로세스이다. 제산 또는 제곱근 기능을 수행하기 위한 장치 또는 회로는 몫(quotient) 또는 근값에 도달하기 위해 일련의 단계 또는 클럭 사이클(clock cycle)을 갖는다. 정보 처리 시스템의 실행 시간 및 정확성은 제산 및 제곱근 기능을 수행하기 위해 사용된 기술에 의해 상당히 영향을 받는다. 이러한 한 공지된 기술은 수렴 알고리즘(convergence algorithm)을 사용하는 것에 관련되어 있다.
제산에 있어서, 수렴 알고리즘은 피젯수(dividend) 및 제수(divisor)를 분수로서 처리한다. 제수에 대한 임의의 함수에 의한 제수(즉, 분수의 분모)의 반복된 승산이 분모를 1로 극한시키면, 이때 동일한 함수에 의한 피제수의 반복된 승산은 그것을 몫으로 극한시킨다. 제곱근 계산에 있어서, 제곱근이 판단되어질 수를 분자 및 분모가 동일한 분수로 처리한다. 소정의 함수에 의한 분수의 반복된 승산이 분모를 1로 극한시키고 분자를 제곱근으로 극한시킨다.
정보처리 시스템에서, 제산 및 제곱근은 수렴 알고리즘에 따라 동작하는 다른 회로와 함께 고속 승산기를 사용함으로써 수행될 수 있다. 전형적인 수렴 알고리즘은 결과에 도달하도록 반복되는 승산 스텝을 요구한다. 결과적으로, 종래 기술의 고속 승산기는 수렴 알고리즘의 각 기간 동안 최소한 3개의 클럭 사이클을 요구한다. 그러므로, 제산 및 제곱근 계산은 다른 계산에 비해 상당한 양의 시간을 요구한다.
고속의 정보처리 시스템에 대한 욕구 때문에, 고속으로 제산 및 제곱근 계산을 수행할 수 있는 프로세서를 제공하려는 필요성이 야기되었다.
본 발명에 따라, 고속 제산 및 제곱근 계산의 수행에 관련된 단점 및 문제점을 실제로 제거하거나 방지하는 프로세서가 제공된다. 실시예에 의하면, 4개의 클럭 사이클 동안 제산을 수행하고 6개의 클럭 사이클동안 제곱근 계산을 수행하는 고속 수치 프로세서가 제공된다.
본 발명의 프로세서는 2개 수의 곱(product)을 계산하기 위한 승산기를 갖고 있다. 승산기를 제1어레이 및 제2어레이로 재구성하기 위해 논리 회로가 제공된다. 승산기의 제1 및 제2어레이는 곱을 계산한다. 오퍼랜드 루팅 회로(operand routing circuitry)는 하나의 오퍼랜드 세트를 제1어레이로, 및 다른 하나의 오퍼랜드 세트를 제2어레이로 전송하기 위해 제공된다. 레지스터는 곱을 특정한 횟수 또는 반복횟수만큼 오퍼랜드 루팅 회로에 다시 보내기 위해 제공된다. 최종적으로, 선정된 횟수의 반복이 완료된 후 최종 결과를 산출하도록 곱을 결합하기 위해 가산기 회로가 제공된다.
단일 또는 이중 어레이로 구성될 수 있는 승산기를 갖고 있는 프로세서의 기술적 장점은 제산 및 제곱근 계산이 수렴 알고리즘을 사용하여 수행될 수 있다는 것이다. 승산기의 2개의 어레이는 제산 및 제곱근의 계산을 보다 적은 수의 클럭 사이클과 병행하여 수행하여 보다 고속으로 수행되도록 한다.
제2실시예에서, 본 발명에 따른 프로세서는 다수의 연산 기능을 수행한다. 이 프로세스는 다수의 연산 기능들 중 수행될 하나의 연산 기능을 결정하기 위한 디코더 회로를 포함한다. 디코더 회로는 선택된 연산 기능에 적합한 제어신호를 전송한다. 두 수의 곱을 계산하기 위해 승산 회로가 제공된다. 논리 회로는, 제어 신호에 응답하여 제산 또는 제곱근 계산이 수행될 경우에 승산기 회로를 제1어레이 및 제2어레이로 구성한다. 제1 및 제2어레이는 독립적으로 곱을 계산한다. 디코더 회로의 제어 신호에 또한 응답하는 오퍼랜드 루팅 회로는 제어 신호에 따라 하나의 오퍼랜드 세트를 제1어레이로 전송하고 다른 하나의 오퍼랜드 세트를 제2어레이로 전송한다. 가산기 회로는 결과를 산출하도록 곱을 결합하기 위해 제공된다. 제어 신호에 응답하는 스위칭 회로는 최종 가산기 회로에 곱을 유도하기 위해 제공된다. 스위칭 회로는 제어 신호에 따라 입력 곱을 정렬하거나 0으로 할 수 있다.
단일 또는 이중 어레이로 구성될 수 있는 승산기를 갖고 있는 프로세서의 또 하나의 장점은 1개의 승산기가 상이한 계산을 수행하도록 사용될 수 있다는 것이다. 종래의 승산에서는, 승산기가 단일 어레이 모드로 사용되고, 제산 또는 제곱근 계산에 대해서는, 승산기가 이중 어레이 모드로 구성된다. 2개의 모드들 중 1개의 모드를 선택하기 위한 디코더 회로를 제공함으로써 단일 승산기를 효율적으로 사용할 수 있다.
본 명세서는 본 발명 및 그 장점을 완전하게 이해하기 위해 참조 부호를 병기한 첨부된 도면을 참조한 다음의 설명으로부터 명확히 파악될 것이다.
본 발명의 프로세서는 2개의 수렴 알고리즘, 즉 제산을 수행하기 위한 하나의 알고리즘과 제곱근 계산을 수행하기 위한 다른 알고리즘을 이용한다. 제산시에, X÷Y = Q이고, 여기에서 X는 피제수이고 Y는 제수이며 Q는 몫이다. 방정식은 또한 X/Y = Q형태로 쓰여진다. 제산 알고리즘의 제1스텝에서, X 및 Y는 Y를 1로 유도하기 위해 선택된 시드 값(seed value) S에 의해 모두 승산된다. 제1스텝 후, X * S= Q 및 Y * S = G이다. 다음 스텝은 함수 F에 의해 Q와 G를 승산하는데, 여기에서, F=2-G이다. F * Q의 결과는 Q의 이전 값(old value)을 치환하고 F * G의 결과는 G의 이전 값을 치환한다. F * G가 1에 접근하고 F * Q가 X/Y의 몫에 접근하도록 선정된 횟수만큼 마지막 스텝을 반복한다.
제곱근 계산시에, 수 A의 제곱근 R은 R * R = A가 되는 값이다. 수 A의 제곱근값 R을 계산하기 위한 수렴 알고리즘에서, 방정식은 A/A 형태로 쓰여진다. 수렴 알고리즘의 제1스텝에서, 분자 A는 시드값 S에 의해 승산되고 분모 A 역시 동일한 시드값 S에 의해 두 번 승산되어 A * S = Q 및 A * S * S = G가 되도록 한다. 다음 스텝에서, Q는 함수 F에 의해 승산되는데, 여기에서 F = (3-G)/2이고, G는 F 함수에 의해 두번 승산된다. F * Q의 결과는 이전 Q값을 치환하고 F * F * G의 결과는 이전값 G를 치환한다. F * Q가 근값에 접근하고 F * F * G가 1에 접근하도록 선정된 횟수만큼 마지막 스텝을 반복한다.
제1도를 참조하면, 디코더(12)는 승산, 제산 또는 제곱근과 같은, 프로세서에 의해 수행될 수치계산을 결정하는 논리 유니트(도시되어 있지 않음)로부터 명령을 수신한다. 이 명령에 응답하여, 디코더(12)는 출력(14)상의 제어신호 CS를 전송하는데, 여기에는 수행될 상이한 종류의 계산들 각각에 대한 상이한 제어신호가 있다.
제어 신호 CS는 오퍼랜드 루팅 회로(16), 논리 회로(18), 스위칭 회로(20) 및 시드 생성기(28)로 전송된다. 제어 신호는 승산, 제산 또는 제곱근과 같은 특정한 계산을 수행하도록 회로에게 명령한다. 명령은 전형적으로 본 분야에 숙련된 기술자에게 공지된 프로그램 기억식 컴퓨터 또는 그밖의 장치에 의해 발생된다.
오퍼랜드 루팅 회로(16)은 입력 라인(22 및 24)상의 오퍼랜드 N 및 D를 수신하고 입력라인(26)상의 시드 생성기(28)로부터 시드값 S를 수신하며 승산기(38)에 접속된 적당한 출력 라인들에 그 값들을 전송한다. 오퍼랜드 루팅 회로(16)은 출력라인(30 및 32)상에 오퍼랜드 N 및 시드 값 S를 전송하고 출력라인(34 및 36)상에 오퍼랜드 D 및 시드 값 S를 전송한다. 오퍼랜드 N은 분수의 분자를 나타내고 오퍼랜드 D는 분수의 분모를 나타낸다. 계산 대상이 되는 수는 정규화되고 본 분야에 숙련된 기술자에게 공지된 N/D 형태의 분수 표기법으로 표시된다.
승산기(38)의 논리 회로(18)은 디코더(12)로부터 제어 신호 CS를 수신하고, 이 신호가 제산 또는 제곱근 계산을 요구하는 경우에, 승산기(38)을 L 및 R의 라벨이 붙은 2개의 어레이로 재구성한다. 오퍼랜드 루팅 회로(16)은 L어레이에 오퍼랜드 N 및 스드 값 S를 전송하고, R 어레이에 오퍼랜드 D 및 시드 값 S를 전송한다. 어레이 L의 출력은 라인(40)을 따라 스위칭 회로(20)에 전송되고, 승산기(38)의 어레이 R의 출력은 라인(42)를 따라 스위칭 회로(20)에 전송된다.
디코더(12)로부터의 제어 신호 CS에 응답하여, 스위칭 회로(20)은 수행될 계산 형태에 따른 선정된 경로를 따라 승산기 어레이 L 및 R의 출력값을 전송한다. 승산기(38)을 통해 선정된 수만큼 패스한 후, 스위칭 회로(20)은 가산기(44)에 승산기(38)의 어레이 L 및 R의 출력을 전송한다. 가산기(44)의 출력은 본 분야에 숙력된 기술자에게 공지된 바와 같은 라운딩(rounding) 기능을 수행하는 라운더 회로(46)에 전송된다.
Q 레지스터(48) 및 G 레지스터(50)은 스위칭 회로(20)과 관련된다. Q 및 G레지스터는 승산기(38)로부터 스위칭 회로(28)을 통해 중간 결과를 수신하고 오퍼랜드 루팅 회로(16)에 다시 이 중간 결과를 제공한다. 각각의 Q 및 R 레지스터와 관련된 라운딩 회로는 결과의 정밀도를 증가시키기 위해 제공된다. Q 레지스터(48)로 부터의 출력을 수신하는 Q 라운더(52)는 라운딩 기능을 수행하고 라인(54)를 따라 오퍼랜드 루팅 회로(16)에 결과를 전송한다. G 레지스터(50)으로부터 출력을 수신하는 G 라운드 레지스터(56)은 라운딩 기능을 수행하고 라인(58)을 따라 오퍼랜드 루팅 회로(16)에 출력을 전송한다.
또한, F 레지스터(60) 및 F 생성기(62)는 G 레지스터(50)에 관련되어 있다. 이 레지스터들은 이후에 더 자세히 설명되는 제곱근 기능과 관련된 소정 단계중에 사용된다.
제2도를 참조하여, 본 발명에 사용되는 승산기 회로가 보다 완전히 설명될 것이다. 본 분야에 숙련된 기술자들에게 공지된 바와 같은 승산은 가산기 트리(tree)를 사용하여 수행될 수 있다. 가산기 트리의 구조는 공지되어 있다. 이러한 장치는 본 출원과 동일한 양수인이 소유한 출원 제149,779호에 설명되어 있다. 본 발명은 이 승산기를 2개의 분리 어레이로 재구성함으로써 특허 출원 제149,779호에 설명된 승산기를 수정한 것이다.
오퍼랜드 루팅 회로(100)은 오퍼랜드 N(이제부터는 피승수라 함)을 버스(102)에 전송한다. 오퍼랜드 D(이제부터 피승수 D)는 버스(104)로 전송된다. 시드값 S는 오퍼랜드 루팅 회로(100)에 의해 버스(106)에 전송된다. 시드 값 S는 이제부터 승수 S라고 하겠다. 버스(102)는 부분곱 생성기(partial product generator, 108 A-D)의 배정밀도 포트(full precision port)에 접속되고 버스(104)는 부분곱 생성기(110 A-D)의 제2세트의 배정밀 포트에 접속된다. 버스(106)은 부분곱 생성기(108 A-D 및 110 A-D)의 양 세트의 반정밀(half precision) 포트에 접속된다.
부분곱 생성기(108 A 및 108 B)는 제1레벨 가산기(112A)에 접속된다. 부분곱 생성기(108 C 및 108 D)는 제1레벨 가산기(112 B)에 접속된다. 부분곱 생성기(110 A 및 110 B)는 제1레벨 가산기(114 A)에 접속되고 부분곱 생성기(110 C 및 110 D)는 제1레벨 가산기(114 B)에 접속된다. 제1레벨 가산기의 출력들은 쌍으로 되고 제2레벨 가산기(116 A 및 116 B)에 접속된다. 제1레벨 가산기(112 A 및 112 B)의 출력들은 제2레벨 가산기(116 A)의 입력들에 접속되고 제1레벨 가산기 (114 A 및 114 B)의 출력들은 제2레벨 가산기(116 B)의 입력에 접속된다. 제2레벨 가산기(116 A 및 116 B)의 출력은 스위칭 회로(118)에 전송되어, 최종 가산기(120)에 전송된다.
전술한 바와 같이, 2-어레이 승산기는 한 쌍의 수 또는 2쌍의 수를 승산하기 위해 구성될 수 있다. 제1모드에서, 승산기(38)은 단일 어레이로서 구성되고, N 값 및 D 값은 동일하고 승산기는 특허 출원 제149,779호에 설명된 방식으로 작동된다. 제2모드에서, 승산기(38)은 병렬로 동작을 수행하기 위한 2개의 어레이로 나누어진다.
본 발명에 따라 생성된 장치의 동작을 이제부터 설명하겠다. 각 동작중에, 수행될 계산의 형태를 나타내는 제어 신호 CS는 디코더(12)에 의해 발생된다. 본 실시예에서, 승산, 제산 및 제곱근을 나타내는 3개의 제어 신호가 있다. 수신된 제어 신호에 응답하여, 오퍼랜드 루팅 회로(16), 논리 회로(18) 및 스위칭 회로(20)은 승산기(38)을 통해 데이타 경로 및 반복 횟수를 결정한다.
승산
클럭 사이클 0 : 오퍼랜드 N 및 D는 승산기(38)에 입력된다. 라인 (30 내지 36)은 승수 오퍼랜드를 승산기(38)의 L 어레이 및 R 어레이 상의 4개의 포트로 전송하기 위해 오퍼랜드 루팅 회로(16)에 의해 사용된다. 오퍼랜드 N은 승산기(38)의 L 어레이의 완전 정밀 포트에 전송되고, 오퍼랜드 D는 승산기(38)의 R 어레이의 반정밀 포트에 전송된다. N과 D의 곱은 스위칭 회로(20)을 통하여 가산기(44)에 전달된다.
클럭 사이클 1 : 가산기(44)내의 수는 본 분야에 숙련된 기술자에게 공지된 바와 같이 라운더(46)에 전달되고 라운드된다(rounded). 이 클럭 사이클에서, 오퍼랜드 루팅 회로(16) 및 승산기(38)은 또다른 동작을 수행할 수 있다.
제산
클럭 사이클 0 : 오퍼랜드 N 및 D는 프로세서의 오퍼랜드 루팅 회로(16)에 입력된다. 룩업 테이블로 될 수 있는 시드 생성기(28)로부터 D의 일부를 인덱스로 사용하여 시드 값 S를 검색한다. 디코더(12)로부터의 제어 신호 CS는 N과 S의 부분곱, 및 D와 S의 부분곱을 산출하기 위해 오퍼랜드 루팅 회로(16) 및 승산기(38)에 명령한다. 승산기(38)는 L 및 R 어레이로 재구성된다. N은 버스(102)상에서 어레이 L의 배정밀 포트에 전송되고 D는 버스(104)상에서 어레이 R의 배정밀 포트에 전송된다. S 값은 버스(106)상에서 승산기(38)의 반정밀 포트에 전송된다. N과 S의 곱은 Q 레지스터(48)내에 기억되고 D와 S의 곱은 클럭 사이클의 종료시에 G 레지스터(50)내에 기억된다.
클럭 사이클 1 : F는 클럭 사이클 0의 종료시에 G 레지스터(50) 내에 기억된 값으로부터 계산된다. 승산기(38)은 Q와 F의 곱 및 G와 F의 곱을 산출하기 위해 2개의 어레이 모드로 구성된 채로 유지되는데, 양 승산에서, F는 버스(106)에 의해 반정밀 포트에 접속된다. G와 F의 곱은 G 레지스터(50)에 다시 전송되고, Q와 F의 곱은 Q 레지스터(48)에 다시 전송된다.
클럭 사이클 2 : F는 클럭 사이클 1의 종료시에 G 레지스터(50)내에 기억된 값으로부터 계산된다. 승산기(38)은 Q와 F의 곱을 산출하기 위해서 단일 어레이 모드로 재구성된다. F와 Q의 곱은 스위칭 회로(20)을 통하여 가산기(44)에 재구성된다. 가산기(44)의 출력은 라운더(46)에 전송된다. 라운더(46)내에 저장된 수는 다음 클럭 사이클에서 라운드될 몫의 추정값이다.
클럭 사이클 3 : 라운더(46)내의 수는 본 분야에 숙련된 기술자에게 공지된 바와 같이 라운드된다. 이 클럭 사이클에서, 오퍼랜드 루팅 회로(16) 및 승산기(38)은 다른 동작을 개시할 수 있다.
제곱근
클럭 사이클 0 : 오퍼랜드 N 및 D는 프로세서의 오퍼랜드 루팅 회로(16)에 입력된다. 룩업 테이블이 될 수 있는 시드 생성기(28)로부터 D의 일부를 인덱스로 사용하여 시드 값 S를 검색한다. 승산기(38)은 N과 S의 부분곱, 및 D와 S의 부분곱을 산출하기 위해 2개의 어레이로 구성된다. N은 버스(102)상에서 어레이 L의 완전 정밀 포트에 전송되고 D는 버스(104)상에서 어레이 R의 배정밀 포트에 전송된다. S 값은 버스(106)의 반정밀 포트에 전송된다. 결과는 스위칭 회로(20)을 통하여 전송되어 N과 S의 곱은 Q 레지스터(48)에 저장되고 D와 S의 곱은 클럭 사이클의 종료시에 G 레지스터(50)내에 저장된다.
클럭 사이클 1 : Q 레지스터(48)내의 값은 이 클럭 사이클중에 수정되지 않는다. 승산기(38)은 G 레지스터(50)으로부터의 G 값 및 시드 값 S상에서 동작하기 위해서 단일 어레이로 재구성된다. S와 G의 곱은 G 레지스터(50)에 다시 전송된다.
클럭 사이클 2 : F는 클럭 사이클 1의 종료시에 G 레지스터(50)내에 저장된 값으로부터 계산된다. 승산기(38)은 Q와 F의 부분곱 및 G와 F의 부분곱을 산출하기 위해 2개의 어레이로 재구성된다. F 및 Q의 곱은 G 레지스터(50)에 다시 전송된다. 클럭 사이클 2의 개시시에 계산된 F 값은 F 레지스터(60)내에 기억된다.
클럭 사이클 3 : Q 레지스터(48)내의 값은 이 클럭 사이클 중에 수정되지 않는다. 승산기(38)은 G 레지스터(50)으로부터의 값, 및 F 레지스터(60)내에 기억된 F값 상에서 동작하기 위해서 단일 어레이로 재구성된다. F와 G의 곱은 G 레지스터(50)에 다시 전송된다.
클럭 사이클 4 : F는 클럭 사이클 1의 종료시에 G 레지스터(50)내에 기억된 값으로부터 계산된다. 승산기(38)은 Q와 F의 곱을 산출하기 위해서 단일 어레이 모드로 유지된다. F와 Q의 곱은 스위칭 회로(20)을 통하여 가산기(44)에 전송된다. 가산기(44)의 출력은 라운더(46)에 전송된다.
클럭 사이클 5 : 라운더(46)내의 수는 본 분야에 숙련된 기술자에게 공지된 바와 같이 라운드된다. 이 클럭 사이클에서, 오퍼랜드 루팅 회로(16) 및 승산기(38)는 사용되지 않으므로 또다른 동작을 개시할 수 있다.
전술한 설명으로부터, 본 발명에 따르면 단일 또는 이중 스테이지 모드에서 동작동되도록 구성될 수 있는 단일 승산기를 갖고 있는 수치 프로세서가 제공된다는 것을 본 분야에 숙련된 기술자들은 알 수 있다. 이중 어레이 승산기를 사용하여 종래에 가능했던것 보다 고도의 병행성 및 고속으로 제산 및 제곱근 계산을 수행한다. 본 발명이 특히 양호한 실시예를 참조하여 도시되고 기술되었지만, 본 분야에 숙련된 기술자들은 본 발명의 원리 및 범위를 벗어나지 않고 여러가지 다른 변경을 할 수 있다.

Claims (14)

  1. 다수의 연산 기능을 수행하기 위한 프로세서에 있어서, 2개 이상의 수의 곱을 계산하기 위한 승산기 회로, 상기 승산기 회로를 제1어레이 및 제2어레이 - 상기 제1어레이 및 제2어레이는 곱을 계산함-로 재구성하기 위한 논리 회로, 하나의 수 세트(one set of numbers)를 상기 제1어레이에 전송하고 다른 하나의수 세트 (another set of numbers)를 상기 제2어레이에 전송하기 위한 오퍼랜드 루팅 회로(operand routing circuitry), 시드값 수(seed value numbers)를 발생시키고 상기 시드값 수를 상기 오퍼랜드 루팅 회로에 전송하기 위한 회로, 선정된 횟수만큼 반복하여 상기 곱은 상기 오퍼랜드 루팅 회로에 전송하기 위한 레지스터(registers), 및 상기 선정된 횟수만큼 반복한 후에 결과를 산출하기 위해 상기 곱을 결합하기 위한 가산기 회로를 포함하는 프로세서.
  2. 제1항에 있어서, 상기 승산기를 가산기 트리(adder tree)인 프로세서.
  3. 제1항에 있어서, 상기 레지스터는 중간 결과를 저장하기 위한 연관된 중간 저장 회로(associated intermediate storage circuits)를 갖는 프로세서.
  4. 제1항에 있어서, 상기 선정된 반복 횟수는 알고리즘적으로(algorithmically) 판단되는 프로세서.
  5. 제1항에 있어서, 상기 결과를 라운딩(rounding) 하기 위해 상기 가산기 회로에 접속되는 라운딩 회로를 더 포함하는 프로세서.
  6. 제1항에 있어서, 수행되는 상기 연산 기능중 하나는 제산인 프로세서.
  7. 제1항에 있어서, 수행되는 상기 연산 기능중 하나는 제곱근 계산인 프로세서.
  8. 다수의 연산 기능을 수행하기 위한 프로세서에 있어서, 상기 연산기능중 어떠한 기능이 수행될 것인지를 결정하고 수행될 연산 기능을 표시하는 제어 신호를 전송하기 위한 디코더 회로, 2개 이상의 수의 곱을 계산하기 위한 승산기 회로, 상기 제어 신호에 응답하여 상기 승산기를 제1어레이 및 제2어레이 - 상기 제1어레이 및 제2어레이는 개별적으로 곱을 계산함-로 재구성하기 위한 논리 회로, 상기 제어 신호에 응답하여, 상기 제어신호에 따라 하나의 수 세트를 상기 제1어레이에 전송하고 다른 하나의 수 세트를 상기 제2어레이에 전송하기 위한 오퍼랜드 루팅 회로, 시드값 수를 발생시키고 상기 시드값 수를 상기 오퍼랜드 루팅 회로에 전송하기 위한 발생기 회로, 선정된 횟수만큼 반복하여 상기 곱은 상기 오퍼랜드 루팅 회로에 전송하기 위한 레지스터 결과를 산출하기 위해 상기 곱을 결합하기 위한 가산기 회로, 및 상기 제어 신호에 응답하여, 상기 제어신호에 따라 상기 가산기 회로에 상기 곱을 전송하기 위한 스위칭 회로를 포함하는 프로세서.
  9. 제9항에 있어서, 상기 승산기는 가산기 트리인 프로세서.
  10. 제9항에 있어서, 상기 레지스터는 중간 결과를 저장하기 위해 연관된 중간 저장 회로를 갖는 프로세서.
  11. 제9항에 있어서, 상기 발생기 회로는 랜덤 액세스 메모리를 포함하는 프로세서.
  12. 제9항에 있어서, 상기 결과를 라운딩하기 위해 상기 가산기 회로에 접속되는 라운딩 회로를 더 포함하는 프로세서.
  13. 제9항에 있어서, 수행되는 상기 연산 기능중 하나는 제산인 프로세서.
  14. 제9항에 있어서, 수행되는 상기 연산 기능중 중하나는 제곱근 계산인 프로세서.
KR1019900005849A 1989-04-26 1990-04-26 고속 수치 프로세서 KR100236250B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US343465 1989-04-26
US07/343,465 US5047973A (en) 1989-04-26 1989-04-26 High speed numerical processor for performing a plurality of numeric functions

Publications (2)

Publication Number Publication Date
KR900016858A KR900016858A (ko) 1990-11-14
KR100236250B1 true KR100236250B1 (ko) 1999-12-15

Family

ID=23346232

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019900005849A KR100236250B1 (ko) 1989-04-26 1990-04-26 고속 수치 프로세서

Country Status (6)

Country Link
US (1) US5047973A (ko)
EP (1) EP0395240B1 (ko)
JP (1) JP2902045B2 (ko)
KR (1) KR100236250B1 (ko)
CN (1) CN1020170C (ko)
DE (1) DE69030932T2 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68928376T2 (de) * 1988-11-04 1998-04-02 Hitachi Ltd Vorrichtung zum multiplizieren, teilen und ziehen der quadratwurzel
US5184318A (en) * 1989-09-05 1993-02-02 Cyrix Corporation Rectangular array signed digit multiplier
US5245564A (en) * 1991-05-10 1993-09-14 Weitek Corporation Apparatus for multiplying operands
EP0546977A3 (en) * 1991-12-13 1994-10-19 Ibm Method and apparatus for solving numerical problems that use a plurality of processing elements operating in parallel
US5341321A (en) * 1993-05-05 1994-08-23 Hewlett-Packard Company Floating point arithmetic unit using modified Newton-Raphson technique for division and square root
JPH0721012A (ja) * 1993-07-02 1995-01-24 Fujitsu Ltd 割り算器
RU2139564C1 (ru) * 1995-08-31 1999-10-10 Интел Корпорейшн Устройство для выполнения операций умножения-сложения с упакованными данными
CN103092564B (zh) * 1995-08-31 2016-04-06 英特尔公司 执行乘加指令的处理器和对分组数据执行乘加操作的系统
FR2758195B1 (fr) * 1997-01-09 1999-02-26 Sgs Thomson Microelectronics Coprocesseur d'arithmetique modulaire comprenant deux circuits de multiplication operant en parallele
US7028068B1 (en) * 2003-02-04 2006-04-11 Advanced Micro Devices, Inc. Alternate phase dual compression-tree multiplier
CN106485321B (zh) * 2015-10-08 2019-02-12 上海兆芯集成电路有限公司 具有架构神经网络执行单元的处理器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3535498A (en) * 1967-05-02 1970-10-20 Detrex Chem Ind Matrix of binary add-subtract arithmetic units with bypass control
US3828175A (en) * 1972-10-30 1974-08-06 Amdahl Corp Method and apparatus for division employing table-lookup and functional iteration
US4785393A (en) * 1984-07-09 1988-11-15 Advanced Micro Devices, Inc. 32-Bit extended function arithmetic-logic unit on a single chip
US4754421A (en) * 1985-09-06 1988-06-28 Texas Instruments Incorporated Multiple precision multiplication device
JPS62229440A (ja) * 1986-03-31 1987-10-08 Toshiba Corp 配列乗算器

Also Published As

Publication number Publication date
US5047973A (en) 1991-09-10
JP2902045B2 (ja) 1999-06-07
EP0395240A2 (en) 1990-10-31
JPH0368021A (ja) 1991-03-25
CN1020170C (zh) 1993-03-24
KR900016858A (ko) 1990-11-14
EP0395240B1 (en) 1997-06-18
EP0395240A3 (en) 1992-08-12
CN1047152A (zh) 1990-11-21
DE69030932T2 (de) 1997-12-18
DE69030932D1 (de) 1997-07-24

Similar Documents

Publication Publication Date Title
US9311050B2 (en) Conversion apparatus for a residue number arithmetic logic unit
US5081573A (en) Parallel processing system
US5226171A (en) Parallel vector processing system for individual and broadcast distribution of operands and control information
EP0976027B1 (en) ARITHMETIC PROCESSOR combining finite field arithmetic and modular integer arithmetic
US4878190A (en) Floating point/integer processor with divide and square root functions
Tenca et al. A variable long-precision arithmetic unit design for reconfigurable coprocessor architectures
JPS6347874A (ja) 算術演算装置
KR100236250B1 (ko) 고속 수치 프로세서
JP2679007B2 (ja) ディジタル信号処理集積回路
KUNG Wavefront array processors
KR950006581B1 (ko) 영역 유효 평면도를 갖는 올림수 저장 가산기로 구성되는 2진 트리 승산기
KR100481586B1 (ko) 모듈러 곱셈 장치
Nagendra et al. Digit systolic algorithms for fine-grain architectures
JPS63254525A (ja) 除算装置
JP2605792B2 (ja) 演算処理装置
Jenila et al. Design of High Performance Parallel Multiplication using FPGA
Sangeeth et al. Design of 32-bit RISC V using area efficient multiplier based on homogeneous hybrid adder
Sanders et al. Appetizer: Integer Arithmetic
SU928348A1 (ru) Устройство дл вычислени тригонометрических функций
SU866559A1 (ru) Устройство управлени векторным процессом
SU962927A1 (ru) Конвейерное устройство дл вычислени функции Y=е @
JPH02304676A (ja) ディジタル信号処理装置
US3308283A (en) High speed multiplication device
Röpke et al. Integer factorization based on the elliptic curve method using reconfigurable hardware
Rahma Parallel algorithms for solving integral equations

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
E902 Notification of reason for refusal
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20070718

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee