KR100241077B1 - 단일명령사이클내의 선택된 sin 3식을 연산하기 위한 방법 - Google Patents

단일명령사이클내의 선택된 sin 3식을 연산하기 위한 방법 Download PDF

Info

Publication number
KR100241077B1
KR100241077B1 KR1019970012507A KR19970012507A KR100241077B1 KR 100241077 B1 KR100241077 B1 KR 100241077B1 KR 1019970012507 A KR1019970012507 A KR 1019970012507A KR 19970012507 A KR19970012507 A KR 19970012507A KR 100241077 B1 KR100241077 B1 KR 100241077B1
Authority
KR
South Korea
Prior art keywords
sign
bit
zero
output
circuit
Prior art date
Application number
KR1019970012507A
Other languages
English (en)
Other versions
KR19980023995A (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 KR19980023995A publication Critical patent/KR19980023995A/ko
Application granted granted Critical
Publication of KR100241077B1 publication Critical patent/KR100241077B1/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/50Adding; Subtracting
    • 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

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)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Abstract

A가 2의 보충 형태로 나타내진 부호화된 2진 정수이고, A가 0보다 클 때 sign(A)는 1이고, A가 0일 때 sign(A)는 0이고, A가 0보다 작을 때 sign(A)는 -1인 조건에서 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A)의 식중에서 선택된 한 식을 연산하기 위한 방법에 관한 것이다. 선택된 sign 3 식은 범용 컴퓨터에 의해서 연산될 수 있다.

Description

단일 명령 사이클내의 선택된 sign 3 식을 연산하기 위한 방법
본 발명은 컴퓨터 연산에 관한 것으로서, 보다 상세하게는 부호화된 이진 정수를 위한 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 식을 연산하기 위한 것이다.
본 발명은 컴퓨터 연산에 관한 것으로서, 보다 상세하게는 부호화된 이진 정수를 위한 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 식을 연산하기 위한 것이다. 동 화상 전문 군(MPEG) 표준은 압축된 디지탈비디오를 위한 지배적인 표준으로써 나타났다. MPEG-1 표준은 초당 약 1.5 메가비트의 압축된 비디오 비트-스트림 비율을 지정하고, 또한 초당 약 250 킬로비트의 압축된 스테레오 오디오 비트-스트림 비율을 지정한다. 2번째 표준인 MPEG-2는 보다 높은 밴드폭 분포 미디어에 대한 압축 비율을 지정할 것이고, 또한 형식화 되어있는 프로세스내에 존재한다. MPEG 표준을 맞추려면, 비디오 및 오디오의 압축 및 감압 제품들은 MPEG 표준을 이행하기 위해 사용된 다양한 알고리즘을 신속하게 처리해야 한다.
MPEG 비디오 시그널 프로세싱에서, 기본 비디오 정보 프로세싱 장치는 일상적으로 4개의 8x8 발광 블록들로 구성된 16x16 화소(pixel) 매트릭스와 2개의 8x8 색(chrominance) 블록을 가지는 매크로 블록이다. 발광 블록 또는 색 블록내의 각각의 화소는 부호화되지 않은 정수와 상응하는 출력을 가지고, 그럴 경우에 각각의 매크로 블록은 보다 큰 발광 또는 색 프레임의 부분이다. MPEG 비디오 시그널 프로세싱은 블록내의 각각의 화소에 대한 sign 3 수식 2A+sign(A)와 A-sign(A)를 연산하기 위한 계산 도구를 포함하는데, 여기에서 A는 부호화된 이진 정수이고, A가 0보다 더 클 때 sign(A)는 1이고, A가 0일 때 sign(A)는 0이고, A가 0보다 작을 때 sign(A)는 -1이다. 완전하게는, 2A-sign(A) 및 A+sign(A) 등과 같은 다른 sign 3 수식을 계산하는데에 유용하다.
종래의 sign 3 수식을 연산하는 방법은 통상적으로 다수의 명령 사이클들이 요구된다. 분리 명령 사이클들은, 일상적으로 A가 0보다 작거나, 0이거나, 또는 0보다 큰가를 결정하도록 사용되고, 그리고나서, 그러한 경우에 중간 결과(A 또는 2A 등과 같은)를 증분 또는 감소하는 데에 사용된다.
더욱이, A의 제로 검출의 제공으로 종래 방식을 사용하는 다수의 명령 사이클들 또는 방대한 양의 칩 영역이 요구될 수 있다. 예를들면, n-비트 오퍼랜드의 제로 검출은 인버터로 결합된 n-비트 OR(논리합) 게이트에 의해서 제공될 수 있다. 오퍼랜드가 0으로 될 때에만, 인버터가 1로 변환하는 OR 게이트는 0을 출력한다.
이러한 방식의 결점은 칩 영역이 증가된 OR 게이트의 증가되는 논리 입력수와 각각의 오퍼랜드 비트가 논리합으로 결합되는 시간 지연이 있다는 것이다. 이진 오퍼랜드의 제로 검출에 대해 인지된 또 다른 기술은 연속으로 오퍼랜드를 우측-시프트하는 방식과 한번에 시프트된 비트들을 검색하는 방식을 포함한다. 시프트된 비트가 검출되자마자, 그리고나서, 상기 오퍼랜드는 0이 아니어야 하고 모든 시프트된 비트들이 0이라면, 그리고나서, 상기 오퍼랜드는 0이어야 한다. 이러한 방식의 단점은 우측 시프트 작동이 비교적 시간을 낭비하고 특히, 단일 명령 사이클에서의 수행이 어렵게 될 수 있다는 것이다.
따라서, 신속하고 효율적인 방식으로 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A)를 연산할 수 있는 방법이 필요하다.
그러므로, 본 발명의 목적은 2A+sign(A), 2A-sign(A), A+sign(A), 및 A-sign(A)의 신속하고 충분한 연산을 제공하는 데에 있다. 본 발명의 바람직한 일면에 따라, 이들 식중에서 선택된 한 식은 단일 명령 사이클에 있어서 범용 컴퓨터에 의해 연산된다.
도 1 은 본 발명의 일실시예에 따라 2A+sign(A)를 연산하기 위한 알고리즘의 플로우차아트.
도 2 는 본 발명의 다른 일실시예에 따라 2A-sign(A)를 연산하기 위한 알고리즘의 플로우차아트.
도 3 은 본 발명의 다른 일실시예에 따라 A+sign(A)를 연산하기 위한 알고리즘의 플로우차아트.
도 4 는 본 발명의 다른 일실시예에 따라 A-sign(A)를 연산하기 위한 알고리즘의 플로우차아트.
도 5 는 본 발명의 다른 일실시예에 따라 2A+sign(A), 2A-sign(A), A+sign(A), A-sign(A)를 연산하기 위한 논리 회로도.
도 6A 내지 도 6D 는 본 발명의 또 다른 일실시예에 따라 2A+sign(A), 2A-sign(A), A+sign(A), 및 A-sign(A) 를 연산하기 위한 논리 회로도.
도 7 은 도 6A 내지 도 6D 의 논리 회로에서 사용하기에 적합한 멀티플렉서.
도 8 은 도 6A 내지 도 6D 의 논리 회로에서 사용하기에 적합한 합산 및 합산+1 가산기.
* 도면의 주요부분에 대한 부호의 설명
500,600...논리회로 506...데이터 셀렉터 회로
508...가산회로 512...제어회로
502,516,602,604,606,608,662,664,666,668,680...인버터 회로
504,510,658...멀티플렉서 514...제로 검출 회로
612,614,616,618,642,672...NOR(부정 논리합) 게이트
630,632,634,636,638,640,674,676...AND(논리곱) 게이트
682,686,694,702,704,706,708,722,724,726,728...AND(논리곱)게이트
622,624,626,628,670,678...OR(논리합) 게이트
688,712,714,716,718...OR 게이트
646,648,650,652...전가산기 654...합산+1 가산기
656,684...배타적-OR 게이트 802,804,806,808...전파 발생부
810...제 1 올림수(CARRY) 체인 812...제 2 올림수(CARRY) 체인
814,816...합산 제너레이터
본 발명은 2A+sign(A), 2A-sign(A), A+sign(A), 및 A-sign(A)의 식중에서 선택된 한 식을 연산하도록 회로를 작동하는 방식을 포함한다.
2A+sign(A)를 연산하기 위한 방법은
Figure kpo00001
를 얻기 위한 A의 비트-컴플리멘팅과, A가 0보다 작을 때 2A+sign(A)를 얻기 위한 (
Figure kpo00002
+
Figure kpo00003
+2)의 비트-컴플리멘팅과, A가 0일 때 2A+sign(A)를 얻기 위한 (
Figure kpo00004
+
Figure kpo00005
+1)의 비트 컴플리멘팅과 A가 0보다 클때 2A+sign(A)를 얻기 위한 (
Figure kpo00006
+
Figure kpo00007
+1)의 최하위 비트를 제외한 모든 비트의 비트-컴플리멘팅을 포함한다. 바람직하게는, 본 방식은 A가 0보다 작을 때 상수 C를 2로 설정하고 (
Figure kpo00008
+
Figure kpo00009
+1)의 최하위 비트의 비트-컴플리멘트를 선택하는 방식과 상수 C를 1로 설정하고 (
Figure kpo00010
+
Figure kpo00011
+1)의 최하위 비트를 선택하는 방식을 포함한다. 상수 C를 설정하는 것은 A의 sign 비트에 대한 응답이고 상기 선택은 A의 sign 비트에 대한 응답이고, A가 0인지 아닌지를 표시하는 제로 검출 플래그에 대한 응답이다. 더욱이, A의 제로 검출은 (
Figure kpo00012
+
Figure kpo00013
+1)로부터의 제 1 자리올림 비트와 (
Figure kpo00014
+
Figure kpo00015
+2)로부터의 제 2 자리올림 비트가 다른 논리값을 가졌는가를 결정함에 의해서 제공될 수 있다.
2A-sign(A)를 연산하는 방식은,를 얻기 위한 A의 비트-컴플리멘팅과, A가 0보다 작을 때 2A-sign(A)를 얻기 위한 (+)의 비트-컴플리멘팅과, A가 0일 때 2A-sign(A)를 얻기 위한 (
Figure kpo00016
+
Figure kpo00017
+1)의 비트-컴플리멘팅 및 A가 0보다 클 때 2A-sign(A)를 얻기 위한 (
Figure kpo00018
+
Figure kpo00019
+2)의 비트-컴플리멘팅을 포함한다. 바람직하게는, 본 방법 A가 0보다 작을 때, 상수 C를 0으로 설정하고, (+)의 합산 출력을 선택하는 방법과, A가 0일 때 상수 C를 1로 설정하고 (
Figure kpo00020
+
Figure kpo00021
+1)의 합산 출력을 선택하는 방법및 A가 0보다 클 때 상수 C를 1로 설정하고 (
Figure kpo00022
+
Figure kpo00023
+2)의 합산+1 출력을 선택하는 방법을 포함한다. 상수 C를 설정하는 것은 A의 사인 비트에 응답하는 것이고, 상기 선택은 A가 0인지 또는 0이 아닌지를 표시하는 제로 검출 플래그 및 A의 사인 비트에 대한 응답이다. 더욱이, A의 제로 검출은 (
Figure kpo00024
+
Figure kpo00025
+1)로부터의 제 1 자리올림 비트 및 (
Figure kpo00026
+
Figure kpo00027
+2)로부터의 제 2 자리올림 비트가 다른 논리값을 가졌는가를 결정함에 의해서 제공될 수 있다.
A+sign(A)를 연산하기 위한 방식은
Figure kpo00028
를 얻기 위한 A의 비트-컴플리멘팅과, A가 0보다 작을 때 A+sign(A)를 얻기 위한 (
Figure kpo00029
+1)의 비트 컴플리멘팅과, A가 0일 때 A+sign(A)를 얻기 위한
Figure kpo00030
의 비트-컴플리멘팅과, A가 0보다 크고 홀수일 때 A+sign(A)를 얻기 위한(
Figure kpo00031
-1)의 비트-컴플리멘팅 및 A가 0보다 크고 짝수일 때 A+sign(A)를 얻기 위한
Figure kpo00032
의 최하위 비트를 제외한 모든 비트의 비트-컴플리멘팅을 포함한다.
바람직하게는, 본 방식은 A가 0보다 작을 때 상수 C를 1로 설정하고, (
Figure kpo00033
+1)의 최하위 비트의 비트-컴플리멘트를 선택하는 방식과, A가 0일 때 상수 C를 0으로 설정하고 최하위 비트의 비트-컴플리멘트를 선택하는 방식과, A가 0보다 크고 홀수일 때 상수 C를 -1로 설정하고, (
Figure kpo00034
-1)의 최하위 비트의 비트-컴플리멘트를 선택하는 방식 및 A가 0보다 크고 짝수일 때 상수 C를 0으로 설정하고,
Figure kpo00035
의 최하위 비트를 선택하는 방식을 포함한다. 상수 C를 설정하는 것은 A의 사인 비트와 A가 홀수 또는 짝수인가를 표시하는 A의 최하위 비트에 응답하는 것이다. 상기 선택은 A의 사인 비트와, A의 최하위 비트 및 A 가 0인가 0이 아닌가를 표시하는 제로 검출 플래그에 응답하는 것이다. 더욱이, A의 제로 검출은 (+0)로부터의 제 1 자리올림 비트와 (
Figure kpo00036
+1)로부터의 제 2 자리올림 비트가 다른 논리값을 가졌는가를 결정함에 의해서 제공될 수 있다.
A-sign(A)를 연산하는 방식은,
Figure kpo00037
를 얻기 위한 A의 비트-컴플리멘팅과, A가 0보다 작을 때 A-sign(A)를 얻기 위한 (
Figure kpo00038
-1)의 비트 컴플리멘팅과, A가 0일 때 A- sign(A)를 얻기 위한 의 비트-컴플리멘팅과, A가 0보다 클 때 A-sign(A)를 얻기 위한 (+1)의
Figure kpo00039
비트-컴플리멘팅을 포함한다. 바람직하게, 본 방식은 A가 0보다 작을 때 상수 C를-1로 설정하고, (
Figure kpo00040
-1)의 합산 출력을 선택하는 방식과, A가 0일 때 상수 C를 0으로 설정하고
Figure kpo00041
의 합산 출력을 선택하는 방식과, A가 0보다 클 때 상수 C를 0으로 설정하고,(
Figure kpo00042
+1)의 합산+1 출력을 선택하는 방식을 포함한다. 상수 C를 설정하는 것은 A의 사인 비트에 응답하는 것이고, 상기 선택은 A의 사인 비트와 A가 0인가 0이 아닌가를 표시하는 제로 검출 플래그에 응답하는 것이다. 더욱이, A의 제로 검출은 (
Figure kpo00043
+0)로부터의 제 1 자리올림 비트와 (
Figure kpo00044
+1)로부터의 제 2 자리올림 비트가 다른 논리값을 가졌는가를 결정함에 의해서 제공될 수 있다.
본 발명은 또한 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 식중에서 선택된 한 식을 연산하기 위한 장치를 포함한다.
상기 장치는 제 1 및 제 2 인버터 회로와, 데이터 셀렉터 회로와 가산 회로와 제로 검출회로와, 제어 회로 및 결합된 제 1 및 제 2 멀티플렉서들로 구성된다. 제 1 인버터 회로는 A의 비트-컴플리멘트를 가산 회로의 제 1 오퍼랜드 입력에 제공한다. 제 1 멀티플렉서는 가산회로의 제 2 오퍼랜드 입력을 위해서 선택된 식을 표시하는 MODE 시그널에 응답하여 A의 비트-컴플리멘트와 0중에서 선택한다. 데이터 셀렉터 회로는 가산 회로의 제 3 오퍼랜드 입력을 위해서 MODE 시그널 및 A에 응답하여 상수 C를 적정값으로 설정한다. 가산 회로는 합산 출력에서 제 1, 제 2, 및 제 3 오퍼랜드의 합산과, 합산+1 출력에서 제 1, 제 2 및 제 3 오퍼랜드의 합산+1을 연산한다. 제 2 멀티플렉서는 0으로 설정된 LSB(Least Significant Bit)를 가진 합산 출력과, 합산 출력 및 제어회로에 응답하는 합산+1 출력 중에서 선택한다.
제어 회로는 MODE 시그널과, A 및 A가 0인지 아닌지를 표시하는 제로 검출 회로에 응답하여 제 2 멀티플렉서에 지시한다. 마지막으로, 제 2 인버터 회로는 그 결과를 제공하기 위해서 멀티플렉서 출력을 비트-컴플리멘트한다.
하나의 실시예에서, 2A+sign(A) 또는 2A-sign(A)가 선택될 때 제 1 멀티플렉서는 를 출력하고, 그렇지 않으면 0을 출력한다. 데이터 셀렉터 회로는 A가 - 이고 2A+sign(A)가 선택될 때, 상수 C를 2로 설정하고, A가 +이고 2A+sign(A) 또는 2A-sign(A)가 선택될 때 또는 A가 -이고 A+sign(A)가 선택될 때, 상수 C를 1로 설정하고 A가 +이고 홀수이며, A+sign(A)가 선택되거나 또는 A가 -이고 A-sign(A)가 선택될 때 상수 C 를 -1로 설정하고 그 반대는 0으로 설정한다. 제 2 멀티플렉서는 A가 0보다 크고 2A-sign(A) 또는 A-sign(A)가 선택될 때 합산+1 출력을 선택하고, A가 0 이거나, 0보다 작을 때 또는 A가 0보다 크고 홀수이며 A+sign(A)가 선택될 때 합산 출력을 선택하고, A가 0보다 크고 2A+sign(A)가 선택될 때, 또는 A가 0보다 크고 짝수이며 A+sign(A)가 선택될 때, 0에 대한 LSB로 합산 출력을 선택한다. 바람직하게, 가산 회로는 합산 출력으로 부터의 제 1 자리올림 비트와, 합산+1 출력으로부터의 제 2 자리올림 비트를 발생하고 제로 검출 회로는 제 1 및 제 2 자리올림 비트가 다른 논리 값을 가졌는가를 결정함에 의해서 A가 0인가 아닌가를 결정한다.
이하, 첨부한 도면을 참조로 하여 본 발명의 바림직한 실시예를 상술하며, 도면 전체를 통하여 동일한 부분에는 동일한 도면부호를 사용하기로 한다.
본 발명은 단일 명령 사이클에서의 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 식중에서 선택된 한 식을 연산한다. 이하에서 사용된 바와 같이 A 는 2의 보충 형태로 나타내진 부호화된 2진 정수이다. 상기에서 언급된 바와 같이, A가 0보다 클 때 sign(A)는 1이고, A가 0일 때 sign(A)는 0이고, A가 0보다 작을 때 sign(A)는 -1이다. A가 +(0을 포함하여) 또는 -인가의 결정은 그의 최상위 비트(″MSB″)의 검색에 의해 수행된다. +A에 대한 MSB는 0이고, 반면에 -A에 대한 MSB는 1이다. 비트-컴플리멘팅(Complementing)은 1의 보충 작동과 동일하다. 예를들면, 는 A의 비트-컴플리멘트를 나타낸다. 결론적으로, 증분은 1에 의한 증가에 관련된다.
본 발명은 를 얻기 위한 A의 비트-컴플리멘팅과, A가 0보다 작을때 2A+sign(A)를 얻기 위한 (
Figure kpo00045
+
Figure kpo00046
+2)의 비트-컴플리멘팅과, A가 0일때 2A+sign(A)를 얻기 위한 (
Figure kpo00047
+
Figure kpo00048
+1)의 비트-컴플리멘팅및 A가 0보다 클때 2A+sign(A)를 얻기 위한 (
Figure kpo00049
+
Figure kpo00050
+1)의 최하위 비트를 제외한 모든 비트의 비트-컴플리멘팅에 의한 단일 명령 사이클에서의 2A+sign(A)를 연산한다.
도 1 은 본 발명의 한 실시예에 따른 2A+sign(A)를 연산하기 위한 알고리즘(100)의 플로우차아트이다. 단계(102)에서 부호화된 2진 오퍼랜드 A가 구해진다. 결정 단계(104)는 A가 -인가 아닌가를 테스트한다. A가 -라면, 단계(106)에서 A는 비트-컴플리멘트되고, 단계(108)에서 (
Figure kpo00051
+
Figure kpo00052
+2)의 합산이 연산되고, 단계(110)에서 (
Figure kpo00053
+
Figure kpo00054
+2)의 합산은 그 결과를 제공하도록 비트-컴플리멘트되고, 그러한 알고리즘은 마지막 단계(122)에서 종료된다. A가 -가 아니라면, 결정 단계(104)로 되돌아가서, 단계(112)에서 A는 비트-컴플리멘트되고, 단계(114)에서 (++1)의 합산이 연산되고, 단계(116)에서 (
Figure kpo00055
+
Figure kpo00056
+1)의 비트-컴플리멘트가 구해지고, 결정 단계(118)는 A가 0인가를 테스트한다. A가 0이면, (
Figure kpo00057
+
Figure kpo00058
+1)의 비트-컴플리멘트는 그 결과를 제공하고, 그러한 알고리즘은 마지막 단계(122)에서 종료된다. A가 0이 아니면(그러므로, A또한 -가 아니므로 0보다 큼), 단계(120)에서 (++1)의 비트-컴플리멘트는 그 결과를 제공하도록 증분되고, 그러한 알고리즘은 마지막 단계(122)에서 종료된다. 알고리즘(100)에 대한 다양성은 명백하다. 예를들면, A는 A의 사인 비트(또는 컴플리멘트된 사인 비트)가 검색되기 전에 비트-컴플리멘트 될 수 있다. 각각의 A값에 대하여,
Figure kpo00059
,
Figure kpo00060
Figure kpo00061
+1의 식들은 각각 A가 0보다 작거나, 0 이거나, 0보다 큰가에 따라 선택된 적절한 식으로 연산될 수 있다(요구되면 동시에). 마찬가지로, A는 적절한 식이 연산되기 전에 0보다 작거나, 0이거나, 또는 0보다 큰가를 위해 테스트 될 수 있다.
Figure kpo00062
의 최하위 비트(LSB)는 항상 0이 되어야하는 것이(0+0=0 및 1+1=10이므로) 주목되고, 그러므로
Figure kpo00063
+1의 LSB는 항상 1이어야 하고, 의 LSB는 항상 0이어야 하고,
Figure kpo00064
+1의 LSB는 항상 1이어야 한다. 그러므로,
Figure kpo00065
+1은 이하 다수의 방식으로 얻어질 수 있다.
(1)
Figure kpo00066
을 증분하는 방법
(2)
Figure kpo00067
을 연산하고 LSB를 1로 설정하는 방법
(3) A가 0일 때
Figure kpo00068
의 LSB를 선택하고, A가 0보다 클 때
Figure kpo00069
의 LSB를 선택하는 방법
(4)
Figure kpo00070
의 LSB를 0으로 설정하고, 그리고나서 중간 결과를 비트- 컴플리멘팅하는 방법
모든 경우에서,
Figure kpo00071
+1은
Figure kpo00072
의 LSB를 제외한 모든 비트들의 비트-컴플리멘팅과 동일하다.
오버플로우에 관해서는, A가 n-비트 수이면, 2A+sign(A)는 n-비트 또는 n+1비트 결과이고, 그리고나서 오버플로우가 발생 할 수 있다. 예를들면, A의 MSB(또는 사인 비트)와 그 결과의 MSB(또는 사인비트)가 다른 논리값을 가지면, 그리고나서, 오버플로우가 발생한다. 더욱이 A의 최대 - 정수값은 A의 MSB와 그 결과가 모두 1일지라도 오버플로우의 원인이 될 것이다. 그러므로, A의 최대 -정수값으로 인한 오버플로우를 나타내도록 분리 테스트가 요구된다. 접근의 한 방법으로서, A의 각 비트는 A가 이러한 값을 가졌는가를 결정하도록 검색될 수 있다. 그러나 이것은 최대 -정수값 뿐만 아니라 오버플로우가 원인인 다른 값에 대한 경우이므로, 보다 효율적인 접근 방법은 A의 MSB와 MSB-1 위치가 다른 논리값을 가지는가를 결정하는 것이다. 그러므로, 오버플로우는 이하의 논리합의 방법으로 검출될 수 있다.
(1) A의 MSB 및 그 결과의 MSB의 배타적-OR(EXCLUSIVE-OR)의 논리합
(2) A의 MSB 및 MSB-1의 배타적-OR의 논리합
더욱이, 오버플로우가 발생할 때, 그 결과를 A와 동일한 사인을 가진 최대 정수값으로 고정시키는 것이 바람직하다.
선택적으로, A가 n-비트 수이고 2A+sign(A)가 최소의 n+2 비트 결과면, 그리고나서 오버플로우는 발생하지 않는다. n+2 비트 결과는 A의 최대 - 정수값을 수용하는 것이 필요하다.
예컨대, A가 4-비트 오퍼랜드라고 가정한다. A의 최대 -정수값은 이진수 1000(-8)이다. 1000을 2A+sign(A)로 플러깅하여 6-비트 수인 101111(2x(-8) +(-1)=-17)을 산출한다. 따라서, 그 결과는 A보다 두 개 더 많은 비트를 요구한다. 더욱이, 4-비트 결과 1111은 A와 동일한 MSB를 가진다. 결국, MSB 및 MSB-1 위치가 다른 논리값, 즉, 0100, 0101, 0110, 0111, 1000, 1001, 1010 및 1011을 가지는 A 값에 대하여 4-비트 결과는 항상 오버플로우된다.
2A+sign(A)에 관한 보다 상세한 설명은, 본 출원과 동일자로 출원된 R. Wong의 ″단일 명령 사이클에서의 2A+sign(A)의 연산″이라는 발명의 명칭을 갖는 출원 명세서에 기재되어 있고, 상기 특허출원 명세서의 내용은 본 발명에서 참조로 인용된다.
본 발명은
Figure kpo00073
를 얻기 위한 A의 비트-컴플리멘팅과, A가 0보다 작을 때 2A-sign(A)를 얻기 위한 (
Figure kpo00074
+
Figure kpo00075
)의 비트-컴플리멘팅과, A가 0일 때 2A-sign(A)를 얻기 위한 (
Figure kpo00076
+
Figure kpo00077
+1)의 비트-컴플리멘팅 및 A가 0보다 클때 2A-sign(A)를 얻기 위한 (
Figure kpo00078
+
Figure kpo00079
+2)의 비트-컴플리멘팅에 의한 단일 명령 사이클에서의 2A-sign(A)를 연산한다.
도 2 에는, 본 발명의 일실시예에 따라 2A-sign(A)를 연산하기 위한 알고리즘(200)의 플로우 차아트를 도시한다. 단계(202)에서, 부호화된 2진 오퍼랜드 A가 얻어진다. 결정 단계(204)는 A가 -인가를 테스트한다. A가 -라면, 단계(206)에서 A는 비트-컴플리멘트되고, 단계(208)에서 (
Figure kpo00080
+
Figure kpo00081
)의 합산이 연산되고, 단계(210)에서 (
Figure kpo00082
+
Figure kpo00083
)의 합산은 그 결과를 제공하도록 비트-컴플리멘트되고, 그러한 알고리즘은 마지막 단계(224)에서 종료된다.
결정 단계(204)로 되돌아가서, A가 -가 아니라면, 단계(212)에서 A는 비트-컴플리멘트되고, 결정단계(214)는 A가 0인가를 테스트한다. A가 0이면 단계(216)에서 (
Figure kpo00084
+
Figure kpo00085
+1)의 합산이 연산되고, 단계(218)에서 (
Figure kpo00086
+
Figure kpo00087
+1)의 합산은 그 결과를 제공하기 위해 비트-컴플리멘트되고, 그러한 알고리즘은 마지막 단계(224)에서 종료된다. 결정 단계(214)로 되돌아가서, A가 0이 아니면(그러므로 A또한 -가 아니므로 0보다 큼) 단계(220)에서 (++2)의 합산이 계산되고, 단계(222)에서 +2의 합계는 그 결과를 제공하기 위해 비트-컴플리멘트되고, 그러한 알고리즘은 단계(224)에서 종료한다.
알고리즘(200)의 다양성은 명백하다. 예컨대, A는, A의 사인 비트(또는 컴플리멘트된 사인 비트)가 검색전에 비트-컴플리멘트될 수 있다. 각각의 A 값에 대하여, , 및 의 식들은 각각 A가 0보다 작거나, 0이거나, 또는 0보다 큰가에 따라 선택된 적절한 식으로 연산될 수 있다(요구되면 동시에). 마찬가지로, A는 적절한 식이 연산되기 전에 0보다 작거나, 0이거나, 또는 0보다 큰가에 대해 테스트될 수 있다.
오버플로우에 관해서는, A가 n-비트 수이고, 2A-sign(A)가 n-비트 결과면, 오버플로우가 발생할 수 있다. 오버플로우는 A의 MSB(또는 사인 비트)및 그 결과의 MSB(또는 사인비트)가 다른 논리값을 가질 때 발생한다. 그러므로, 오버플로우는 A의 MSB 및 그 결과의 MSB를 배타적 논리합함에 의해서 검출될 수 있다. 더욱이 오버플로우가 발생될 때, A와 동일한 사인으로 최대 정수값으로 그 결과를 고정하는 것이 바람직할 수 있다. 선택적으로, A가 n-비트 수이고 2A-sign(A)가 최소한 n+1비트 결과면, 그리고나서 오버플로우는 발생하지 않는다. 즉, n+1 비트는 2A를 수용할 것이고, 2A에서 sign(A)를 뺀 값은 결코 2A의 절대값을 넘지 않는다.
2A-sign(A)에 관한 보다 상세한 설명은, 본 출원과 동일자로 출원된 R. Wong의 ″단일 명령 사이클에서 2A-sign(A)의 연산″이라는 발명의 명칭을 갖는 출원 명세서에 기재되어 있으며, 상기 특허출원 명세서의 내용은 본 발명에서 참조로 인용된다.
본 발명은
Figure kpo00088
를 얻기 위한 A의 비트-컴플리멘팅과, A가 0보다 작을 때 A+sign(A)를 얻기 위한 (
Figure kpo00089
+1)의 비트-컴플리멘팅과, A가 0일 때 A+sign(A)를 얻기 위한
Figure kpo00090
의 비트-컴플리멘팅과 A가 0보다 크고 홀수일 때 A+sign(A)를 얻기 위한 (
Figure kpo00091
-1)의 비트-컴플리멘팅 및 A가 0보다 크고 짝수일 때 A+sign(A)를 얻기 위한 의 최하위 비트를 제외하는 모든 비트들의 비트-컴플리멘팅에 의한 단일 명령 사이클에서의 A+sign(A)를 연산한다.
A가 0보다 크고 짝수라면, A의 LSB는 항상 0이 되어야 하므로,
Figure kpo00092
의 LSB는 항상 1이어야 하고,
Figure kpo00093
의 LSB는 항상 0이어야하고,
Figure kpo00094
+1의 LSB는 항상 1이 되어야 한다. 그러므로,
Figure kpo00095
+1은 이하 몇몇 방법으로 얻을 수 있다.
(1)
Figure kpo00096
를 증분한다.
(2)
Figure kpo00097
를 제공하고 LSB를 1로 설정한다.
(3)
Figure kpo00098
를 제공하고
Figure kpo00099
대신에
Figure kpo00100
의 LSB를 선택한다.
(4)
Figure kpo00101
의 LSB를 0으로 설정하고나서, 중간 결과를 비트-컴플리멘팅한다.
모든 경우에서,
Figure kpo00102
+1은
Figure kpo00103
의 LSB를 제외한 모든 비트를 비트-컴플리멘팅한 것과 동일하다.
도 3 은, 본 발명의 다른 실시예에 따라 A+sign(A)를 연산하기 위한 알고리즘(300)의 플로우 차아트이다. 단계(302)에서, 부호화된 2진 오퍼랜드 A가 얻어진다. 결정 단계(304)는 A가 -인가를 테스트한다. A가 -라면, 단계(306)에서 A는 비트-컴플리멘트되고, 단계(308)에서
Figure kpo00104
+1의 합산이 연산되고, 단계(310)에서 그 결과를 제공하기 위해서 (
Figure kpo00105
+1)의 합산은 비트-컴플리멘트되고, 그러한 알고리즘은 마지막 단계(326)에서 종료된다.
결정 단계(304)로 되돌아가서, A가 -가 아니라면, 단계(312)에서 A는 비트-컴플리멘트되고, 결정단계(314)는 A가 홀수인가를 테스트한다. A가 홀수이면(A 또한 -가 아니므로 0보다 크다), 그리고나서, 단계(316)에서,
Figure kpo00106
-1의 차가 연산되고, 단계(318)에서
Figure kpo00107
-1의 차는 그 결과를 제공하기 위해 비트-컴플리멘트되고, 그러한 알고리즘은 마지막 단계(326)에서 종료된다. 결정 단계(314)로 되돌아가서, A가 홀수가 아니면, 그리고나서, 단계(320)에서 A는 비트-컴플리멘트되고, 결정 단계(322)는 A가 0 인가를 테스트한다. A가 0이면,
Figure kpo00108
의 비트-컴플리멘트는 그 결과를 제공하고, 마지막 단계(326)에서 그러한 알고리즘은 종료된다. A 가 0이 아니면(A는 -가 아니고 홀수가 아니므로, 0보다 크고 짝수이다), 그리고나서, 단계(324)에서 의 비트-컴플리멘트는 그 결과를 제공하도록 증분되고, 마지막 단계(326)에서 그러한 알고리즘은 종료된다.
알고리즘(300)의 다양성은 명백하다. 예를들면, A는, A의 사인 비트(또는 컴플리멘트된 사인 비트)가 검색되기 전에 비트-컴플리멘트될 수 있다. 각각의 A 값에 대하여, , , 및 +1 의 식들은 각각 A가 0보다 작거나, 0이거나, 또는 0보다 크고 홀수이거나, 또는 0보다 크고 짝수인가에 따라 선택된 적절한 식으로 연산될 수 있다(요구되면 동시에). 마찬가지로, 그러한 적절한 식이 연산되기 전에 A는 0보다 작거나, 0이거나, 또는 0보다 크고 홀수이거나 또는 0보다 크고 짝수인가에 대해 테스트될 수 있다.
오버플로우에 관해서는, A가 n-비트 수이고, A+sign(A)가 n-비트 결과면, 오버플로우가 발생할 수 있다. 특히 A가 최대 + 또는 - 정수값을 가지면, 그리고나서, sign(A)의 가산은 오버플로우의 원인이 될 것이다. 또한 오버플로우가 발생할때 A 의 MSB(또는 사인 비트) 및 그 결과의 MSB(또는 사인비트)는 다른 논리값을 가진다. 그러므로, 오버플로우는 A의 MSB 및 그 결과의 MSB의 배타적 논리합에 의해서 검출될 수 있다. 더욱이 오버플로우가 발생할 때, 최대 + 또는 - 정수값을 이미 나타낸 결과를 A로 고정하는 것이 바람직 할 수 있다.
선택적으로, A가 n-비트 수이고 A+sign(A)가 최소한 n+1비트 결과면, 그리고나서 오버플로우는 발생하지 않는다. 즉, A+sign(A)가 2A를 초과하지 않으므로, n+1결과는 A+sign(A)를 수용한다.
A+sign(A)에 관한 보다 상세한 설명은, 본 출원과 동일자로 출원된 R. Wong의 ″단일 명령 사이클에서 A+sign(A)의 연산″이라는 발명의 명칭을 갖는 출원 명세서에 기재되어 있고, 상기 특허출원 명세서의 내용은 본 발명에서 참조로 인용된다.
본 발명은 를 얻기 위한
Figure kpo00109
의 비트-컴플리멘팅과, A가 0보다 작을 때 A-sign(A)를 얻기 위한 (
Figure kpo00110
-1)의 비트-컴플리멘팅과, A가 0일 때 A-sign(A)를 얻기 위한 의 비트-컴플리멘팅과, A가 0보다 클 때 A-sign(A)를 얻기 위한 (
Figure kpo00111
+1)의 비트-컴플리멘팅에 의한 단일 명령 사이클에서의 A-sign(A)를 연산한다.
도 4 는, 본 발명의 다른 일실시예에 따라 A-sign(A)를 연산하기 위한 알고리즘(400)의 플로우 차아트이다. 단계(402)에서, 부호화된 2진 오퍼랜드 A가 얻어진다. 결정 단계(404)는 A가 -인가를 테스트한다. A가 -이면, 단계(406)에서, A는 비트-컴플리멘트되고, 단계(408)에서
Figure kpo00112
-1의 차가 연산되고, 단계(410)에서
Figure kpo00113
-1의 차는 그 결과를 제공하도록 비트-컴플리멘트되고, 마지막 단계(422)에서 그러한 알고리즘은 종료된다. 결정 단계(404)로 되돌아가서, A가 -가 아니면, 단계(412)에서 A는 비트-컴플리멘트되고, 결정단계(414)는 A가 0인가를 테스트한다. A가 0이면 단계(416)에서 는 그 결과를 제공하도록 비트-컴플리멘트되고, 마지막 단계(422)에서 그러한 알고리즘은 종료된다. 결정 단계(404)로 되돌아가서, A가 -가 아니면, 단계(412)에서 A는 비트-컴플리멘트되고, 결정 단계(414)는 A가 0인가를 테스트한다. A가 0이면, 단계(416)에서, 는 그 결과를 제공하도록 비트-컴플리멘트되고, 마지막 단계(422)에서 그러한 알고리즘은 종료된다.
결정 단계(414)로 되돌아가서, A가 0이 아니면(A또한 -가 아니므로 0보다 크다), 단계(418)에서
Figure kpo00114
+1의 합계는 연산되고, 단계(420)에서,
Figure kpo00115
+1의 합계는 그 결과를 제공하도록 비트-컴플리멘트되고, 마지막 단계(422)에서 그러한 알고리즘은 종료된다.
알고리즘(400)에 대한 다양성은 명백하다. 예를들면, A는 A의 사인 비트(또는 컴플리멘트된 사인 비트)가 검색되기 전에 비트-컴플리멘트될 수 있다. 각각의 A 값에 대하여
Figure kpo00116
,
Figure kpo00117
Figure kpo00118
의 식은 각각 A가 0보다 작거나, 0이거나, 0보다 큰가에 따라 선택된 적절한 식으로 연산될 수 있다(요구되면 동시에). 마찬가지로, A는 적절한 식이 연산되기 전에 0보다 작거나, 0이거나, 0보다 큰가에 대해 테스트될 수 있다.
오버플로우에 관해서는, A가 n-비트 수이고, A-sign(A)가 n-비트 결과면, 오버플로우가 발생하지 않는다. 즉, A-sign(A)는 결코 A의 절대값을 넘지 않는다.
A-sign 관한 보다 상세한 설명은, 본 출원과 동일자로 출원된 R. Wong의 ″단일 명령 사이클에서 A-sign(A)의 연산″이라는 발명의 명칭을 갖는 출원 명세서에 기재되어 있고, 상기 특허 출원 명세서의 내용은 본 발명에서 참조로 인용된다.
A의 제로 검출은 A의 비트-컴플리멘팅에 의해서 수행될 수 있고, A의 비트-컴플리멘트를 증분함에 의해서 발생되는 MSB 위치로부터의 자리올림 비트의 검색에 의해서 수행될 수 있다. 상기 자리올림 비트는, A의 비트 컴플리멘트가 1의 스트링일때만 1이고, 그렇지 않으면, 자리올림 비트는 0이다. 더욱이 A의 비트-컴플리멘트는 A가 0의 스트링일때만, 1의 스트링이다. 그러므로, A의 비트-컴플리멘트를 증분함에 의해서 발생되는 자리올림 비트는 A가 0일때만 1이다. 유사한 방식으로, A의 제로 검출은 A를 감소함에 의해서 수행될 수 있고, A-1을 증분함에 의해서 발생된 자리올림 비트를 검색함에 의해서 수행될 수 있다.
A의 제로 검출은 또한,
Figure kpo00119
합산의 MSB 위치로부터의 제 1 자리올림 비트를 발생하고,
Figure kpo00120
+
Figure kpo00121
+2의 합산의 MSB 위치로부터의 제 2 자리올림 비트를 발생하고, 상기 제 1 및 제 2 자리올림 비트가 다른 논리값을 가졌는가를 결정함에 의해서 수행될 수 있다. A가 0일 때, 제 1 차 합산은 1의 스트링이고, 제 2 차 합산은 0의 스트링이고, 제 1 및 제 2 자리올림 비트는 다른 논리값을 가질 것이다. 마찬가지로, A가 0이 아닐 때, 제 1 및 제 2 자리올림 비트들은 동일한 논리값을 가질 것이다. 유리하게 제 1 및 제 2 자리올림 비트는 신속한 제로 검출을 제공하기 위해 동시에 발생될 수 있다. 더욱이, 제 1 및 제 2 자리올림 비트는 실제로 그 수들을 합산함없이(또는 그전에). 예를들면 PG 제너레이터부의 사용 및 자리올림 체인에 의해서 발생될 수 있다.
A가 n-비트 오퍼랜드라고 가정한다. A가 0이면, A+A의 합산은 0의 n-비트 스트링이다. 결과적으로, A+A 또는
Figure kpo00122
의 비트-컴플리멘트는 1의 n-비트 스트링이고,
Figure kpo00123
의 증분은 1의 자리올림 비트를 갖는 0의 n-비트 스트링을 제공한다. 따라서, A에 대한 제로 검출은 A+A의 가산과,
Figure kpo00124
를 얻기 위한 A+A의 비트-컴플리멘팅,
Figure kpo00125
의 증분 및 자리올림 비트의 검색에 의해서 제공될 수 있다. 그러나, 알고리즘(100) 내지 (400)에서, A+A는 연산되지 않는다. 이하, 대수학의 조작을 고려한다.
(1)
Figure kpo00126
= -(A+A)-1
(2)
Figure kpo00127
= -A+-A-1
(3)
Figure kpo00128
= (
Figure kpo00129
+1)+(
Figure kpo00130
+1)-1
(4)
Figure kpo00131
=
Figure kpo00132
+
Figure kpo00133
+1
마찬가지로,
(5)
Figure kpo00134
+1 = -(A+A)-1+1
(6)
Figure kpo00135
+1= -A+-A-1+1
(7)
Figure kpo00136
+1= (
Figure kpo00137
+1)+(
Figure kpo00138
+1)
(8)
Figure kpo00139
+1=
Figure kpo00140
+
Figure kpo00141
+2
따라서, A가 0의 n-비트 스트링이면,
Figure kpo00142
+
Figure kpo00143
+1은 MSB 위치로 부터 1의 제 1 자리올림 비트를 발생하는 1의 n-비트 스트링이고,
Figure kpo00144
+
Figure kpo00145
+2는 MBS 위치(버려진 MSB+1 위치로부터의 1의 다른 자리올림 비트)로부터 0의 제 2 자리올림 비트를 발생하는 0의 n-비트 스트링이다. 따라서, 제 1 및 제 2 자리올림 비트는 A가 0이므로 다른 논리값을 가진다. 주목할 것은,
Figure kpo00146
+
Figure kpo00147
+1과
Figure kpo00148
+
Figure kpo00149
+2의 합산은 2A+sign(A)를 연산하고, 2A-sign(A)를 연산하고 또한 A가 0인가를 결정하기 위해 사용될 수 있다.
A의 제로 검출은 또한,
Figure kpo00150
+0의 합산의 MSB 위치로부터의 제 1 자리올림 비트를 발생하고,
Figure kpo00151
+1의 합산의 MSB 위치로부터의 제 2 자리올림 비트를 발생하고, 상기 제 1 및 제 2 자리올림 비트가 다른 논리값을 가졌는가를 결정함에 의해서 수행될 수 있다. A가 0일 때, 제 1 차 합산은 1의 스트링이고, 제 2 차 합산은 0의 스트링이고, 제 1 및 제 2 자리올림 비트는 다른 논리값을 가질 것이다. 마찬가지로, A 가 0이 아닐 때, 제 1 및 제 2 자리올림 비트들은 동일한 논리값을 가질 것이다. 장점으로는, 제 1 및 제 2 자리올림 비트는 신속한 제로 검출을 제공하기 위해 동시에 발생될 수 있다. 더욱이, 제 1 및 제 2 자리올림 비트는 실제로 그 수들을 합산하지 않고(또는 그전에)발생될 수 있는데, 예를들면, PG 제너레이터부의 사용 및 자리올림 체인에 의해서 발생될 수 있다. 따라서, A가 0의 n-비트 스트링이면,
Figure kpo00152
+0은 MSB 위치로부터의 0의 제 1 자리올림 비트를 발생하는 1의 n -비트 스트링이고,
Figure kpo00153
+1은 MSB 위치로 부터 1의 제 2 자리올림 비트를 발생하는 0의 n-비트 스트링이다. 따라서, 제 1 및 제 2 자리올림 비트는 A 가 0이므로, 다른 논리값을 가진다. 주목할 것은,
Figure kpo00154
+0과
Figure kpo00155
-1의 합산은 A+sign(A)와 A-sign(A)를 연산하고, A가 0인가를 결정하는데에 사용될 수 있다는 것이다.
제로 검출에 대한 보다 상세한 설명은 R.Wong명의로 1996. 6. 5자로 출원된 ″이진 합산을 위한 제로 검출″라는 제하의 미합중국 특허출원 제 08/658,454에 기재되어 있으며, 상기 특허출원의 내용은 본 발명에서 참조로 인용된다.
도 5 는, 본 발명의 다른 실시예에 따라 2A+sign(A),2A-sign(A), A+sign(A) 및 A-sign(A)를 연산하기 위한 논리회로(500)의 블록 다이어그램이다.
인버터 회로(502)는 A에 결합된 오퍼랜드 입력을 포함하고,
Figure kpo00156
출력에서 를 발생한다. 멀티플렉서(504)는 제 1 및 제 2 오퍼랜드 입력에서,
Figure kpo00157
및 0을 수신하고, B에서 나타낸 바와같이, 사인 3 식중에서 선택된 한 식을 표시하는 MODE 시그널(다수의 시그널을 포함할 수 있다)에 대한 응답으로
Figure kpo00158
또는 0중에서 하나를 출력한다. MODE 시그널이 선택된 2A+sign(A) 또는 2A-sign(A)를 표시할 때, 그리고나서 멀티플렉서(504)는
Figure kpo00159
를 출력하고, 반면에 MODE 시그널이 선택된 A+sign(A) 또는 A-sign(A)를 표시할 때, 그리고나서, 멀티플렉서(504)는 0을 출력한다. 데이터 셀렉터 회로(506)는 MODE 시그널과 A를 수신하고 적정값으로 설정된 상수 C를 발생한다. 특히, 데이터 셀렉터 회로(506)는 A가 -이고, 2A+sign(A)가 선택될 때 상수 C 를 2로 설정하고, A가 +이고 2A+sign(A) 또는 2A-sign(A)가 선택될 때, 또는 A가 -이고 A+sign(A)가 선택될 때, 상수 C를 1로 설정하고, A가 -이고 2A-sign(A)가 선택될 때 또는 A가 0 이거나 또는 0보다 크고 짝수이고 A+sign(A)가 선택될 때 또는 A가 +이고 A-sign(A)가 선택될 때, 상수 C를 0으로 설정하고, A가 +이고 홀수이며 A+sign(A)가 선택될 때 또는 A가 -이고 A-sign(A)가 선택될 때 상수 C를 -1로 설정한다. 선택된 식의 함수로서 상수 C와 A는 이하 표 1에 나타낸다.
[표 1]
선택된 식의 함수로서의 상수 C와 A
Figure kpo00160
가산회로(508)는 를 수신하기 위한 제 1 오퍼랜드 입력과, 멀티플렉서(504)로부터의 또는 0을 수신하기 위한 제 2 오퍼랜드 입력 및 데이터 셀렉터 회로(506)로부터 상수 C를 수신하기 위한 제 3 오퍼랜드 입력을 포함한다. 가산 회로(508)는 합산 출력에서, 제 1, 제 2 및 제 3 오퍼랜드의 합산을 발생하고, 합산+1 출력에서 제 1, 제 2 및 제 3 오퍼랜드의 합산+1을 발생한다. 따라서, 2A+sign(A) 또는 2A-sign(A)가 선택될 때, 가산 회로(508)는 합산 출력에서 ++C를 발생하고, 합산+1 출력에서 ++C+1을 발생하고, A+sign(A) 또는 A-sign(A)가 선택될 때, 가산 회로(508)는 합산 출력에서 +C를 발생하고 합산+1 출력에서 +C+1을 발생한다. 멀티플렉서(510)는 제 1 및 제 2 오퍼랜드 입력에서 합산+1 출력과 합산 출력을 수신한다. 멀티플렉서(510)는 합산출력 또는 제어회로(512)로부터의 제 1 제어신호에 응답하여 합산+1 출력을 선택한다. 멀티플렉서(510)는 또한 합산 출력 또는 제어회로(512)로부터의 제 2 제어신호에 응답하여 0으로 설정된 LSB를 가진 합산 출력을 선택한다. 따라서, 멀티플렉서(510)는 합산 출력이나, 0으로 설정된 LSB를 가진 합산 출력 또는 제어 회로(512)에 응답하는 합산+1 출력중의 하나를 출력한다.
제어회로(512)는 MODE 시그널과, A 및 제로 검출 회로(514)로부터의 제로 검출 시그널을 수신한다. 제로 검출 시그널은 A 가 0인지 아닌지를 표시한다. 제어회로(512)는 A가 0보다 크고 2A-sign(A) 또는 A-sign(A)가 선택될 때, 합산+1 출력을 선택하도록 멀티플렉서(510)에 지시한다. 제어회로(512)는 A가 0보다 작거나 0일 때 또는 A가 0보다 크고 홀수일 때와 A+sign(A)가 선택될 때 합산 출력을 선택하도록 멀티플렉서(510)에 지시한다. 제어회로(512)는 A가 0보다 크고 2A+sign(A)가 선택될 때 또는 A가 0보다 크고 짝수이며 A+sign(A)가 선택될 때 0으로 설정된 LSB를 가진 합산 출력을 선택하도록 멀티플렉서(510)에 지시한다.
선택된 식과 A의 함수로서 멀티플렉서(510)의 출력을 이하 표 2에 나타낸다.
[표 2]
선택된 수식 및 A의 함수로서 멀티플렉서(510)의 출력
Figure kpo00161
인버터 회로(516)는 멀티플렉서(510)의 출력을 수신하고, 그 결과를 제공하도록 그의 비트-컴플리멘트를 발생한다. 선택된 식 및 A의 함수로서의 결과를 이하의 표 3에 나타낸다.
[표 3]
선택된 수식 및 A 의 함수로서의 결과
Figure kpo00162
논리회로(500)에 대한 다수의 변동이 이용가능하다. 예를들면, 인버터 회로(502) 및 멀티플렉서(504)는 1비트 위치에 의해서 산술적으로 의 좌측-시프트로 수정될 수 있고, 2A+sign(A) 또는 2A-sign(A)가 선택될 때, 산술적으로 좌측-시프트된 (또는 2)를 가산회로(508)의 제 1 오퍼랜드 입력에 적용하고, 그렇지 않으면, 를 제 1 오퍼랜드 입력에 적용한다. 이러한 방식으로, 상수 C는 가산 회로(508)의 제 2 오퍼랜드 입력에 적용될 수 있고 가산회로(508)의 제 3 오퍼랜드 입력은 불필요하다. A가 0보다 크고 2A+sign(A)가 선택될 때, 또는 A가 0보다 크고 짝수이며 A+sign(A)가 선택될 때 상기 결과의 LSB를 1로 설정되도록 하는 다양한 기술이 사용될 수 있다. 더욱이 제로 검출 회로(514)는 직접 A를 검색하는 대신에 상기 합산의 MSB 위치로부터의 자리올림 비트와 가산회로(508)의 합산+1 출력을 검색하도록 수정될 수 있다.
도 6A 내지 도 6D 는 본 발명의 다른 실시예에 따라 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A)를 연산하기 위한 논리 회로도이다. 논리 회로(600)는 A0, A1, A2, 및 A3 비트들로 구성된 4-비트 오퍼랜드 A를 수신하고, R0, R1, R2 및R3 비트로 구성된 4-비트 결과를 연산한다. 비트 A3 및 R3는 MSB들이다.
논리 회로(600)는 또한 오버 플로우 시그널 OV를 발생한다. 논리회로(600)는 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 식을 각각 선택하기 위해 수식선택 시그널인 DAS3(duble add sign 3), DSS3(double subract sign 3), AS3(add sign 3) 및 SS3(subtract sign 3)을 수신한다. 따라서, DAS3, DSS3, AS3, SS3의 신호들은 MODE 시그널에 상응한다. 주어진 명령 사이클동안 선택된 수식중의 하나가 연산된다. 그러므로, DAS3, DSS3, AS3 및 SS3 시그널중의 한 시그널은 1이고(또는 제 1 논리값), 다른 시그널들은 0이다(또는 제 2 논리값). 선택된 수식에 대한 시그널들은 이하의 표 4에 나타낸다.
[표 4]
선택된 수식에 대한 신호
Figure kpo00163
도 6A 를 참조하면, 비트 A3은 인버터(602)에 적용되고, 비트 A2는 인버터(604)에 적용되고, 비트 A1은 인버터(606)에 적용되고, 비트 A0는 인버터(608)에 적용된다. 인버터(602, 604, 606 및 608)는 각각 비트 3, 2, 1 및 0를 발생한다. 따라서, 인버터(602, 604, 606 및 608)는 인버터 회로(502)에 상응한다.
NOR 게이트(612, 614, 616 및 618)는 각각 비트 A3, A2, A1 및 A0를 수신한다. 더욱이 NOR 게이트(612, 614, 616 및 618)는 각각 시그널 AS3 및DS3을 수신한다. NOR 게이트(612, 614, 616 및 618)는 각각 비트 B3, B2, B1 및 B0들을 발생한다. 그러므로, 시그널 DAS3 또는 DSS3이 1일 때(따라서, 시그널 AS3 및 SS3은 모두 0이다), NOR 게이트(612, 614, 616 및 618)는 각각 비트 3, 2, 1 및 0로서 비트 B3, B2, B1 및 B0를 발생한다. 반면에, 시그널 AS3 또는 SS3이 1일 때, N논리합 게이트(612, 614, 616 및 618)는 0으로서, 비트 B3, B2, B1 및 B0를 발생한다. 따라서, NOR 게이트(612, 614, 616 및 618)는 멀티플렉서(504)에 상응한다.
OR 게이트(622, 624, 626 및 628)는 각각 비트 C3, C2, C1 및 C0를 발생한다. 시그널 DAS3이 1이고 시그널 DSS3, AS3 및 SS3이 0이고 비트 A3이 1일 때, AND 게이트(630, 632)는 0을 발생하고, AND 게이트(634)는 1을 발생하고 AND 게이트(636, 638 및 640)은 0을 발생하고, OR 게이트(622, 624, 626 및 628)는 0010으로서, 비트 C3, C2, C1, 및 C0를 발생한다.
시그널 DAS3이 1이고 시그널 DSS3, AS3 및 SS3이 0이고 비트 A3이 0일 때, AND 게이트(630, 632 및 634)는 0을 발생하고, AND 게이트(640)는 1을 발생하고, 논리합 게이트(622, 624, 626 및 628)는 0001으로서, 비트 C3, C2, C1, 및 C0를 발생한다. 시그널 DSS3이 1이고 시그널 DAS3, AS3 및 SS3이 0이고 비트 A3이 1일 때, AND 게이트(630, 632, 634, 636, 638 및 640)는 0을 발생하고, 논리합 게이트(622, 624, 626 및 628)는 0000으로서, 비트 C3, C2, C1, 및 C0를 발생한다. 시그널 DSS3이 1이고 시그널 DAS3, AS3 및 SS3이 0이고 비트 A3이 0일 때, AND 게이트(630, 632 및 634)는 0을 발생하고, AND 게이트(638)는 1을 발생하고 논리합 게이트(622, 624, 626 및 628)는 0001으로서, 비트 C3, C2, C1, 및 C0를 발생한다. 시그널 AS3이 1이고 시그널 DAS3, DSS3 및 SS3이 0이고 비트 A3이 1일 때, NOR 게이트(642)는 0을 발생하고, 논리합 게이트(644)는 1을 발생하고, AND 게이트(630, 632 및 634)는 0을 발생하고, AND 게이트(636)는 1을 발생하고, OR 게이트(622, 624, 626 및 628)는 0001으로서, 비트 C3, C2, C1,및 C0를 발생한다. 시그널 AS3이 1이고 시그널 DAS3, DSS3 및 SS3이 0이고 비트 A3 및 A0이 0일 때, NOR 게이트(642) 및 논리합 게이트(644)는 0을 발생하고, AND 게이트(630, 632, 634, 636, 638 및 640)는 0을 발생하고, 논리합 게이트(622, 624, 626 및 628)는 0000으로서, 비트 C3, C2, C1,및 C0를 발생한다. 시그널 AS3이 1이고 시그널 DAS3, DSS3 및 SS3이 0이고 비트 A3이 0이고 비트 A0이 1일 때, NOR 게이트(642) 및 논리합 게이트(644)는 1을 발생하고, AND 게이트(632) 및 (636)는 1을 발생하고, 논리합 게이트(622, 624, 626 및 628)는 1111으로서, 비트 C3, C2, C1,및 C0를 발생한다. 시그널 SS3은 1이고 시그널 DAS3, DSS3 및 AS3은 0이고 비트 A3이 0일 때, AND 게이트(630, 632, 634, 636, 638 및 640)는 0을 발생하고, OR 게이트(622, 624, 626 및 628)는 0000으로서, 비트 C3, C2, C1,및 C0를 발생한다. 따라서, OR 게이트(622, 624, 626, 628 및 644)와 AND 게이트(630, 632, 634, 636, 638 및 640)과 NOR 게이트(642)는 데이터 셀렉터 회로(506)에 상응한다.
도 6B 를 참조하면, 3, B3 및 C3는 전 가산기(646)에 적용되고, 비트 2, B2, 및 C2는 전 가산기(648)에 적용되고, 비트 1, B1, 및 C1은 전 가산기(650)에 적용되고, 비트 0, B0 및 C0는 전 가산기(652)에 적용된다. 전 가산기(646, 648, 650 및 652)의 출력은 합산과 합산+1 가산기(654)의 오퍼랜드 입력에 적용된다. 특히, 전 가산기(646)의 합산 비트 SA 및 전 가산기(648)의 자리올림 비트 CB는 가산기(654)의 단계 3에 적용되고, 전 가산기(648)의 합산 비트 SB와 전 가산기(650)의 자리올림 비트 CC는 가산기(654)의 단계 2에 적용되고, 전 가산기(650)의 합산 비트 SC와 전 가산기(652)의 자리올림 비트 CD는 가산기(654)의 단계 1에 적용되고 전 가산기(652)의 합산 비트 SD 및 0은 가산기(654)의 단계 0에 적용된다. 가산기(654)는 비트 S3, S2, S1 및 S0으로 구성된 합산 출력과, 비트 S+13, S+12, S+11 및 S+10으로 구성된 합산+1 출력을 발생한다. 가산기(654)는 또한 합산 출력의 단계 3으로부터의 제 1 자리올림 출력 비트 COUT1과, 합산+1 출력의 단계 3으로부터의 제 2 자리올림 출력 비트 COUT2를 발생한다. 따라서, 가산기(646, 648, 650 및 652)와 가산기(654)는 가산회로(508)에 상응한다.
제 1 및 제 2 자리올림 출력 비트 COUT1 및 COUT2는 제로 검출 시그널 ZD가 제공된 배타적 OR 게이트(656)에 적용된다. 비트 COUT1 및 COUT2가 다른 논리 값을 가질 때, 시그널 ZD는 1이고, 비트 COUT1 및 COUT2가 동일한 논리 값을 가질 때, 시그널 ZD는 0이다. 전기한 바와 같이, 제로 검출회로(514)가 가산회로(508)의 합산 및 합산+1 출력의 MSB 위치로부터 자리올림 비트를 검색하도록 수정될 수 있음에도 불구하고, 배타적 OR 게이트(656)는 제로 검출 회로(514)에 상응한다.
합산 출력 및 합산+1 출력은 멀티플렉서(658)의 제 1 및 제 2 오퍼랜드 입력에 적용되고, 선택 시그널 SEL1 및 SEL2는 멀티플렉서(658)의 선택 입력에 적용된다. 멀티플렉서(658)는 비트 M3, M2, M1 및 M0 를 출력한다. 시그널 SEL1은 합산및 합산+1 출력간에 선택되도록 멀티플렉서(658)에 지시하고, 시그널 SEL2는 합산 출력과 0으로 설정된 LSB를 가진 합산 출력간에서 선택하도록 멀티플렉서(658)에 지시한다. 특히 시그널 SEL1이 1이고, 시그널 SEL2가 0일 때 멀티플렉서(658)는 비트 M3, M2, M1 및 M0를 비트 S+13, S+12, S+11 및 S+10 으로 설정한다. 시그널 SEL1 및 SEL2가 0일 때, 멀티플렉서(658)는 비트 M3, M2, M1 및 M0 를 비트 S3, S2, S1 및 S0으로 각각 설정한다. 시그널 SEL1이 0이고, 시그널 SEL2가 1일 때, 멀티플렉서(658)는 비트 M3, M2, M1 및 M0를 비트 S3, S2, S1 및 0으로 각각 설정한다. 따라서, 멀티 플렉서(658)는 멀티플렉서(510)에 상응한다. 비트 M3는 인버터(662)에 적용되고, 비트 M2는 인버터(664)에 적용되고, 비트 M1은 인버터(666)에 적용되고, 비트 M0는 인버터(668)에 적용된다. 인버터(662, 664, 666 및 668)는 각각의 비트 R3, R2, R1 및 R0를 발생한다. 따라서 인버터(662, 664, 666 및 668)은 인버터 회로(516)에 상응한다.
도 6C 를 참조하면, 시그널 DSS3 및 SS3는 논리합 게이트(670)에 적용되고, 비트 A3 및 시그널 ZD는 NOR 게이트(672)에 적용되고, 논리합 게이트(670) 및 NOR 게이트(672)의 출력은 시그널 SEL1을 발생하는 AND 게이트(674)에 적용된다. 시그널 DSS3 또는 SS3이 1일 때, 그리고 비트 A3 및 시그널 ZD가 모두 0일 때(A 가 0보다 크다고 표시되는), 시그널 SEL1은 1이고, 그렇지 않으면, 시그널 SEL1은 0이다. 시그널 DAS3와 NOR 게이트(672)의 출력은 AND 게이트(676)에 적용되고, AND 게이트(676)의 출력은 시그널 SEL2를 발생하는 OR 게이트(678)에 적용된다. 더욱이 시그널 AS3과, 시그널 ZD의 비트-컴플리멘트(인버터(680)을 통한) 및 비트 3및 0 는 네 개의 입력 AND 게이트(682)에 적용되고, AND 게이트(682)의 출력은 OR 게이트(678)에 적용된다. 시그널 DAS3이 1이고, 비트 A3 및 시그널 ZD가 모두 0일 때(A 가 0보다 크다고 표시되는), 시그널 SEL2은 1이다. 시그널 AS3가 1이고 시그널 ZD가 0이고 비트 3 및 0가 모두 1일 때(A가 0보다 크고 짝수임을 표시하는), 시그널 SEL2은 1이다. 그렇지 않으면 시그널 SEL2는 0이다. 따라서, OR 게이트(670 및 678)과 NOR 게이트(672)와 AND 게이트(674, 676 및 682)와 인버터(680)는 제어회로(512)에 상응한다.
도 6D 를 참조하면, 비트 A3 및 A2는 배타적 OR 게이트(684) 및 시그널 DAS3에 적용되고 배타적 OR 게이트(684)의 출력은 AND 게이트(686)에 적용되고, 오버플로우를 표시하는 시그널 OV를 발생하는 OR 게이트(688)에 상기 출력이 적용된다. 게다가, 비트 A3 및 R3는 배타적 논리합 게이트(690)에 적용되고, 시그널 SS3은 인버터(692)에 적용되고, 배타적 OR 게이트(690) 및 인버터(692)의 출력은 AND 게이트(694)에 적용되고, AND 게이트(694)의 출력은 OR 게이트(688)에 적용된다. 시그널 DAS3이 1이고 A의 2개의 최상위 비트가 다른 논리값을 가질 때 시그널 OV는 1이다. 시그널 DAS3, DSS3 또는 AS3이 1이고(그러므로 시그널 SS3은 0이다.), A의 MSB(또는 사인 비트)와 그 결과가 다른 논리값을 가질 때, 그리고나서, 시그널 OV 는 1이다. 그렇지않으면 시그널 OV는 0이다. 시그널 SS3이 1일 때, A가 -1이고 그 결과가 0일 때(-1-(-1)=0), A의 MSB들과 그 결과가 다른 논리값을 가질지라도 오버플로우는 결코 발생하지 않는 것이 주목된다. 시그널 SS3의 비트-컴플리멘트를 AND 게이트(694)에 적용하여 이러한 환경하에서, 시그널 OV를 1로 설정하는 것을 방지한다. 요구되면 선택적으로, 인버터(680)에 의해서 제공된 시그널 ZD의 비트-컴플리멘트는 시그널 SS3 의 비트-컴플리멘트 대신에 AND 게이트(694)에 적용될 수 있다.
시그널 DAS3가 1이라고 가정한다(그러므로, 시그널 DSS3, AS3 및 SS3은 0이다.). A가 0보다 작을 때, 가산기(654)는 합산 출력에서 ++2를 발생하고, 멀티플렉서(658)는 합산 출력을 선택하고, 인버터(662 내지 668)은 를 발생한다. A가 0일 때, 가산기(654)는 합산 출력에서 ++1을 발생하고, 멀티플렉서(658)는 합산 출력을 선택하고 인버터(662)내지(668)는 을 발생한다. A 가 0보다 클 때, 가산기(654)는 합산 출력에서 ++1을 발생하고, 멀티플렉서(658)는 0으로 설정된 LSB를 가진 합산 출력을 선택하고, 인버터(662 내지 668)은 +1 을 발생한다.
시그널 DSS3이 1이라고 가정한다(그러므로, 시그널 DAS3, AS3 및 SS3은 0다.). A가 0보다 작을 때, 가산기(654)는 합산 출력에서 +를 발생하고, 멀티플렉서(658)는 합산 출력을 선택하고, 인버터(662 내지668)은 를 발생한다. A가 0일 때, 가산기(654)는 합산 출력에서 ++1을 발생하고, 멀티플렉서(658)는 합산 출력을 선택하고 인버터(662 내지 668)는을 발생한다. A가 0보다 클 때, 가산기(654)는 합산+1 출력에서 ++2를 발생하고, 멀티플렉서(658)는 합산+1 출력을 선택하고, 인버터(662 내지 668)은 를 발생한다.
시그널 AS3이 1 이라고 가정한다(그러므로, 시그널 DAS3, DSS3 및 SS3은 0이다.). A가 0보다 작을 때, 가산기(654)는 합산 출력에서 +1를 발생하고, 멀티플렉서(658)는 합산 출력을 선택하고, 인버터(662 내지 668)은 을 발생한다. A가 0일 때, 가산기(654)는 합산 출력에서 +0을 발생하고, 멀티플렉서(658)는 합산 출력을 선택하고 인버터(662 내지 668)는 를 발생한다. A가 0보다 크고 홀수일 때, 가산기(654)는 합산 출력에서 -1을 발생하고, 멀티플렉서(658)는 합산 출력을 선택하고, 인버터(662 내지 668)은 을 발생한다. A가 0보다 크고 짝수일 때, 가산기(654)는 합산 출력에서 +0를 발생하고, 멀티플렉서(658)는 0으로 설정된 LSB를 갖는 합산 출력을 선택하고, 인버터(662 내지 668)은 +1을 발생한다.
시그널 SS3이 1이라고 가정한다(그러므로, 시그널 DAS3, DSS3 및 AS3은 0이다.). A가 0보다 작을 때, 가산기(654)는 합산 출력에서 -1을 발생하고, 멀티플렉서(658)는 합산 출력을 선택하고, 인버터(662 내지 668)은 을 발생한다. A가 0일 때, 가산기(654)는 합산 출력에서 를 발생하고, 멀티플렉서(658)는 합산 출력을 선택하고 인버터(662 내지 668)는 를 발생한다. A가 0보다 클 때, 가산기(654)는 합산+1 출력에서 +1을 발생하고, 멀티플렉서(658)는 합산+1 출력을 선택하고, 인버터(662)내지(668)은 을 발생한다.
도 7 은, 멀티플렉서(658)의 수행을 나타낸다. 시그널 SEL1이 1이고, 시그널 SEL2가 0일 때, AND 게이트(702, 704, 706 및 708)은 비트 M3, M2, M1 및 M0를 각각 제공하도록 비트 S+13, S+12, S+11 및 S+10을 논리합 게이트(712, 714, 716 및 718)에 결합한다.
마찬가지로, 시그널 SEL1 및 시그널 SEL2가 모두 0일 때, AND 게이트(722, 724, 726 및 728)은 비트 M3, M2, M1 및 M0를 각각 제공하도록 비트 S3, S2, S1 및 S0을 논리합 게이트(712, 714, 716 및 718)에 결합한다. 마지막으로, 시그널 SEL1이 0 이고 SEL2가 1일 때, AND 게이트(722, 724, 726 및 728)은 비트 M3, M2, M1 및 M0를 각각 제공하도록 비트 S3, S2, S1 및 0을 OR 게이트(712, 714, 716 및 718)에 결합한다. 어떤경우에도, 시그널 SEL1 및 SEL2을 동시에 1로 설정하지 않는다.
도 8 은, 가산기(654)에 대한 수행을 나타낸다. 이러한 수행에서, 합산 출력은 명령 사이클의 기본 단계 시간내에 신속한 가산을 수행하는 올림수 진행 가산기에 의해서 제공된다. 전파발생부(PG부)(802, 804, 806 및 808)는 비트 SA 및 CB, SB 및 CC, SC 및 CD, SD 및 0을 각각 수신하고, 전파 및 발생 시그널 P3 및 G3, P2 및 G2, P1 및 G1, P0 및 G0를 각각 제공한다.
전파 및 발생 시그널은 제 1 자리올림 체인(810) 및 제 2 자리올림 체인(812)의 각각의 단계에 제공된다. 제 1 자리올림 체인(810)은 최하위 자리올림 입력 비트 CIN1로서 0을 수신하고, 자리올림 출력 비트 COUT1, CE, CF 및 CG를 발생한다. 제 2 올림수 체인(812)은 최하위 자리올림 입력 비트 CIN2로서 1을 수신하고, 자리올림 출력 비트 COUT2, CH, CI 및 CJ를 발생한다. 따라서, 제 1 및 제 2 자리올림 출력 비트 COUT1 및 COUT2는 올림수 체인(810 및 812)의 MSB 위치로부터 각각 발생된다. 유리하게, 제 1 및 제 2 자리올림 출력 비트 COUT1 및 COUT2는 동시에 발생된다. 합산 제너레이터(814)는 단계 3에서 비트 SA, CB, 및 CE를 수신하고, 단계 2에서, 비트 SB,CC, 및CF를 수신하고, 단계 1에서, 비트 SC, CD,및 CG를 수신하고, 단계 0에서 비트 SD와 한쌍의 0을 수신하고 합산 비트 S3, S2,S1 및 S0를 발생한다. 마찬가지로, 합산 제너레이터(816)는 단계 3에서 비트 SA, CB, CH를 수신하고, 단계 2에서, 비트 SB, CC, 및 C1을 수신하고, 단계 1에서, 비트 SC, CD, 및 CJ를 수신하고, 단계 0에서, 비트 SD와 한쌍의 0을 수신하고, 합산 비트 S+13, S+12, S+11 및 S+10을 발생한다. 예를들면, 합산 제너레이터(814 및 816)의 각 단계는 제 1 배타적 OR 게이트의 입력과, 합산되도록 상기 비트들을 수신하는 제 2 배타적 OR 게이트의 제 2 입력과, 제 2 배타적 OR 게이트의 제 1 입력에 결합된 제 1 배타적 OR 게이트의 출력과, 합산 비트를 제공하는 제 2 배타적 OR 게이트의 출력을 갖는 제 1 및 제 2의 2개 입력의 배타적 OR 게이트(나타내지 않음)를 포함할 수 있다. 적절한 PG부와, 올림수 체인 및 합산 제너레이터들은 그 기술이 잘 알려져 있다.
상기한 바와 같은 본 발명의 바람직한 실시예에 대한 설명은 단지 예시적인 것일 뿐이며, 이하의 특허청구의 범위에 의해 마련되는 본 발며의 정신을 제한하기 위해 사용되는 것은 아니다. 범용 컴퓨터 또는 프로세서는 단일 명령 사이클(우선될 때) 또는 복합 명령 사이클에서 본 발명을 실행할 수 있다. 본 발명은 다수의 데이터 프로세싱 용도에 적용될 수 있다. 이하의 특허청구의 범위에 의해 마련되는 본 발명의 정신이나 분야를 이탈하지 않는 한도내에서, 본 발명이 다양하게 변화 및 개조될 수 있다는 것을 당 업계에서 통상의 지식을 가진 자는 용이하게 알 수 있다.
내용없음

Claims (30)

  1. A는 2의 보충 형태로 나타내진 부호화된 2진수이고, A가 0보다 클 때 sign(A)는 1이고, A가 0일 때 sign(A)는 0이고, A가 0보다 작을 때 sign(A)는 -1인 조건에서 2A+sign(A), 2A-sign(A), A+sign(A), A-sign(A) 중에서 선택된 한 식을 계산하기 위한 회로 연산방법에 있어서,
    2A+sign(A)의 연산은, 를 얻기 위한 A의 비트-컴플리멘팅과, A가 0보다 작을 때 2A+sign(A)를 얻기 위한 (++2)의 비트-컴플리멘팅과, A가 0일 때 2A+sign(A)를 얻기 위한 (++1)의 비트-컴플리멘팅과, A가 0보다 클 때 2A+sign(A)를 얻기 위한 (++1)의 최하위 비트를 제외한 모든 비트들의 비트-컴플리멘팅을 포함하고;
    2A-sign(A)의 연산은, 를 얻기 위한 A의 비트-컴플리멘팅과, A가 0보다 작을 때 2A-sign(A)를 얻기 위한 (+)의 비트-컴플리멘팅과, A가 0일 때 2A-sign(A)를 얻기 위한 (++1)의 비트-컴플리멘팅과, A가 0보다 클 때 2A-sign(A)를 얻기 위한 (++2)의 비트-컴플리멘팅을 포함하고;
    A+sign(A)의 연산은, 를 얻기 위한 A의 비트-컴플리멘팅과, A가 0보다 작을 때 A+sign(A)를 얻기 위한 ( +1)의 비트-컴플리멘팅과, A가 0일 때 A+sign(A)를 얻기 위한 의 비트-컴플리멘팅과, A가 0보다 크고 홀수일 때 A+sign(A)를 얻기 위한 (-1)의 비트-컴플리멘팅, 및 A 가 0보다 크고 짝수일 때 A+sign(A)를 얻기 위한 의 최하위 비트를 제외한 모든 비트의 비트-컴플리멘팅을 포함하고;
    A-sign(A)의 연산은, 를 얻기 위한 A의 비트-컴플리멘팅과, A가 0보다 작을 때 A-sign(A)를 얻기 위한 (-1)의 비트-컴플리멘팅과, A가 0일 때 A-sign(A)를 얻기 위한 의 비트-컴플리멘팅과, A가 0보다 클 때 A-sign(A)를 얻기 위한 (+1)의 비트-컴플리멘팅을 포함하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A), A-sign(A) 중에서 선택된 한 식을 계산하기 위한 회로 연산방법.
  2. 제 1 항에 있어서,
    2A+sign(A)의 연산은, A가 0보다 작을 때 (++2)의 최하위 비트의 비트-컴플리멘트를 선택하는 단계와, A가 0일 때 (++1)의 최하위 비트의 비트-컴플리멘트를 선택하는 단계와, A가 0보다 클 때 (++1)의 최하위 비트를 선택하는 단계를 포함하고;
    2A-sign(A)의 연산은, A가 0보다 작을 때 합산 출력으로부터 (+)를 선택하는 단계와, A가 0일 때 합산 출력으로부터 (++1)을 선택하는 단계와, A가 0보다 클 때 합산+1 출력으로부터 (++2)를 선택하는 단계를 포함하고;
    A+sign(A)의 연산은, A가 0보다 작을 때 ( +1)의 최하위 비트의 비트-컴플리멘트를 선택하는 단계와, A가 0일 때 의 최하위 비트의 비트-컴플리멘트를 선택하는 단계와, A가 0보다 크고 홀수일 때 -1의 최하위 비트의 비트-컴플리멘트를 선택하는 단계와, A 가 0보다 크고 짝수일 때 의 최하위 비트를 선택하는 단계를 포함하고;
    A-sign(A)의 연산은, A가 0보다 작을 때 합산 출력으로부터 (-1)을 선택하는 단계와, A가 0일 때 합산 출력으로부터 를 선택하는 단계와, A가 0보다 클 때 합산+1 출력으로 부터 (+1)을 선택하는 단계를 포함하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A), A-sign(A) 중에서 선택된 한 식을 계산하기 위한 회로 연산방법.
  3. 제 1 항에 있어서,
    2A+sign(A)의 연산은, A가 0보다 작을 때 상수 C를 2로 설정하고, A 가 0일 때 상수 C를 1로 설정하고, A가 0보다 클 때 상수 C를 1로 설정하는 단계를 포함하고;
    2A-sign(A)의 연산은, A가 0보다 작을 때 상수 C를 0으로 설정하고, A 가 0일 때 상수 C를 1로 설정하고, A가 0보다 클 때 상수 C를 1로 설정하는 단계를 포함하고;
    A+sign(A)의 연산은, A가 0보다 작을 때 상수 C를 1로 설정하고, A 가 0일 때 상수 C를 0으로 설정하고, A가 0보다 크고 홀수일 때 상수 C를 -1로 설정하고, A가 0보다 크고 짝수일 때 상수 C를 0으로 설정하는 단계를 포함하고;
    A-sign(A)의 연산은, A가 0보다 작을 때 상수 C를 -1로 설정하고, A 가 0일 때 상수 C를 0으로 설정하고, A가 0보다 클 때 상수 C를 0으로 설정하는 단계를 포함하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A), A-sign(A) 중에서 선택된 한 식을 계산하기 위한 회로 연산방법.
  4. 제 1 항에 있어서,
    2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 식중에서 선택된 하나의 식에 대한 연산이 단일 명령 사이클내에서 수행되는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A), A-sign(A) 중에서 선택된 한 식을 계산하기 위한 회로 연산방법.
  5. 청구범위 제 4 항의 방법을 실행하기 위한 프로세서.
  6. A는 2의 보충 형태로 나타내진 n-비트 부호화된 2진 정수이고, A 가 0보다 클 때 sign(A)는 1이고, A가 0일 때 sign(A)는 0이고, A 가 0보다 작을 때 sign(A)는 -1인 조건에서, 2A+sign(A), 2A-sign(A), A+sign(A), 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 회로의 연산방법에 있어서,
    2A+sign(A)의 연산은, 를 얻기 위한 A의 비트 컴플리멘팅과, A가 0보다 작을 때 (++2)를 연산하고 그리고나서 2A+sign(A)를 얻기 위한 (++2)의 비트-컴플리멘팅과, A가 0일 때 (++1)을 연산하고 그리고나서 2A+sign(A)를 얻기 위한 (++1)의 비트-컴플리멘팅과, A가 0보다 클 때 (++1)을 연산하고 그리고나서 2A+sign(A)를 얻기 위한 (++1)의 최하위 비트를 제외한 모든 비트들의 비트-컴플리멘팅을 포함하고;
    2A-sign(A)의 연산은, 를 얻기 위한 A의 비트-컴플리멘팅과, A가 0보다 작을 때 (+)를 연산하고 그리고나서 2A-sign(A)를 얻기 위한 (+)의 비트-컴플리멘팅과, A가 0일 때 (++1)을 연산하고 그리고나서 2A-sign(A)를 얻기 위한 (++1)의 비트-컴플리멘팅과, A가 0보다 클 때 (++2)를 연산하고 그리고나서 2A-sign(A)를 얻기 위한 (++2)의 비트-컴플리멘팅을 포함하고;
    A+sign(A)의 연산은, 를 얻기 위한 A 의 비트-컴플리멘팅과, A가 0보다 작을 때 ( +1)을 연산하고 그리고나서 A+sign(A)를 얻기 위한 (+1)의 비트-컴플리멘팅과, A가 0일 때 A+sign(A)를 얻기 위한 의 비트-컴플리멘팅과, A가 0보다 크고 A가 홀수일 때 (-1)을 연산하고 그리고나서 A+sign(A)를 얻기 위한 (-1)의 비트-컴플리멘팅, 및 A가 0보다 크고 짝수일 때, A+sign(A)를 얻기 위한 의 최하위 비트를 제외한 모든 비트들의 비트-컴플리멘팅을 포함하고;
    A-sign(A)의 연산은, 를 얻기 위한 A의 비트-컴플리멘팅과, A가 0보다 작을 때 (-1)을 연산하고 그리고나서 A-sign(A)를 얻기 위한 (-1)의 비트-컴플리멘팅과, A가 0일 때 A+sign(A)를 얻기 위한 의 비트-컴플리멘팅과, A가 0보다 클 때 (+1)을 연산하고 그리고나서 A-sign(A)를 얻기 위한 (+1)의 비트-컴플리멘팅을 포함하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A), 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 회로의 연산방법.
  7. 제 6 항에 있어서,
    2A+sign(A)의 연산은, A가 0보다 작을 때 상수 C를 2로 설정하고 (++2)의 최하위 비트의 비트-컴플리멘트를 선택하고, A가 0일 때 상수 C를 1로 설정하고 (++1)의 최하위 비트의 비트-컴플리멘트를 선택하고, A가 0보다 클 때 상수 C를 1로 설정하고 (++1)의 최하위 비트를 선택하는 단계를 포함하고;
    2A-sign(A)의 연산은, A가 0보다 작을 때 상수 C를 0으로 설정하고 (+)를 제공하도록 가산회로의 합산 출력을 선택하고, A가 0일 때 상수 C를 1로 설정하고 (++1)을 제공하도록 가산 회로의 합산 출력을 선택하고, A가 0보다 클 때 상수 C를 1로 설정하고 (++2)를 제공하도록 가산 회로의 합산+1 출력을 선택하는 단계를 포함하고;
    A+sign(A)의 연산은, A가 0보다 작을 때 상수 C를 1로 설정하고 (+1)의 최하위 비트의 비트-컴플리멘트를 선택하고, A가 0일 때 상수 C를 0으로 설정하고 의 최하위 비트의 비트-컴플리멘트를 선택하고, A가 0보다 크고 홀수일 때 상수 C를 -1로 설정하고 (-1)의 최하위 비트의 비트-컴플리멘트를 선택하고, A가 0보다 크고 짝수일 때 상수 C를 0으로 설정하고 의 최하위 비트를 선택하는 단계를 포함하고;
    A-sign(A)의 연산은, A가 0보다 작을 때 상수 C를 -1로 설정하고 ( -1)을 제공하도록 가산 회로의 합산 출력을 선택하고, A 가 0일 때 상수 C를 0으로 설정하고 를 제공하도록 가산 회로의 합산 출력을 선택하고, A가 0보다 클 때 상수 C를 0으로 설정하고 ( +1)을 제공하도록 가산 회로의 합산+1 출력을 선택하는 단계를 포함하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A), 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 회로의 연산방법.
  8. 제 7 항에 있어서,
    2A+sign(A)의 연산은, A가 + 또는 -인가를 표시하는 A의 사인 비트에 응답하여 상수 C를 설정하고, A가 0인가 아닌가를 표시하는 제로 검출 플래그 및 A의 사인 비트에 응답하여, 선택하는 단계를 포함하고;
    2A-sign(A)의 연산은, A의 사인 비트에 응답하여, 상수 C를 설정하고, A의 사인 비트 및 제로 검출 플래그에 응답하여 선택하는 단계를 포함하고;
    A+sign(A)의 연산은, A가 홀수인지 또는 짝수 인지를 표시하는 A의 최하위 비트 및 A의 사인 비트에 응답하여 상수 C를 설정하고, A의 사인 비트와, A의 최하위 비트 및 제로 검출 플래그에 응답하여 선택하는 단계를 포함하고;
    A-sign(A)의 연산은 A의 사인 비트에 응답하여 상수 C를 설정하고, A의 사인비트 및 제로 검출 플래그에 응답하여 선택하는 단계를 포함하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A), 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 회로의 연산방법.
  9. 제 6 항에 있어서,
    2A+sign(A) 및 2A-sign(A)의 연산은 (
    Figure kpo00164
    +
    Figure kpo00165
    +1)로부터의 제 1 자리올림 비트와, (++2)로부터의 제 2 자리올림 비트가 다른 논리값을 가질 때, 제로 검출 플래그를 ″참″으로 설정하고, (
    Figure kpo00166
    +
    Figure kpo00167
    +1)로부터의 제 1 자리올림 비트와, (
    Figure kpo00168
    +
    Figure kpo00169
    +2)로부터의 제 2 자리올림 비트가 동일한 논리값을 가질 때, 제로 검출 플래그를 ″거짓″으로 설정하는 단계를 포함하고;
    A+sign(A) 및 A-sign(A)의 연산은 (
    Figure kpo00170
    +0)로부터의 제 1 자리올림 비트와, (+1)로부터의 제 2 자리올림 비트가 다른 논리값을 가질 때, 제로 검출 플래그를 ″참″으로 설정하고, (
    Figure kpo00171
    +0)로부터의 제 1 자리올림 비트와, (
    Figure kpo00172
    +1)로부터의 제 2 자리올림 비트가 동일한 논리값을 가질 때, 제로 검출 플래그를 ″거짓″으로 설정하는 단계를 포함하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A), 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 회로의 연산방법.
  10. 제 9 항에 있어서,
    2A+sign(A) 및 2A-sign(A)의 연산은 (++1)로부터의 제 1 자리올림 비트와, (++2)로부터의 제 2 자리올림 비트를 동시에 발생하는 단계를 포함하고;
    A+sign(A) 및 A-sign(A)의 연산은 (+0)로부터의 제 1 자리올림 비트와, (+1)로부터의 제 2 자리올림 비트를 동시에 발생하는 단계를 포함하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A), 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 회로의 연산방법.
  11. 제 6 항에 있어서,
    2A+sign(A)의 연산은
    Figure kpo00173
    를 가산 회로의 제 1 및 제 2 오퍼랜드 입력에 적용하는 단계를 포함하고;
    2A-sign(A)의 연산은
    Figure kpo00174
    를 가산 회로의 제 1 및 제 2 오퍼랜드 입력에 적용하는 단계를 포함하고;
    A+sign(A)의 연산은
    Figure kpo00175
    및 0을 가산 회로의 제 1 및 제 2 오퍼랜드 입력에 각각 적용하는 단계를 포함하고;
    A-sign(A)의 연산은
    Figure kpo00176
    및 0을 가산 회로의 제 1 및 제 2 오퍼랜드 입력에 각각 적용하는 단계를 포함하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A), 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 회로의 연산방법.
  12. 제 6 항에 있어서,
    2A+sign(A)의 연산은, 하나의 비트 위치에 의해서 산술적으로
    Figure kpo00177
    를 좌측-시프트하고, 좌측 시프트된
    Figure kpo00178
    를 가산 회로의 제 1 오퍼랜드 입력에 적용하는 단계를 포함하고;
    2A -sign(A)의 연산은, 하나의 비트 위치에 의해서 산술적으로
    Figure kpo00179
    를 좌측-시프트하고 상기 가산 회로의 제 1 오퍼랜드 입력에 좌측-시프트된 를 적용하는 단계를 포함하고;
    A+sign(A)의 연산은,
    Figure kpo00180
    를 가산 회로의 제 1 오퍼랜드 입력에 적용하는 단계를 포함하고;
    A-sign(A)의 연산은
    Figure kpo00181
    를 가산 회로의 제 1 오퍼랜드 입력에 적용하는 단계를 포함하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A), 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 회로의 연산방법.
  13. 제 6 항에 있어서,
    n-비트 결과로서, 2A+sign(A)의 연산은, A의 사인 비트와 그 결과의 사인 비트가 다른 논리값을 가질 때 오버플로우 플래그를 ″참″으로 설정하고, A의 사인 비트와 A의 제 2 최상위 비트가 다른 논리값을 가질 때 오버플로우 플래그를 ″참″으로 설정하고, A의 사인 비트와 그 결과의 사인 비트가 동일한 논리값을 가지고 A의 사인 비트와 A의 제 2 최상위 비트가 동일한 논리값을 가질 때 오버 플로우 플래그를 ″거짓″으로 설정하는 단계를 포함하고;
    n-비트 결과로서, 2A-sign(A)의 연산은, A의 사인 비트와 그 결과의 사인 비트가 다른 논리값을 가질 때 오버플로우 플래그를 ″참″으로 설정하고, A의 사인 비트와 그 결과의 사인 비트가 동일한 논리값을 가질 때 오버플로우 플래그를 ″거짓″으로 설정하는 단계를 포함하고;
    n-비트 결과로서, A+sign(A)의 연산은, A의 사인 비트와 그 결과의 사인 비트가 다른 논리값을 가질 때 오버플로우 플래그를 ″참″으로 설정하고, A의 사인 비트와 그 결과의 사인 비트가 동일한 논리값을 가질 때 오버플로우 플래그를 ″거짓″으로 설정하는 단계를 포함하고;
    n-비트 결과로서, A-sign(A)의 연산은, A의 모든 값에 대하여 오버플로우 플래그를 ″거짓″으로 설정하는 단계를 포함하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A), 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 회로의 연산방법.
  14. 제 6 항에 있어서,
    그로 인하여 오버플로우가 발생되지 않는, 최소한의 n+2 비트 결과로서의 2A+sign(A)의 연산과;
    그로 인하여 오버플로우가 발생되지 않는, 최소한의 n+1 비트 결과로서의 2A-sign(A)의 연산과;
    그로 인하여 오버플로우가 발생되지 않는, 최소한의 n+1비트 결과로서의 A+sign(A)의 연산과;
    그로 인하여 오버플로우가 발생되지 않는, 최소한의 n-비트 결과로서의 A-sign(A)의 연산을 포함하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A), 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 회로의 연산방법.
  15. 제 6 항에 있어서,
    2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A)의 식중에서 선택된 한 식의 연산은 단일 명령 사이클에서 범용 컴퓨터에 의해서 수행되는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A), 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 회로의 연산방법.
  16. A는 2의 보충 형태로 나타내진 부호화된 2진 정수이고, A 가 0보다 클 때 sign(A)는 1이고, A가 0일 때 sign(A)는 0이고, A가 0보다 작을 때 sign(A)는 -1인 조건에서, 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 장치에 있어서,
    Figure kpo00182
    를 얻기 위한 A의 비트 컴플리멘팅과, A가 0보다 작을 때 2A+sign(A)를 얻기 위한 (
    Figure kpo00183
    +
    Figure kpo00184
    +2)의 비트-컴플리멘팅과, A가 0일 때 2A+sign(A)를 얻기 위한 (
    Figure kpo00185
    +
    Figure kpo00186
    +1)의 비트-컴플리멘팅과, A가 0보다 클 때 2A+sign(A)를 얻기 위한 (
    Figure kpo00187
    +
    Figure kpo00188
    +1)의 최하위 비트를 제외한 모든 비트들의 비트-컴플리멘팅에 대한 2A+sign(A)의 선택 방법에 응하는 논리회로와;
    Figure kpo00189
    를 얻기 위한 A의 비트-컴플리멘팅과, A가 0보다 작을 때 2A-sign(A)를 얻기 위한 (
    Figure kpo00190
    +
    Figure kpo00191
    )의 비트-컴플리멘팅과, A가 0일 때 2A-sign(A)를 얻기 위한 (
    Figure kpo00192
    +
    Figure kpo00193
    +1)의 비트-컴플리멘팅과, A가 0보다 클 때 2A-sign(A)를 얻기 위한 (
    Figure kpo00194
    +
    Figure kpo00195
    +2)의 비트-컴플리멘팅에 대한 2A-sign(A)의 선택방법에 응하는 논리 회로와;
    Figure kpo00196
    를 얻기 위한 A 의 비트-컴플리멘팅과, A가 0보다 작을 때 A+sign(A)를 얻기 위한 (
    Figure kpo00197
    +1)의 비트-컴플리멘팅과, A가 0일 때 A+sign(A)를 얻기 위한
    Figure kpo00198
    의 비트-컴플리멘팅과, A가 0보다 크고 홀수일 때 A+sign(A)를 얻기 위한 (
    Figure kpo00199
    -1)의 비트-컴플리멘팅과, A 가 0보다 크고 짝수일 때 A+sign(A)를 얻기 위한
    Figure kpo00200
    의 최하위 비트를 제외한 모든 비트들의 비트-컴플리멘팅에 대한 A+sign(A)의 선택방법에 응하는 논리 회로; 및
    Figure kpo00201
    를 얻기 위한 A의 비트-컴플리멘팅과, A가 0보다 작을 때 A-sign(A)를 얻기 위한 (
    Figure kpo00202
    -1)의 비트-컴플리멘팅과, A가 0일 때 A-sign(A)를 얻기 위한
    Figure kpo00203
    의 비트-컴플리멘팅과, A가 0보다 클 때 A-sign(A)를 얻기 위한 (
    Figure kpo00204
    +1)의 비트-컴플리멘팅에 대한 A-sign(A)의 선택방법에 응하는 논리회로를 구비하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 장치.
  17. A는 2의 보충 형태로 나타내진 부호화된 2진수이고, A가 0보다 클 때 sign(A)는 1이고, A가 0일 때 sign(A)는 0이고, A가 0보다 작을 때 sign(A)는 -1인 조건에서, 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 장치에 있어서,
    Figure kpo00205
    를 얻기 위한 A의 비트 컴플리멘팅을 위한 제 1 인버터 회로와;
    B를 발생하도록, 선택된 수식을 표시하는 MODE 시그널에 응답으로 와 0사이에서 선택하기 위한 제 1 멀티플렉서와;
    MODE 시그널과 A에 대한 응답으로 상수 C를 제공하기 위한 데이터 셀렉터 회로와;
    합산 출력에서 (
    Figure kpo00206
    +B+C)와 합산+1 출력에서 (
    Figure kpo00207
    +B+C+1)을 연산하기 위한 가산회로와;
    합산+1 출력의 비트-컴플리멘트와, 합산 출력의 비트-컴플리멘트 및 선택된 식을 제공하도록 합산 출력의 LSB를 제외한 모든 비트의 비트-컴플리멘트간에서 선택하기위한 제 2 인버터 회로에 결합된 제 2 멀티플렉서를 구비하는 것을 특징으로 하는 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 장치.
  18. 제 17 항에 있어서,
    A의 MAB 와, A의 LSB 및 MODE 시그널과, A가 0인지 또는 0이 아닌지를 표시하는 제로 검출 회로에 대한 응답으로 제 2 멀티플렉서를 제어하기 위한 제어회로를 포함하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 장치.
  19. 제 17 항에 있어서,
    합산 출력에서의 제 1 자리올림 비트와 합산+1 출력에서의 제 2 자리올림 비트를 검색함에 의해서 A가 0인지 0이 아닌지를 표시하는 제로 검출 회로를 포함하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 장치.
  20. 제 17 항에 있어서,
    오버플로우 검출 회로를 포함하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 장치.
  21. A는 2의 보충 형태로 나타내진 부호화된 2진수이고, A가 0보다 클 때 sign(A)는 1이고, A가 0일 때, sign(A)는 0이고, A가 0보다 작을 때, sign(A)는 -1인 조건의 수식 선택 신호들에 응답하여, 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 장치에 있어서,
    A의 비트 컴플리멘팅을 제공하기 위해 A로 결합된 오퍼랜드 입력을 가지는 제 1 인버터 회로와;
    수식 선택 시그널의 기능으로서
    Figure kpo00208
    와 0사이에서 선택하기위한 제 1 멀티플렉서와;
    수식 선택 시그널들과 A의 MSB 및 LSB의 기능으로서, 상수 C를 제공하기 위한 데이터 셀렉터 회로와;
    제 1 인버터 회로와, 제 1 멀티플렉서 및 데이터 셀렉터 회로의 출력에 각각 결합되는 제 1, 제 2 및 제 3 오퍼랜드 입력을 각각 가지고, 제 1, 제 2 및 제 3 오퍼랜드의 합산을 나타내는 합산 출력을 가지고, 제 1, 제 2 및 제 3 오퍼랜드의 합산+1을 나타내는 합산+1 출력을 가지는 가산회로와;
    A가 0 인지 아닌지를 결정기 위한 제로 검출 회로와;
    합산 출력에 결합되는 제 1 입력을 가지고, 합산+1 출력에 결합되는 제 2 입력을 가지는 제 2 멀티플렉서와;
    0으로 설정된 LSB를 가진 합산 출력과, 합산 출력과, 수식 선택 시그널의 기능으로서 합산+1 출력과, A의 MSB 및 LSB와, 제로 검출 회호들 간에서 선택하도록 제 2 멀티플렉서에 지시하기 위한 제어회로와;
    수식들 중에서 선택된 한 식을 제공하도록 제 2 멀티플렉서의 출력을 비트-컴플리멘팅하기 위한 제 2 인버터 회로를 구비하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 장치.
  22. 제 21 항에 있어서,
    상기 제 1 멀티플렉서가, 2A+sign(A) 또는 2A-sign(A)가 선택될 때 를 선택하고, A+sign(A) 또는 A-sign(A)가 선택될 때 0을 선택하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 장치.
  23. 제 21 항에 있어서,
    상기 데이터 셀렉터 회로가, A가 -이고 2A+sign(A)가 선택될 때 상수 C를 2 로 설정하고, A가 +이고 2A+sign(A) 또는 2A-sign(A)가 선택될 때 또는 A가 -이고 A+sign(A)가 선택될 때 상수 C를 1로 설정하고, A가 -이고 A-sign(A)가 선택될 때 또는 A가 0 또는 0보다 크고 짝수이고 A+sign(A)가 선택될 때 또는 A가 +이고 A-sign(A)가 선택될 때 상수 C를 0으로 설정하고, A가 +이고 또한 홀수이고 A+sign(A)가 선택될 때 또는 A가 -이고 A-sign(A)가 선택될 때 -1로 설정하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 장치.
  24. 제 21 항에 있어서,
    상기 제어 회로가, A가 0보다 크고 2A-sign(A)또는 A-sign(A)가 선택될 때 합산 +1 출력을 선택하고, A 가 0보다 작거나 0일 때 또는 A가 0보다 크거나 홀수 이고 A+sign(A)가 선택될 때 합산 출력을 선택하고, A가 0보다 크고 2A+sign(A)가 선택될 때 또는 A가 0보다 크고 짝수이고 A+sign(A)가 선택될 때 0으로 설정된 LSB를 가진 합산 출력을 선택하도록 제 2 멀티플렉서에 지시하게 되는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 장치.
  25. 제 21 항에 있어서,
    상기 제로 검출 회로가, 합산 출력에서의 제 1 자리올림 출력 비트와, 합산+1 출력에서의 제 2 자리올림 출력 비트가 다른 논리값을 가지는가를 결정하게 되는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 장치.
  26. 제 25 항에 있어서,
    제 1 및 제 2 자리올림 출력 비트가 동시에 발생되는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 장치.
  27. 제 21 항에 있어서,
    상기 가산 회로가 제 1, 제 2 및 제 3 오퍼랜드 입력을 제공하는 올림수 보관 가산기의 행을 포함하고, 합산 출력을 제공하기 위한 상기 올림수 보관 가산기에 결합되는 합산 가산기 및 합산+1 출력을 제공하기 위한 상기 올림수 보관 가산기에 결합되는 합산+1 가산기를 포함하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 장치.
  28. 제 27 항에 있어서,
    상기 합산 가산기는 0으로 설정된 자리올림 입력 비트를 가지는 제 1 자리올림 체인으로 합산 출력을 제공하는 제 1 합산 제너레이터에 결합된 제 1 자리올림 체인에 결합되는 전파-제너레이터부를 포함하고;
    합산+1 가산기는 1로 설정된 자리올림 입력 비트를 가지는 제 2 자리올림 체인 으로 합산+1 출력을 제공하는 제 2 합산 제너레이터에 결합된 제 2 자리올림 체인에 결합되는 전파 발생부를 포함하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 장치.
  29. 제 21 항에 있어서,
    A의 MSB와 제 2 MSB가 다른 논리값을 가지는가를 결정하고, A의 MSB와 제 2 인버터 회로의 MSB가 다른 논리값을 가지는가를 결정하는 오버플로우 검출 회로를 포함하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 장치.
  30. A는 2의 보충 형태로 나타내진 부호화된 2진수이고, A가 0보다 클 때 sign(A)는 1이고, A가 0일 때, sign(A)는 0이고, A가 0보다 작을 때, sign(A)는 -1인 조건의 수식 선택 신호들에 응답하여, 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 장치에 있어서,
    수식 선택 시그널들의 기능으로서,
    Figure kpo00209
    Figure kpo00210
    2 간에서 선택하기 위한 제 1 인버터 및 멀티플렉서 수단과;
    수식 선택 시그널 및 A의 기능으로서, 상수 C를 제공하기 위한 데이터 셀렉터 수단과;
    제 1 인버터와 멀티플렉서 수단과 데이터 셀렉터 수단에 결합되는 오퍼랜드 입력을 가지고, 상기 오퍼랜드의 합산을 대표하는 합산 출력을 가지고, 오퍼랜드의 합산+1 출력을 나타내는 합산+1 출력을 가지는 가산기 수단과;
    A가 0 인지 아닌지를 결정기 위한 제로 검출 수단과;
    합산 출력의 LSB를 제외한 모든 비트들의 비트-컴플리멘트와, 합산 출력의 비트-컴플리멘트와, 그에 의해서, 상기 수식중에서 선택된 한 식을 제공하는 수식 선택 시그널과 제로 검출 수단 및 A의 기능으로서, 합산+1 출력의 비트-컴플리멘트간에서 선택하기 위한 멀티플렉서 수단 및 제 2 인버터를 포함하는 것을 특징으로 하는, 2A+sign(A), 2A-sign(A), A+sign(A) 및 A-sign(A) 중에서 선택된 한 식을 계산하기 위한 장치.
KR1019970012507A 1996-09-24 1997-04-04 단일명령사이클내의 선택된 sin 3식을 연산하기 위한 방법 KR100241077B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/719190 1996-09-24
US08/719,190 US5835394A (en) 1996-09-24 1996-09-24 Calculating selected sign 3 expression in a single instruction cycle
US8/719190 1996-09-24

Publications (2)

Publication Number Publication Date
KR19980023995A KR19980023995A (ko) 1998-07-06
KR100241077B1 true KR100241077B1 (ko) 2000-02-01

Family

ID=24889109

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970012507A KR100241077B1 (ko) 1996-09-24 1997-04-04 단일명령사이클내의 선택된 sin 3식을 연산하기 위한 방법

Country Status (2)

Country Link
US (1) US5835394A (ko)
KR (1) KR100241077B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6334183B1 (en) * 1997-11-18 2001-12-25 Intrinsity, Inc. Method and apparatus for handling partial register accesses
US6678711B1 (en) * 2000-09-20 2004-01-13 Lsi Logic Corporation Incrementer/decrementer circuit
US8713086B2 (en) * 2010-08-06 2014-04-29 Texas Instruments Incorporated Three-term predictive adder and/or subtracter
FR3044460B1 (fr) * 2015-12-01 2018-03-30 Stmicroelectronics (Rousset) Sas Amplificateur de lecture pour memoire, en particulier une memoire eeprom

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4218751A (en) * 1979-03-07 1980-08-19 International Business Machines Corporation Absolute difference generator for use in display systems
US4709226A (en) * 1985-07-15 1987-11-24 Rca Corporation Circuitry for complementing binary numbers
JPH01204138A (ja) * 1988-02-09 1989-08-16 Nec Corp 演算回路
JPH0776911B2 (ja) * 1988-03-23 1995-08-16 松下電器産業株式会社 浮動小数点演算装置
US5267187A (en) * 1990-05-10 1993-11-30 Xilinx Inc Logic structure and circuit for fast carry
US5548542A (en) * 1992-08-14 1996-08-20 Harris Corporation Half-band filter and method

Also Published As

Publication number Publication date
KR19980023995A (ko) 1998-07-06
US5835394A (en) 1998-11-10

Similar Documents

Publication Publication Date Title
US5553012A (en) Exponentiation circuit utilizing shift means and method of using same
KR100232962B1 (ko) 자리올림수 교정을 갖는 휴즈된 부동 소수점 곱셈 및 누산 장치
US6366943B1 (en) Adder circuit with the ability to detect zero when rounding
US5367477A (en) Method and apparatus for performing parallel zero detection in a data processing system
KR100260494B1 (ko) 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법 및 장치
KR100264958B1 (ko) 2정수의 절대차 산출장치
JP2789577B2 (ja) 加算オーバフロ検出回路
KR100241077B1 (ko) 단일명령사이클내의 선택된 sin 3식을 연산하기 위한 방법
KR100627993B1 (ko) 3입력 분할 가산기
US6269385B1 (en) Apparatus and method for performing rounding and addition in parallel in floating point multiplier
US5917739A (en) Calculating the average of four integer numbers rounded towards zero in a single instruction cycle
EP0539010A2 (en) Method and device for generating sum information/rounding control signal
US5710732A (en) Calculating the average of four integer numbers rounded away from zero in a single instruction cycle
US5777906A (en) Left shift overflow detection
US6007232A (en) Calculating the average of two integer numbers rounded towards zero in a single instruction cycle
US20080071852A1 (en) Method to perform a subtraction of two operands in a binary arithmetic unit plus arithmetic unit to perform such a method
KR100241066B1 (ko) 단일명령사이클에서의 A+sin(A)식의 연산
KR100241074B1 (ko) 단일명령사이클에서의 A-sin(A)식의 연산
US5691930A (en) Booth encoder in a binary multiplier
JP4354648B2 (ja) バイアスを招かないで固定少数点フォーマットに信号を圧縮するための方法と装置
US5850347A (en) Calculating 2A+ sign(A) in a single instruction cycle
CA2272194A1 (en) Method of determining a scaling factor
US5831887A (en) Calculating 2A-sign(A) in a single instruction cycle
KR950015180B1 (ko) 고속연산형 가산기
JP3457082B2 (ja) 演算装置

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
FPAY Annual fee payment

Payment date: 20101029

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee