KR100918815B1 - 마이크로프로세서의 연산장치 - Google Patents

마이크로프로세서의 연산장치 Download PDF

Info

Publication number
KR100918815B1
KR100918815B1 KR1020070053921A KR20070053921A KR100918815B1 KR 100918815 B1 KR100918815 B1 KR 100918815B1 KR 1020070053921 A KR1020070053921 A KR 1020070053921A KR 20070053921 A KR20070053921 A KR 20070053921A KR 100918815 B1 KR100918815 B1 KR 100918815B1
Authority
KR
South Korea
Prior art keywords
alu
log
shifter
mux
csa tree
Prior art date
Application number
KR1020070053921A
Other languages
English (en)
Other versions
KR20080105838A (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 한국과학기술원
Priority to KR1020070053921A priority Critical patent/KR100918815B1/ko
Publication of KR20080105838A publication Critical patent/KR20080105838A/ko
Application granted granted Critical
Publication of KR100918815B1 publication Critical patent/KR100918815B1/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
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/4833Logarithmic number system
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

본 발명은 연산장치에 관한 것으로서, 마이크로프로세서의 연산장치를 이루는 정수 연산부와 곱하기/나누기나 루트 등 특수 연산을 위한 로그 연산부의 공통된 영역을 상호 공유할 수 있도록 통합하여 하드웨어 블록을 최소화하고 효율적인 데이터 패스를 구현할 수 있도록 하며, 기존의 마이크로프로세서에서는 불가능한 나누기, 루트, 역수 등의 특수 연산을 빠르게 수행할 수 있는 이점이 있다.
마이크로프로세서, 연산, Integer Data path, 정수 데이터 패스, Logarithmic data path, 로그 데이터 패스, 통합 데이터 패스, 면적, 공유

Description

마이크로프로세서의 연산장치{ARITHMETIC APPARATUS OF MICRO PROCESSOR}
도 1은 일반적인 로그 연산 유닛을 갖는 마이크로프로세서의 연산장치를 나타낸 블록구성도이다.
도 2는 본 발명에 의한 마이크로프로세서의 연산장치를 나타낸 블록구성도이다.
도 3은 본 발명에 의한 마이크로프로세서의 연산장치에서 정수 데이터 패스와 로그 데이터 패스시 사용되는 경로를 나타낸 도면이다.
도 4는 본 발명에 의한 마이크로프로세서의 연산장치에서 각 사이클별 동작기능 및 사용되는 블록을 나타낸 표이다.
도 5는 본 발명에 의한 마이크로프로세서의 연산장치에서 실행 가능한 특수 연산들을 나타낸 표이다.
도 6은 본 발명에 의한 마이크로프로세서의 연산장치의 게이트수를 비교한 도표이다.
본 발명은 연산장치에 관한 것으로서, 보다 상세하게는 마이크로프로세서의 연산장치를 이루는 정수 연산부와 곱하기/나누기나 루트 등 특수 연산을 위한 로그 연산부의 공통된 영역을 상호 공유할 수 있도록 통합하여 하드웨어 블록을 최소화하고 효율적인 데이터 패스를 구현할 수 있도록 한 마이크로프로세서의 연산장치에 관한 것이다.
마이크로프로세서에서 나누기 연산은 가장 복잡한 산술 연산으로 특별한 하드웨어 없이는 수십에서 수백 사이클의 불특정한 연산 시간이 소요되기 때문에 특수 목적 프로세서가 아닌 경우 나누기 연산을 지원하지 않는 경우도 많다.
따라서 마이크로프로세서에서 나누기 연산을 위한 하드웨어 구현이 다년간 연구되어 로그 숫자 체계를 이용하는 연산방법이 이용되고 있다.
이러한 로그 숫자 체계를 이용한 연산 방법은 에러가 발생하는 문제점은 있으나 무시할 수 있을 정도이기 때문에 계산 속도가 빠르고 면적이 작은 장점으로 인해 많이 사용되고 있다.
도 1은 일반적인 로그 연산 유닛을 갖는 마이크로프로세서의 연산장치를 나타낸 블록구성도이다.
여기에 도시된 바와 같이 나누기 연산을 수행하기 위한 연산장치는 두 개의 로그 변환기와 가산/감산기와, 하나의 지수 변환기로 이루어지게 된다.
이를 구체적으로 살펴보면, 로그 변환기는 CLZ(Count Leading Zero), Shifter, LOG-APP(Logarithmic approximation), CSA tree, ALU로 이루어져 있고, 지수 변환기는 그 반대 과정인 EXP-APP(Exponential approximation), CSA tree, ALU, RLZ(Restore Leading Zero), Shifter로 이루어지게 된다.
일반적으로 정수 x를 2k·(1+f)로도 표현할 수 있는 원리를 이용하면 다음과 같이 로그 변환이 가능하게 된다.
x = 2k·(1+f) → log2 x = k + log2(1+f)
여기서 f는 0과 1사이의 소수이다.
이렇게 정수 x를 로그 변환 하게 되면 k는 정수 x의 정수부가 되며 log2 (1+f)는 정수 x의 소수부가 된다.
따라서 OpA나 OpB의 두 정수를 곱셈이나 나눗셈을 하기 위해 입력될 경우 로그변환기의 CLZ(Counting Leading Zero)는 MSB로부터 처음 1이 나올 때까지 0의 숫자를 카운팅하는 하드웨어 블록으로, 입력된 OpA나 OpB의 정수가 입력될 경우 MSB로부터 처음 1이 나올 때까지 0의 숫자를 카운팅하여 카운팅한 결과를 31에서 감산하여 k값을 얻게 된다.
이렇게 k값을 알게 되면, x = 2k·(1+f)의 관계에서 shifter를 거쳐 1+f를 얻어 낼 수 있다. 얻어진 1+f 값은 LOG-APP(Logarithmic Approximation) 블록에서, 8구간으로 나뉘어져 매트랩 피팅에서 얻어진 계수에 의하여 log2(1+f)로 근사된다.
이 과정에서 몇 가지 수가 축적되어야 하기 때문에 CSA tree와 ALU가 사용된다.
이와 같이 정수 OpA나 OpB에 대해 로그 변환을 한 후 가/감산기(ALU)를 통해 연산을 수행한다.
이후 지수 변환기는 로그 변환의 정확히 반대의 과정을 거치게 된다.
먼저 log2(1+f)를 EXP-APP(exponential approximation) 와 CSA tree, ALU를 이용하여 1+f로 근사시킨다. RLZ(Restore Leading Zero)는 로그 변환 된 수의 정수부 k값을 이용해, 원래의 자릿수를 맞추기 위해 Shifter 해야 할 방향과 양을 결정한다. 이후 Shifter에 의해 올바른 자릿수를 맞춤으로써 로그 변환 된 수는 정수의 형태로 표현되어 진다.
이와 같이 곱하기나 나누기 연산을 위한 정수 체계의 두 입력 오퍼랜드는 로그 변환기를 거쳐 로그 체계의 숫자가 되며, 이것이 가산/감산기를 거친 후 지수 변환기를 거쳐 다시 정수 체계의 숫자가 된다.
이와 같은 연산장치에서 로그 숫자 체계에서의 가산/감산은 정수 숫자 체계에서 곱하기/나누기 연산이 되는 것을 이용하여, 정수 체계일 때보다 곱하기/나누기 연산이 쉽게 이루어지게 된다.
그런데, 이와 같은 연산장치를 살펴보면 로그 연산부인 로그 변환기와 지수 변환기에서 CLZ, LOG-APP, Shifter, CSA tree, ALU 블록 등의 세부 구성 블록이 하드웨어적으로 중복되어 이루어질 뿐만 아니라 정수 연산부인 가산/감산기의 구성 블록과도 중복되는 영역이 다수 존재하고 있어 하드웨어의 면적을 많이 차지하는 문제점이 있다.
본 발명은 상기와 같은 문제점을 해결하기 위해 창작된 것으로서, 본 발명의 목적은 마이크로프로세서의 연산장치를 이루는 정수 연산부와 곱하기/나누기나 루트 등 특수 연산을 위한 로그 연산부의 공통된 영역을 상호 공유할 수 있도록 통합하여 하드웨어 블록을 최소화하고 효율적인 데이터 패스를 구현할 수 있도록 한 마이크로프로세서의 연산장치를 제공함에 있다.
상기와 같은 목적을 이루기 위한 본 발명은 입력된 두 정수에 대해 각각 로그변환하는 CLZ, Shifter, LOG-APP, CSA tree, ALU 블록이 각각 구비된 로그변환기와 로그변환기의 반대 과정인 EXP-APP, CSA tree, ALU, RLZ, Shifter 블록으로 이루어진 지수변환기로 구성된 로그 데이터 패스와 Booth 엔코더, Shifter, CSA tree, ALU 블록으로 이루어진 정수 데이터 패스로 이루어진 마이크로프로세서의 연산장치에 있어서; 상기 로그변환기를 이루는 CLZ, Shifter, LOG-APP, CSA tree, ALU 블록을 하나로 형성하되, 상기 로그변환기와 상기 지수변환기 및 상기 정수 데이터 패스에 공통으로 형성된 Shifter, CSA tree, ALU 블록을 공유하고; 공유된 각각의 Shifter, CSA tree, ALU 블록의 입출력단에서 마이크로프로세서의 제어신호에 의해 공유된 블록에 대한 연산패스를 설정하는 먹스와; ALU 블록에서 연산된 결과를 저장하기 위한 내부 레지스터;를 더 구비하여 이루어진 것을 특징으로 한다.
본 발명에서 먹스는 shifter의 입력단에 배치되어 입력된 두 정수 중 어느 하나와 CLZ와 RLZ의 출력 중 어느 하나가 선택적으로 Shifter로 입력되도록 하는 제 1먹스와, 입력된 두 정수 중 다른 하나와 CLZ와 RLZ의 출력 중 어느 하나가 선택적으로 Shifter로 입력되도록 하는 제 2먹스와, CSA tree 입력단에 배치되어 상기 Booth엔코더와 상기 LOG-APP와 상기 EXP-APP의 출력 중 어느 하나가 선택적으로 CSA tree로 입력되도록 하는 제 3먹스와, ALU 입력단에 배치되어 입력된 두 정수 중 어느 하나와 내부 레지스터와 CSA tree의 출력 중 어느 하나가 ALU로 입력되도록 하는 제 4먹스와, ALU 입력단에 배치되어 입력된 두 정수 중 다른 하나와 내부 레지스터와 CSA tree의 출력 중 어느 하나가 ALU로 입력되도록 하는 제 5먹스와, ALU 출력단에 배치되어 Shifter와 ALU의 출력 중 어느 하나가 출력되도록 하는 제 6먹스로 이루어진 것을 특징으로 한다.
이와 같이 이루어진 본 발명은 입력된 두 정수에 대한 개별적인 로그변환을 하나의 로그변환기로 반복해서 수행하도록 로그변환기의 개수를 하나로 줄이고 로그변환기와 지수변환기 및 정수 데이터 패스에 공통으로 존재하는 블록을 공유하여 먹스를 통해 각 연산 과정에 따라 데이터의 패스를 선택하도록 함으로써 하드웨어 블록을 최소화하고 효율적인 데이터 패스를 구현할 수 있도록 한다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 설명하며 종래 구성과 동일한 부분은 동일한 부호 및 명칭을 사용한다. 또한 본 실시예는 본 발명의 권리범위를 한정하는 것은 아니고, 단지 예시로 제시된 것이며 당 분야에서 통상의 지식을 가진 자라면 본 발명의 기술적 사상 내에서 많은 변형이 가능할 것이다.
도 2는 본 발명에 의한 마이크로프로세서의 연산장치를 나타낸 블록구성도이다.
여기에 도시된 바와 같이 입력된 두 정수에 대해 각각 로그 변환하는 CLZ, Shifter, LOG-APP, CSA tree, ALU 블록이 각각 구비된 로그변환기와 로그변환기의 반대 과정인 EXP-APP, CSA tree, ALU, RLZ, Shifter 블록으로 이루어진 지수변환기로 구성된 로그 데이터 패스와 Booth 엔코더, Shifter, CSA tree, ALU 블록으로 이루어진 정수 데이터 패스로 이루어진 마이크로프로세서의 연산장치의 블록들에서 로그변환기를 CLZ, Shifter, LOG-APP, CSA tree, ALU 블록 하나로 형성한다. 그리고 로그 데이터 패스, 즉 로그변환기와 지수변환기 및 정수 데이터 패스에 공통으로 형성된 Shifter, CSA tree, ALU 블록을 공유하고, 각 공유된 각각의 Shifter, CSA tree, ALU 블록의 입력단에 제어신호에 의해 공유된 블록에 대한 연산패스를 설정하는 먹스와, ALU 블록에서 연산된 결과를 저장하기 위한 내부 레지스터(Internal Register)로 구성된다.
이와 같이 로그 데이터 패스를 정수 데이터 패스인 Booth 엔코더, Shifter, CSA tree, ALU(adder) 블록과 통합하는 과정에서, 면적 감소를 위해 로그 데이터 패스에서 입력되는 두 정수에 대해 각각 로그변환을 위해 두 번 이상 반복된 하드 웨어 블록인 CLZ, LOG-APP, Shifter, CSA tree, ALU 블록의 하나를 제거하고, Shifter와 CSA tree, ALU 블록과 같이 정수 데이터 패스에서도 사용되는 블록은 공유되도록 하여 전체적으로 CLZ, RLZ, Shifter, LOG-APP, EXP-APP, CSA tree, ALU, Booth 엔코더, 먹스(11~16), 내부 레지스터 블록으로 이루어진다.
이렇게 필요한 면적을 최소화하기 위하여 필요한 블록은 단 하나씩만 포함되었으며, 각 인스트럭션에 따라 선택되어지는 블록이 다르도록 공유되는 블록의 입력단에 먹스를 사용하여 제어신호에 따라 선택되어지는 블록의 출력값만 입력되도록 구성된다.
이때 제 1먹스(11)는 Shifter의 입력단에 배치되어 제어신호에 따라 OpA와 CLZ와 RLZ의 출력 중 어느 하나가 선택적으로 Shifter로 입력되도록 하며, 제 2먹스(12)는 OpB와 CLZ와 RLZ의 출력 중 어느 하나가 선택적으로 Shifter로 입력되도록 한다.
또한, 제 3먹스(13)는 CSA tree 입력단에 배치되어 제어신호에 따라 Booth엔코더와 LOG-APP와 EXP-APP의 출력 중 어느 하나가 선택적으로 CSA tree로 입력되도록 한다.
또한, 제 4먹스(14)는 ALU 입력단에 배치되어 제어신호에 따라 OpA와 내부 레지스터와 CSA tree의 출력 중 어느 하나가 ALU로 입력되도록 하며, 제 5먹스(15)는 ALU 입력단에 배치되어 제어신호에 따라 OpB와 내부 레지스터와 CSA tree의 출력 중 어느 하나가 ALU로 입력되도록 한다.
또한, 제 6먹스(16)는 ALU 출력단에 배치되어 제어신호에 따라 Shifter와 ALU의 출력 중 어느 하나가 출력되도록 한다.
도 3은 본 발명에 의한 마이크로프로세서의 연산장치에서 정수 데이터 패스와 로그 데이터 패스시 사용되는 경로를 나타낸 도면이고, 도 4는 본 발명에 의한 마이크로프로세서의 연산장치에서 각 사이클별 동작기능 및 사용되는 블록을 나타낸 표이다.
여기에 도시된 바와 같이 로그 데이터 패스를 이용한 연산들을 실행하기 위해서는 총 5 사이클 의 멀티 사이클 동작을 하여야 한다.
첫 번째와 두 번째 사이클은 입력된 두 정수의 오퍼런드들을 각각 로그 숫자로 바꾸는 역할을 수행한다. 오퍼런드는 CLZ, Shifter, LOG-APP, CSA tree, ALU(Adder)를 거쳐서 로그 숫자로 변환되며, 데이터의 흐름은 각 블록의 입력단의 먹스에 의해 제어되게 된다.
Shifter의 입력은 제 1먹스(11)나 제 2먹스(12)를 통해 OpA나 OpB의 오퍼랜드에서 곧바로 오거나 CLZ 또는 RLZ 블록에서 올 수 있으며, 이것은 Shift_In이라는 제어신호에 의해 선택되어지게 된다. Shift_In 신호는 마이크로프로세서에서 인스트럭션의 종류에 따라 결정되어 진다.
즉, 로그 관련 연산 중 로그 변환시에는 2'b01이 되고, 지수 변환시는 2'b10, 나머지 연산에서는 2'b00으로 발생되어 진다.
마찬가지로 CSA tree의 입력은 CSA_In 제어 신호에 의해 제 3먹스(13)를 통해 결정되고, 인스트럭션에 따라 Booth 인코더에서 오는 신호 또는 LOG-APP에서 오 는 신호 또는 EXP-APP에서 오는 신호를 선택적으로 받아들이게 된다.
곱하기 관련 연산에서는 booth 인코더의 신호를, 로그 관련 연산의 첫 번째, 두 번째 사이클에서는 LOG-APP에서 오는 신호를, 다섯 번째 사이클에서는 EXP-APP에서 오는 신호를 받아들인다.
위와 같은 방법으로 로그 변환시 ALU 입력을 선택하는 ALU_In 제어신호에 의해 제 4먹스(14)와 제 5먹스(15)를 통해 CSA tree로 부터의 신호를 입력으로 받아들인다. 이렇게 해서 입력된 두 정수 데이터는 CLZ, Shifter, LOG-APP, CSA tree, ALU를 거치게 되며, 입력의 로그 변환 결과는 사라지지 않도록 멀티 사이클 동작이 끝날 때까지 내부 레지스터에 저장된다.
세 번째 사이클에서는 나누기를 위하여 내부 레지스터에 저장된 로그 숫자를 불러 감산을 수행하게 되며, 결과는 내부 레지스터에 저장된다.
네 번째와 다섯 번째 사이클에서는 지수 변환 과정을 수행한다. 네 번째 사이클에서는 내부 레지스터에 저장되어 있는 세 번째 사이클의 결과를 지수 변환을 위한 EXP-APP과, CSA tree, ALU를 거쳐 자릿수 보정이 되지 않은 중간 결과를 내부 레지스터에 저장한다. 이때 CSA tree, ALU의 입력 제어신호 CSA_In, ALU_In은 각각 제 3먹스(13) 내지 제 5먹스(15)를 통해 EXP-APP, CSA tree로부터 입력을 선택한다.
다섯 번째 사이클에서는 내부 레지스터에 저장되어 있는 네 번째 사이클의 결과를 RLZ와 Shifter 블록을 거쳐서 자릿수 보정이 된 최종 지수 변환 결과를 얻게 된다.
이때 Shifter의 입력 제어신호 Shifter_In은 제 1먹스(11)내지 제 2먹스(12)를 통해 RLZ로부터 입력을 받아들이게 하며, 최종 결과는 제 6먹스(16)를 통해 Shifter와 ALU 중 Shifter의 결과를 선택한다.
도 5는 본 발명에 의한 마이크로프로세서의 연산장치에서 실행 가능한 특수 연산들을 나타낸 표이다.
여기에서는 본 발명과 같이 로그 데이터 패스와 정수 데이터 패스가 통합된 데이터 패스를 이용하여 추가 가능한 연산은 나누기, 루트, 역수, 루트 역수 등으로 추가된 인스트럭션들의 니모닉과 기능을 보여준다.
기본적으로 나누기는 로그 변환 된 수들끼리 뺄셈을 함으로써 얻어 질 수 있다.
역수는 오퍼런드 A와 B 중 A를 1로 하여 나누기를 수행하면 된다. 이를 위해, 오퍼런드 A를 로그 변환 할 시에 오퍼런드 A와 1 중 선택이 가능하며 이것은 OpA_Ctrl 이라는 신호에 의해 제어된다.
루트 연산 시에는 오퍼런드 B가 1이어야하며, 로그 변환된 log2A가 log2(A/2)가 되어야 한다. 이것은 1bit 오른쪽 쉬프트로 쉽게 구할 수 있다. 마찬가지 방법으로 멀티 사이클 연산 중 세 번째 사이클에서 로그 변환 된 수를 불러올 때, log2A와 log2(A/2) 중에서 선택하여 불러올 수 있으며 이것은 logA_Ctrl이라는 신호에 의하여 제어된다.
따라서 위와 같은 조합을 이용하여 도 5에 의한 기능들을 구현할 수 있게 된다.
도 6은 본 발명에 의한 마이크로프로세서의 연산장치의 게이트수를 비교한 도표이다.
여기에 나타난 바와 같이 로그 데이터 패스와 정수 데이터 패스에서 반복되는 세부 블록을 없애고 중복되는 블록을 공유함으로써 필요로 되는 하드웨어 블록을 최소화하여 통합함으로써, 두 데이터 패스를 따로 구현하였을 때보다 게이트수가 약 29.6% 감소되었으며, 이러한 결과는 기존의 정수 데이터 패스에서 오직 17%의 게이트수의 증가로 로그 데이터 패스를 추가한 값이다.
이와 같은 게이트 카운트 결과는 TSMC 0.18 mm 공정 표준 라이브러리를 이용하여 합성하여 얻은 결과이다.
상기한 바와 같이 본 발명은 마이크로프로세서의 연산장치를 이루는 정수 연산부와 곱하기/나누기나 루트 등 특수 연산을 위한 로그 연산부의 공통된 영역을 상호 공유할 수 있도록 통합하여 하드웨어 블록을 최소화하고 효율적인 데이터 패스를 구현할 수 있는 이점이 있다.
또한, 정수 데이터 패쓰와 로그 데이터 패쓰를 통합함으로써, 기존의 마이크로프로세서에서는 불가능한 나누기, 루트, 역수 등의 특수 연산을 빠르게 수행할 수 있는 이점이 있다.

Claims (2)

  1. 입력된 두 정수에 대해 각각 로그변환하는 CLZ, Shifter, LOG-APP, CSA tree, ALU 블록이 각각 구비된 로그변환기와 로그변환기의 반대 과정인 EXP-APP, CSA tree, ALU, RLZ, Shifter 블록으로 이루어진 지수변환기로 구성된 로그 데이터 패스와 Booth 엔코더, Shifter, CSA tree, ALU 블록으로 이루어진 정수 데이터 패스로 이루어진 마이크로프로세서의 연산장치에 있어서;
    상기 로그변환기를 이루는 CLZ, Shifter, LOG-APP, CSA tree, ALU 블록을 하나로 형성하되, 상기 로그변환기와 상기 지수변환기 및 상기 정수 데이터 패스에 공통으로 형성된 Shifter, CSA tree, ALU 블록을 공유하고;
    상기 공유된 각각의 Shifter, CSA tree, ALU 블록의 입출력단에서 상기 마이크로프로세서의 제어신호에 의해 상기 공유된 블록에 대한 연산패스를 설정하는 먹스와;
    상기 ALU 블록에서 연산된 결과를 저장하기 위한 내부 레지스터;
    를 더 구비하여 이루어진 것을 특징으로 하는 마이크로프로세서의 연산장치.
  2. 제 1항에 있어서, 상기 먹스는
    상기 shifter의 입력단에 배치되어 상기 입력된 두 정수 중 어느 하나와 상기 CLZ와 상기 RLZ의 출력 중 어느 하나가 선택적으로 상기 Shifter로 입력되도록 하는 제 1먹스와,
    상기 입력된 두 정수 중 다른 하나와 상기 CLZ와 상기 RLZ의 출력 중 어느 하나가 선택적으로 상기 Shifter로 입력되도록 하는 제 2먹스와,
    상기 CSA tree 입력단에 배치되어 상기 Booth엔코더와 상기 LOG-APP와 상기 EXP-APP의 출력 중 어느 하나가 선택적으로 상기 CSA tree로 입력되도록 하는 제 3먹스와,
    상기 ALU 입력단에 배치되어 상기 입력된 두 정수 중 어느 하나와 상기 내부 레지스터와 상기 CSA tree의 출력 중 어느 하나가 상기 ALU로 입력되도록 하는 제 4먹스와,
    상기 ALU 입력단에 배치되어 상기 입력된 두 정수 중 다른 하나와 상기 내부 레지스터와 상기 CSA tree의 출력 중 어느 하나가 상기 ALU로 입력되도록 하는 제 5먹스와,
    상기 ALU 출력단에 배치되어 상기 Shifter와 상기 ALU의 출력 중 어느 하나가 출력되도록 하는 제 6먹스
    로 이루어진 것을 특징으로 하는 마이크로프로세서의 연산장치.
KR1020070053921A 2007-06-01 2007-06-01 마이크로프로세서의 연산장치 KR100918815B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070053921A KR100918815B1 (ko) 2007-06-01 2007-06-01 마이크로프로세서의 연산장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070053921A KR100918815B1 (ko) 2007-06-01 2007-06-01 마이크로프로세서의 연산장치

Publications (2)

Publication Number Publication Date
KR20080105838A KR20080105838A (ko) 2008-12-04
KR100918815B1 true KR100918815B1 (ko) 2009-09-25

Family

ID=40367058

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070053921A KR100918815B1 (ko) 2007-06-01 2007-06-01 마이크로프로세서의 연산장치

Country Status (1)

Country Link
KR (1) KR100918815B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110084362B (zh) * 2019-03-08 2021-07-20 中国科学院计算技术研究所 一种面向神经网络的对数量化装置及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05165607A (ja) * 1991-12-16 1993-07-02 Pioneer Video Corp ディジタル信号プロセッサ
JPH1153419A (ja) 1997-08-07 1999-02-26 Fujitsu Ltd 比較演算回路生成装置および生成方法
JPH11213024A (ja) 1998-01-26 1999-08-06 Nec Corp 回路合成方法、回路合成装置および記録媒体
KR20070018981A (ko) * 2004-06-04 2007-02-14 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) 복소수 로그 alu

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05165607A (ja) * 1991-12-16 1993-07-02 Pioneer Video Corp ディジタル信号プロセッサ
JPH1153419A (ja) 1997-08-07 1999-02-26 Fujitsu Ltd 比較演算回路生成装置および生成方法
JPH11213024A (ja) 1998-01-26 1999-08-06 Nec Corp 回路合成方法、回路合成装置および記録媒体
KR20070018981A (ko) * 2004-06-04 2007-02-14 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) 복소수 로그 alu

Also Published As

Publication number Publication date
KR20080105838A (ko) 2008-12-04

Similar Documents

Publication Publication Date Title
KR100715770B1 (ko) 연산을 수행하는 방법 및 시스템 및 장치
US7236995B2 (en) Data processing apparatus and method for converting a number between fixed-point and floating-point representations
CN112860220B (zh) 一种适用于多精度计算的可重构浮点乘加运算单元及方法
KR20050065673A (ko) 연산을 수행하기 위한 방법, 시스템 및 장치
JP4482052B2 (ja) 演算装置および演算方法
JPH06314187A (ja) 引き数簡約の最適化システム
CN101371221B (zh) 预饱和固定点乘法器
US8019805B1 (en) Apparatus and method for multiple pass extended precision floating point multiplication
KR100918815B1 (ko) 마이크로프로세서의 연산장치
JP2011118633A (ja) 浮動小数点除算器、及びそれを用いた情報処理装置
Véstias et al. Improving the area of fast parallel decimal multipliers
US7219117B2 (en) Methods and systems for computing floating-point intervals
KR102208274B1 (ko) 특히 함수 모델을 순수 하드웨어에 기초하여 연산하기 위한 함수 모델 유닛 내에서 사용하기 위한 fma 유닛
JPH01302425A (ja) 浮動小数点加減算回路
JP3579087B2 (ja) 演算器およびマイクロプロセッサ
US20040117420A1 (en) Methods and systems for computing the quotient of floating-point intervals
RU2625528C1 (ru) Арифметическое устройство
JPH0772860B2 (ja) 演算方式
JPH0383127A (ja) 10進除算器
RU2157560C1 (ru) Арифметическое устройство по модулю
KR100900790B1 (ko) 재구성형 프로세서 연산 방법 및 장치
KR0176883B1 (ko) 복소수 승산기
JPH04160533A (ja) マイクロ・プロセッサ
Andersen et al. A systolic ON-LINE non-restoring division scheme
JPS5938849A (ja) 演算回路

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120907

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130830

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee