KR100260494B1 - 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법 및 장치 - Google Patents
정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR100260494B1 KR100260494B1 KR1019970016969A KR19970016969A KR100260494B1 KR 100260494 B1 KR100260494 B1 KR 100260494B1 KR 1019970016969 A KR1019970016969 A KR 1019970016969A KR 19970016969 A KR19970016969 A KR 19970016969A KR 100260494 B1 KR100260494 B1 KR 100260494B1
- Authority
- KR
- South Korea
- Prior art keywords
- integer
- bits
- operand
- fractional
- result
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
- G06F5/015—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising having at least two separately controlled shifting levels, e.g. using shifting matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
- G06F7/49978—Rounding towards zero
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
- G06F7/49984—Rounding away from zero
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
Abstract
단일 명령 사이클로 MPEG 표준에 의해 규정된 정수 결과를 구하기 위해, 부호가 있거나 또는 부호가 없는 정수 오퍼런드를 우-쉬프트하고 제로에서 멀어지는 또는 제로쪽으로 분수 증분 결과를 라운드하기 위한 방법 및 장치가 개시된다. 상기 장치는 정수 비트와 분수 비트를 포함하는 분수 중간 결과를 구하기 위해 오퍼런드를 우-쉬프트하기 위한 우-쉬프터를 구비한다. 상기 장치는 또한 오퍼런드의 부호 비트, 분수 비트, 오퍼런드가 부호가 있거나 또는 부호가 없는 지를 표시하는 모드 신호, 및 제로쪽으로의 라운드 또는 제로에서 멀어지는 라운드가 선택되는 지를 표시하는 라운드 신호에 응답하여 증분 신호를 생성하기 위한 제어 회로를 구비한다. 상기 장치는 또한 정수 비트를 증분시키고, 증분 신호가 제1 논리값을 가질 때 정수 결과로서 증분된 정수 비트를 제공하며, 증분 신호가 제2 논리값을 가질 때 정수 결과로서 정수 비트를 제공하기 위한 증분 회로를 구비한다.
Description
본 발명은 컴퓨터 산술, 특히 정수 오퍼런드를 우-쉬프트하여 제로로 향하거나 또는 제로로부터 멀어지는 분수의 중간 결과를 라운딩하는 것에 관한 것이다.
동화상 전문가 그룹(MPEG) 표준은 압축된 디지탈 비디오용의 지배적인 표준으로 떠오르고 있다. MPEG-1은 단위 초당 약 1.5메가비트의 압축된 비디오 비트스트림 속도 및 단위 초당 약 250킬로비트의 압축된 스테레오 오디오 비트스트림 속도를 명시하고 있다. 제 2 표준인 MPEG-2는 보다 넓은 대역폭의 분산 매체를 위한 압축 속도를 명시할 것이며, 표준화가 진행되고 있다. MPEG 표준을 충족시키기 위해서는 오디오 및 비디오 압축 및 해제 제품은 MPEG 표준을 구현하는 데 사용되는 다양한 알고리즘을 신속하게 처리하여야만 한다.
N가 부호없는 정수인 종래의 우-쉬프터(right-shifters)가 2N에 의한 고속 나눗셈에 사용된다. 이와 같은 쉬프터는, 이진 형태로 표현된 오퍼런드가 2의 제곱만큼 다른 비트 위치로 구성되어 있다는 사실을 이용한다. 예를 들면, 4 비트 부호없는 이진 오퍼런드의 비트 위치는 전형적으로 23, 22, 21및 20을 표현한다. 따라서, 2N에 의하 나눗셈은 오퍼런드를 N 비트 위치만큼 우-쉬프트하여 구현될 수 있다. 부호없는 오퍼런드가 우-쉬프트되면, 최상위 비트(MSB) 위치는 제로로 채워지고, 부호있는 오퍼런드(2의 보수 형태)가 우-쉬프트되면, MSB 위치는 오퍼런드의 MSB(또는 부호 비트)로 채워질 것이다. 우-쉬프터는 흔히 쉬프트된 전체 오퍼런드를 저장하기에는 충분히 크기 않다. 결국, 오퍼런드 비트는 종종 쉬프트 아웃되어 폐기되고, 그 결과는 수치적으로 항상 정확하지 않다. 더우기, 종종 정확하게 라운드된 정수 결과에 대해 어떠한 준비도 되어 있지 않다. 종래의 우-쉬프터에 적용되고 한개 및 두개 비트 위치만큼 우-쉬프트된 부호있는 오퍼런드의 다양한 예가 이하의 표 1 및 2 에 열거된다.
[표 1]
종래의 우-쉬프터에 적용되고 하나의 비트 위치만큼 우-쉬프트된 부호있는 이진 오퍼런드
[표 2]
종래의 우-쉬프터에 적용되고 두개의 비트 위치만큼 우-쉬프트된 부호있는 이진 오퍼런드
표 1 및 2는 오퍼런드를 우-쉬프트하고 쉬프트-아웃된 비트를 폐기하면 마이너스 무한대쪽으로 라운딩된다는 것을 증명하고 있다. 즉, 모든 비정수는 다음의 작은 정수쪽으로 라운드된다. 예를 들어, 0011(십진 3)을 우로 1비트 위치만큼 쉬프트하면 0001.1(십진 1.1)의 실제 값이 되지만, 쉬프트-아웃된 비트를 폐기하면 -0.1(십진 -0.5)의 라운딩 에러로서 0001(십진 1)이 된다. 1101(십진 -3)을 1비트 위치만큼 우-쉬프트하면 1110.1(십진 -0.5)의 실제 값이 되지만, 쉬프트-아웃된 비트를 폐기하면 -0.1(십진 -0.5)의 라운딩 에러로서 1110(십진 -2)이 된다. 0011(십진 3)을 2비트 위치만큼 우-쉬프트하면 0000.11(십진 0.75)의 실제 값이 되지만, 쉬프트-아웃된 비트를 폐기하면 -0.11(십진 -0.75)의 라운딩 에러로서 0000(십진 0)이 된다. 1101(십진 -3)을 2비트 위치만큼 우-쉬프트하면 1111.01(십진 -0.75)의 실제 값이 되지만, 쉬프트-아웃된 비트를 폐기하면 -0.01(십진 -0.25)의 라운딩 에러로서 1111(십진 -0.25)이 된다.
표 1 및 2 에서, 부호있는 오퍼런드는 2의 보수 형태로 표현된다는 것에 유의하여야 하고, 따라서 부호 비트를 제외한 모든 비트는 양의 값을 갖는다. 더우기, 쉬프트 길이는 부호 비트를 쉬프트-아웃하기에 충분히 크지 않다. 따라서, 쉬프트-아웃된 비트(또는 분수 비트)가 항상 양의 값을 가지기 때문에, 라운딩 에러는 항상 마이너스 무한대의 방향에 있다.
마이너스 무한대쪽으로의 라운딩은 일반적으로 반복되는 연산과 라운딩 후 마이너스 무한대쪽으로의 바이어스를 초래하기 때문에 바람직하지 않다. MPEG 표준은 이 문제를 인식하고 있다. 결국, MPEG 표준은 수치적으로 바이어스된 두가지 라운딩 모드 - "제로쪽으로의 라운드(round toward zero)" 와 "제로에서 멀어지는 라운드(round away from zero)"를 정의한다. 제로쪽으로의 라운드 모드에서, 분수 성분을 갖는 숫자는 제로쪽으로 라운드된다. 즉, 정수 성분은 그대로 남아 있고, 분수 성분은 제로쪽으로 트렁케이트된다. 제로에서부터 멀어지는 라운드 모드에서, 분수 성분을 갖는 숫자는 가장 가까운 정수로 라운드되고, 정수/2("tie case")의 분수 성분을 갖는 숫자는 제로에서부터 멀어져 라운드된다. 즉, 숫자가 양이고 분수 성분이 1/2과 같거나 클 때 이때 정수 성분은 라운드 업(플러스 무한대쪽으로)되고, 숫자가 양이고 분수 성분이 1/2보다 적을 때 이때 정수 성분은 그대로 남아 있고, 숫자가 음이고 분수 성분의 절대값이 1/2보다 크거나 같을 때 이때 정수 성분은 라운드 업(마이너스 무한대쪽으로)되고, 그리고 숫자가 음이고 분수 성부의 절대값이 1/2보다 적을 때 이때 정수 성분은 그대로 남아 유지된다.
또한, MPEG 표준은 제로쪽으로 라운드된 정수 나눗셈으로서 "/"을 정의하고, 제로에서부터 멀어져 라운드된 정수 나눗셈을 "//"으로 정의한다. 제로쪽으로 라운드되고 그리고 제로에서 멀어져 라운드된 정수 나눗셈의 다양한 예가 이하의 표 3에 열거되어 있다.
[표 3]
제로쪽으로 라운드되고 그리고 제로에서 멀어져 라운드된 정수 나눗셈의 예
제로쪽으로의 라운딩을 갖는 정수 나눗셈(X/Y) | 제로에서 멀어지는 라운딩을 갖는 정수 나눗셈(X//Y) |
1/4는 0으로 라운드된다. | 1//4는 0으로 라운드된다. |
2/4는 0으로 라운드된다. | 2//4는 1로 라운드된다. |
3/4는 0으로 라운드된다. | 3//4는 1로 라운드된다. |
4/4는 1로 라운드된다. | 4//4는 1로 라운드된다. |
5/4는 1로 라운드된다. | 5//4는 2로 라운드된다. |
6/4는 1로 라운드된다. | 6//4는 2로 라운드된다. |
7/4는 1로 라운드된다. | 7//4는 2로 라운드된다. |
8/4는 2로 라운드된다. | 8//4는 2로 라운드된다. |
-1/4는 0으로 라운드된다. | -1//4는 0로 라운드된다. |
-2//4는 0으로 라운드된다. | -2//4는 -1로 라운드된다. |
-3/4는 0으로 라운드된다. | -3//4는 -1로 라운드된다. |
-4/4는 -1로 라운드된다. | -4//4는 -1로 라운드된다. |
-5/4는 -1로 라운드된다. | -5//4는 -1로 라운드된다. |
-6/4는 -1로 라운드된다. | -6//4는 -2로 라운드된다. |
-7/4는 -1로 라운드된다. | -7//4는 -2로 라운드된다. |
-8/4는 -2로 라운드된다. | -8//4는 -2로 라운드된다. |
따라서, MPEG 모션 프로세싱과 같은 집중적인 어플리케이션 산출에 있어서, 고속이고 효율적인 방법으로 제로쪽으로 또는 제로에서 멀어져 분수 중간 결과를 라운드하는 것이 극히 바람직하다.
본 발명에 따른 방법 및 장치는 장점으로 분수 중간 결과를 얻기 위해, 부호있는 또는 부호없는 오퍼런드를 N 비트 위치만큼 우-쉬프트하고, 다음에 MPEG 표준에 규정된 바와 같이 라운드된 정수 결과를 제공하기 위해 제로쪽으로 향하거나 제로에서 멀어지도록 상기 분수 중간 결과를 라운딩하는 것을 제공한다. 더우기, 우-쉬프트하여 라운드하는 것은 단일 명령 사이클로 수행된다.
본 발명의 실시예에서, 정수 오퍼런드를 우-쉬프트하고 라운드된 정수 결과를 구하는 회로를 동작시키는 방법은, 정수 비트와 분수 비트를 포함하는 분수 중간 결과를 구하기 위해 N가 정수인 N 비트 위치만큼 오퍼런드를 우-쉬프트하는 것을 포함한다. 상기 우-쉬프팅은 오퍼런드가 부호가 없을 때 논리적 우-쉬프트이고, 오퍼런드가 부호가 있을 때 산술적 우-쉬프트이다. 또한 상기 방법은, (i) 임의의 분수 비트가 1이고 오퍼런드가 음이고 부호가 있으며 제로쪽으로의 라운드가 선택될 때, (ii) 분수 비트의 최상위 비트가 1이고 오퍼런드가 부호가 없으며 제로에서 멀어지는 라운드가 선택될 때, (iii) 분수 비트의 최상위 비트가 1이고 오퍼런드가 양이고 부호가 있으며 제로에서 멀어지는 라운드가 선택될 때 그리고 (iv) 분수 비트의 최상위 비트가 1이고 임의의 다른 분수 비트가 1이고 오퍼런드가 음이고 부호가 있으며 제로에서 멀어지는 라운드가 선택될 때 라운드된 정수 결과로서 증분된 정수 비트를 제공하기 위한 정수 비트를 증분시키는 것을 포함한다. 그렇지 않으면, 정수 비트는 라운드된 정수 결과를 제공한다.
상기 단계는 오퍼런드의 비트 길이 마이너스 1과 같이 N이 최대 쉬프트 카운트내에 있을 때의 어플리케이션에 최적이다. 만일 N이 1만큼 최대 쉬프트 카운트를 초과하면, 이 방법은 최대 쉬프트 카운트만큼 오퍼런드를 우-쉬프트하여, (i)오퍼런드가 부호가 없으며 제로에서 멀어지는 라운드가 선택되며, (ii) 모든 분수 비트가 제로이고 오퍼런드가 음수이며 부호가 있고, 제로에서 멀어지는 라운드가 선택될 때 라운드된 정수 결과로서 정수 비트를 제공하며, 그렇지 않으면 라운드된 정수 결과로서 제로를 제공하는 것을 포함할 수 있다. 더우기, 만일 N가 2개 이상만큼 최대 쉬프트 카운트를 초과하면, 이 방법은 라운드된 정수 결과로서 제로를 제공하는 것을 포함할 수 있다.
본 발명의 다른 실시예에서, 장치는 우-쉬프터, 제어 회로 및 증분 회로를 구비한다. 상기 위로-쉬프터는 오퍼런드를 우-쉬프트시킨다. 제어 회로는 오퍼런드의 부호 비트, 분수 비트, 오퍼런드가 부호가 있거나 또는 부호가 없는 지를 가리키는 모드 신호, 및 제로쪽으로의 라운드 또는 제로에서 멀어지는 라운드를 선택하는 라운드 신호에 응답하여 증분 신호를 생성한다. 이 증분 회로는 상기 증분 신호에 응답하여 라운드된 정수 결과로서 증분된 정수 비트 또는 정수 비트중 어느 하나를 제공한다.
필요하다면, 상기 장치는 또한 N가 최대 쉬프트 카운트를 초과하는 지를 판단하고, N가 최대 쉬프트 카운트를 1만큼 초과할 때 제어 회로에 영향을 미치는 신호를 가리키는 범위를 생성하고, 그리고 N가 2이상만큼 최대 쉬프트 카운트를 초과하고 몇몇 예에서 N가 최대 쉬프트 카운트를 1만큼 초과할 때 정수 신호에 무관하게 증분 회로로 하여금 라운드된 정수 결과를 강제로 제로로 세트하게 하는 언더플로우 신호를 생성하기 위한 범위 검출기를 구비할 수 있다.
상기 방법 또는 장치는 제로쪽으로의 라운딩, 제로에서 멀어지는 라운딩 또는 이들 모두에 대해서는 물론 부호있는 오퍼런드, 부호없는 오퍼런드 또는 이들 모두에 대해 그리고 또한 N를 인에이블시켜 최대 쉬프트 카운트를 초과하도록 충분한 비트 위치를 포함하거나 또는 포함하지 않는 정수 N를 수신하도록 컨피그될 수 있다.
예를 들어, 만일 제로에서 멀어지는 부호없는 오퍼런드의 라운딩이 필요하고 N이 최대 쉬프트 카운트이내이면, 이때 상기 방법은 분수 비트의 최상위 비트가 1일 때 라운드된 정수 결과를 제공하고 그렇지 않으면 라운드된 정수 결과로서 정수 비트를 제공하기 위해 정수 비트를 증분시키는 것을 포함한다. 상기 제어 회로는 분수 비트의 최상위 비트에 응답하여 증분 신호를 생성한다.
바람직하게, 오퍼런드는 M 비트로 구성되고, 분수 중간 결과는 M 정수 비트 및 M-1 분수 비트로 구성되며, N는 0 내지 M-1의 범위이며, N 최하위 오퍼런드 비트는 N 최상위 분수 비트로 쉬프트되고, M-N-1 최하위 분수 비트는 제로로 패드된다.
본 발명의 특징은, 라운드된 정수 결과가 2N로 나누어지고, MPEG 표준에 따라 라운드된 오퍼런드를 표현하는데 사용될 수 있다는 것이다.
본 발명의 이들 및 다른 특징, 및 장점은 바람직한 실시예에 대한 상세한 설명으로부터 명확히 알 수 있을 것이다.
도 1A 및 도 1B 는 본 발명의 실시예에 따른 알고리즘의 순서도.
도 2 는 본 발명의 실시예에 따른 논리 회로의 블럭도.
도 3 내지 도 6 은 도 2 의 논리 회로에 사용하는데 적합한 증분 회로의 블럭도.
도 7A 내지 도 7D 는 도 2 의 논리 회로를 증분시키기 위한 논리 회로의 회로도.
도 8 은 도 7A 에서 접속 노드의 예시도.
<도면의 주요 부분에 대한 부호의 설명>
200, 700 : 논리 회로
202 : 우-쉬프터
204 : 범위 검출기
206 : 제어 회로
208 : 증분 회로
302, 402, 502, 602 : 가산기
304, 404, 504, 604 : 멀티플렉서
702 : 2-비트 디코더
706 : 쉬프터
708 : 접속 노드
750, 752, 754, 756 : 전파-생성(PG)부
758 : 캐리 체인
760 : 합계 생성부
이하, 첨부한 도면을 참조로 하여 본 발명의 바람직한 실시예를 상술하며, 도면 전체를 통하여 동일한 부분에는 동일한 도면부호를 사용하기로 한다.
본 발명은 분수 중간 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하는 것에 관한 것이다. 분수 중간 결과는 정수 비트(이전 포인트의 좌측으로)와 분수 비트(이진 포인트의 우측으로) 모두를 포함한다. 분수 비트의 최상위 비트(MSB)는 하프-정수 위치에서 이진 포인트의 중간 우측이다.
본 발명의 실시예에 따르면, 라운드된 정수 결과가 정수 비트, 1만큼 증분된정수 비트 또는 제로중 어느 하나에 의해 제공된다. 선택은 오퍼런드가 부호가 있는 가 또는 부호가 없는 가, 오퍼런드가 양 또는 음(만일 부호가 있으면)인가, 제로쪽으로의 라운드 또는 제로에서 멀어지는 라운드가 선택되는가, 또한 분수 비트의 값 및 최대 카운트와 비교하여 N의 값에 따른다.
바람직하게, 정수 오퍼런드는 M-비트이고, 라운드된 정수 결과는 M-비트이고, 우-쉬프터는 M-1의 최대 쉬프트 값을 갖는 M-비트 M-위치 쉬프터이며, 분수 중간 결과는 M 정수 비트와 M-1 분수 비트를 갖는다. 우-쉬프트가 생성하면, 오퍼런드가 부호가 없을 때, 정수 비트의 MSB는 제로(즉, 논리적 우-쉬프트)로 세트되고, 오퍼런드가 부호가 있을 때, 오퍼런드의 부호 비트(즉, 산술 우-쉬프트)로 세트된다. 더우기, 쉬프트-아웃된 비트는 분수 비트 위치로 쉬프트되지만, 쉬프트-아웃된 비트를 수신하지 않는 임의의 분수 비트가 제로로 패드된다. 이와 같이, 분수 비트의 수는 쉬프트 카운트에 따르지 않는다. 예를 들어, 만일 오퍼런드가 한 비트 위치만큼 우-쉬프트되면, 분수 비트의 MSB는 오퍼런드의 LSB로 세트되고, 다른 분수 비트는 제로로 패드된다. 또한 일반적으로 비록 본 발명이 N가 M-1을 초과할 때 라운드된 정수 결과를 제공하는데 적합하더라도 오퍼런드는 N가 1과 M-1 사이의 정수인 N 비트 위치만큼 우-쉬프트되는 것이 바람직하다.
본 발명에 사용된 바와 같이, 부호있는 숫자는 양수가 제로를 포함하는 2의 보수 형태로 표현된다. 부호있는 오퍼런드가 양 또는 음인 지를 결정하는 것은 그 MSB를 검사함으로서 달성된다. 양의 오퍼런드의 경우, MSB(또는 부호 비트)는 제로이고, 반면에 음의 오퍼런드의 경우, MSB는 1이다. 이와 같이, 양의 오퍼런드는 제로를 포함한다. 더우기, 증분시킨다는 것은 1만큼 최하위 비트(LSB) 위치를 증분시키는 것을 의미한다.
도 1A 및 도 1B 는 본 발명의 실시예에 따른 알고리즘(100)의 순서도이다. 단계(102)에서, M-비트 정수 오퍼런드와 정수 N이 구해진다. N는 얼마나 많은 비트 위치를 오퍼런드가 우-쉬프트될 것인 지를 정의한다. 결정 단계(104)는 N이 M보다 적은 지를 시험하고, 이로 인해 N이 M-1의 최대 쉬프트 카운트이내 인지를 시험한다. 만일 그렇다면, 결정 단계(104)는 결정 단계(106)로 분기하고, 만일 그렇지 않으면, 결정 단계(104)는 결정 단계(128)로 분기한다. 결정 단계(106)는 오퍼런드가 부호있는 또는 부호없는 숫자 인지를 예를 들어 모드 신호를 검사함으로써 판단한다. 만일 오퍼런드가 부호가 없으면, 단계(108)에서 오퍼런드는 논리적으로 N 비트 위치만큼 우-쉬프트된다. 만일 오퍼런드가 부호가 있으면, 단계(110)에서 오퍼런드는 N 비트 위치만큼 산술적으로 우-쉬프트되고, 결정 단계(112)에서 부호있는 오퍼런드가 양 또는 음인지를 예를 들어 정수 비트의 MSB를 검사함으로써 판단한다. 만일 부호있는 오퍼런드가 양이면, 이때 결정 단계(112)는 결정 단계(114)로 분기하고, 반면에 만일 부호있는 오퍼런드가 음이면, 이때 결정 단계(112)는 결정 단계(116)로 분기한다. 또한, 알 수 있는 바와 같이, 단계(108)는 결정 단계(114)로 직접 진행한다. 이와 같이, 만일 N가 최대 쉬프트 카운트이내에 있으면, 알고리즘(100)은 부호없는 오퍼런드와 양의 부호있는 오퍼런드를 논리적 우-쉬프팅과 산술적 우-쉬프팅 각각을 제외하고 동일한 것으로 취급한다.
결정 단계(114 및 116)는 예를 들어 제로쪽으로의 라운드 또는 제로에서 멀어지는 라운드를 선택하는 라운드 신호를 검사함으로써 라운드 방향을 판단한다. 결정 단계(114)에서, 만일 제로쪽으로의 라운드가 선택되면, 결정 단계(114)는 끝 단계(126)로 분기하고, 정수 비트는 라운드된 정수 결과를 제공하며, 알고리즘은 종료한다. 그렇지 않고, 만일 제로에서 멀어지는 라운드가 선택되면, 결정 단계(114)는 결정 단계(120)로 분기한다. 결정 단계(120)에서, 만일 분수 비트의 MSB가 1이면, 이때 단계(122)에서 정수 비트는 증분되고, 단계(122)는 끝 단계(126)로 분기하고, 증분된 정수 비트는 라운드된 정수 결과를 제공하고, 알고리즘은 종료하며, 그러나, 만일 분수 비트의 MSB가 제로이면, 결정 단계(120)는 끝 단계(126)로 분기하고, 정수 비트는 라운드된 정수 결과를 제공하고, 알고리즘은 종료한다.
결정 단계(116)로 복귀하여, 만일 제로에서 멀어지는 라운드가 선택되면, 결정 단계(116)는 결정 단계(118)로 분기한다. 결정 단계(118)는 분수 비트의 MSB이외의 임의의 분수 비트가 1인지를 예를 들어 분수 비트의 MSB를 제외한 모든 분수 비트를 OR함으로서 시험한다. 만일 어떠한 비-MSB 분수 비트도 1이면, 이때 결정 단계(118)는 결정 단계(120)로 분기하고, 알고리즘은 상술된 바와 같이 진행한다. 그렇지 않고 결정 단계(118)는 끝 단계(126)로 진행하고, 정수 비트는 라운드된 정수 결과를 제공하고, 알고리즘은 종료한다. 결정 단계(116)에서, 만일 제로쪽으로의 라운드가 선택되면, 결정 단계(116)는 예를 들어 모든 분수 비트를 OR함으로서 임의의 분수 비트가 1인지를 시험하는 결정 단계(124)로 분기한다. 만일 임의의 분수 비트가 1이면, 결정 단계(124)는 증분 단계(122)로 분기하고, 증분된 정수 비트는 라운드된 정수 결과를 제공하며, 알고리즘은 끝 단계(126)에서 종료한다. 그러나, 만일 모든 분수 비트가 제로이면, 결정 단계(124)는 끝 단계(126)로 분기하고, 정수 비트는 라운드된 정수 결과를 제공하고 알고리즘은 종료한다.
결정 단계(104)로 복귀하여, 만일 N가 M보다 크거나 같으면(따라서 최대 쉬프트 카운트를 초화하면), 이때 결정 단계(104)는 결정 단계(128)로 분기한다(도 1B). 결정 단계(128)는 N가 M과 같은 지를 판단한다. 만일 그렇지 않고 N가 그 최대 쉬프트 카운트를 2이상 초과하면, 결정 단계(128)는 정수 비트를 제로로 세트시키는 단계(130)로 분기하고, 단계(130)는 끝 단계(148)로 진행하고, 제로로 세트된 정수 비트는 라운드된 정수 결과를 제공하며, 알고리즘은 종료한다. 만일 N가 M과 같고 N가 최대 쉬프트 카운트를 1만큼 초과하면, 결정 단계(128)는 오퍼런드가 부호가 있거나 또는 부호가 없는 지를 판단하는 결정 단계(132)로 분기한다. 만일 오퍼런드가 부호가 없으면, 단계(134)에서 오퍼런드는 M-1 비트 위치만큼 논리적으로 우-쉬프트된다. 만일 오퍼런드가 부호가 있으면, 단계(136)에서 오퍼런드는 M-1 비트 위치만큼 산술적으로 우-쉬프트되고, 결정 단계(138)는 부호있는 오퍼런드가 양 또는 음인지를 판단한다. 만일 부호있는 오퍼런드가 양이면, 이때 결정 단계(138)는 끝 단계(148)로 분기하고, 정수 비트는 라운드된 정수 결과를 제공하고, 알고리즘은 종료한다. 만일 부호있는 오퍼런드가 음이면, 이때 결정 단계(138)는 결정 단계(142)로 분기한다. 또한, 단계(134)는 결정 단계(140)로 직접 진행한다.
결정 단계(140 및 142)는 라운드 방향을 결정한다. 결정 단계(140)에서, 만일 제로쪽으로의 라운드가 선택되면, 결정 단계(140)는 단계(130)로 분기하고, 정수 비트는 제로로 세트되며 라운드된 정수 결과를 제공하며, 끝 단계(148)에서 알고리즘은 종료한다. 그렇지 않고, 만일 제로에서 멀어지는 라운드가 선택되면, 결정 단계(140)는 끝 단계(148)로 분기하고, 정수 비트는 라운드된 정수 결과를 제공하며, 끝 단계(148)에서 알고리즘은 종료한다. 결정 단계(142)에서, 만일 제로쪽으로의 라운드가 선택되면, 이때 단계(144)에서 정수 비트가 증분되고, 단계(144)는 끝 단계(148)로 진행하고, 증분된 정수 비트는 라운드된 정수 결과를 제공하고, 알고리즘을 종료한다. 그러나, 만일 제로에서 멀어지는 라운드가 선택되면, 결정 단계(142)는 임의의 분수 비트가 1인 지를 결정하는 결정 단계(146)로 분기한다. 만일 임의의 분수 비트가 1이면, 결정 단계(146)는 단계(144)로 분기하고, 증분된 정수 비트는 라운드된 정수 결과를 제공하고, 알고리즘은 끝 단계(148)에서 종료한다. 그러나, 만일 모든 분수 비트가 제로이면, 결정 단계(146)는 끝 단계(148)로 분기하고, 정수 비트는 라운드된 정수 결과를 제공하고, 알고리즘은 끝 단계(148)에서 종료한다.
알고리즘(100)이 변형은 명확하다. 예를 들어, 만일 N가 M보다 적고 제로에서 멀어지는 라운드가 선택되고 분수 비트의 MSB가 제로이면, 이때 정수 비트는 라운드된 정수 결과를 제공한다. 만일 N가 M보다 적고 모든 분수 비트가 제로이면, 이때 정수 비트는 라운드된 정수 결과를 제공한다. 만일 N가 M와 같으면 이때, 라운드된 정수 결과는 (i) 오퍼런드가 부호가 없고 제로쪽으로의 라운드가 선택될 때, (ii) 오퍼런드가 양이고 부호가 있을 때, (iii) 오퍼런드가 음이고 부호가 있으며 제로쪽으로의 라운드가 선택될 때, 그리고 (iv) 오퍼런드가 음이고 부호가 있으며 제로에서 멀어지는 라운드가 선택되고 임의의 분수 비트가 1일 때 제로로 세트될 수 있다. 단계(122, 124 및 126)는 단계(144, 146 및 148)과 각각 상호 교환가능하다.
보다 상세히 N가 최대 쉬프트 카운트이내일 때 제로쪽으로 라운드된 부호없는 오퍼런드와 양의 부호있는 오퍼런드의 경우를 고려하자. 이 경우, 정수 비트는 그대로 남아 있고 분수 비트는 트렁케이트된다. 알고리즘(100)에서, 결정 단계(114)는 끝 단계(126)로 분기하고, 정수 비트는 라운드된 정수 결과를 제공한다.
N가 최대 쉬프트 카운트를 초과할 때 제로쪽으로 라운드된 부호없는 오퍼런드의 경우를 고려하자. 이 경우, N가 모든 오퍼런드 비트를 이진 포인트의 우측으로 쉬프트하려고 시도하기 때문에, 라운드된 정수 결과는 제로이어야 한다. 그러나, 오퍼런드 비트가 M-1 비트 위치만 우-쉬프트되기 때문에, 정수 비트의 MSB는 오퍼런드의 MSB가 1일 때 1이다. 이와 같이, 정수 비트 또는 증분된 정수 비트 어느 것도 라운드된 정수 결과에 적합하지 않다. 알고리즘(100)에서, 결정 단계(140)는 N가 M과 같을 때 단계(130)로 분기하고, 결정 단계(128)는 N가 M보다 클 때 단계(130)로 분기한다. 따라서, 라운드된 정수 결과를 제공하는 정수 비트는 모두 제로이다.
N가 최대 쉬프트 카운트를 초과할 때 제로쪽으로 라운드된 부호있는 양의 오퍼런드의 경우를 고려하자. 이 경우, N가 모든 오퍼런드 비트를 이진 포인트의 우측으로 쉬프트하려고 시도하기 때문에, 라운드된 정수 결과는 제로이어야 한다. 비록 오퍼런드 비트가 M-1 비트 위치만 우-쉬프트되지만, 정수 비트는 오퍼런드의 MSB가 제로이기 때문에 모두 제로이다. 알고리즘(100)에서, 결정 단계(138)는 N가 M과 같을 때 단계(148)로 분기하고, 결정 단계(128)는 N가 M보다 클 때 단계(130)로 분기한다. 따라서, 라운드된 정수 결과를 제공하는 정수 비트는 모두 제로이다.
보다 상세히 N가 최대 쉬프트 카운트이내에 있을 때 제로에서 멀어져 라운드된 부호없는 오퍼런드와 부호있는 양의 오퍼런드의 경우를 고려하자. 이 경우, 분수 값이 하프 정수 값보다 크거나 같을 때 정수 비트는 라운드 업되고, 분수 값이 하프 정수 값보다 적을 때 정수 비트가 그대로 유지된다. 따라서, 제로에서 멀어지는 라운딩은 분수 비트의 MSB가 1일 때 정수 비트를 증분시킴으로서 달성된다. 알고리즘(100)에서, 결정 단계(114)는 결정 단계(120)로 분기하고, 증분된 정수 비트는 분수 비트의 MSB가 1일 때 라운드된 정수 결과를 제공하고, 정수 비트는 분수 비트의 MSB가 제로일 때 라운드된 정수 결과를 제공한다.
보다 상세히 N가 최대 쉬프트 카운트를 초과할 때 제로에서 멀어져 라운드된 부호없는 오퍼런드의 경우를 고려하자. 이 경우, 라운드된 정수 결과가 제로 대신에 1이어야 하는 유일한 순간은 오퍼런드의 MSB가 1일 때와 N가 최대 쉬프트 카운트를 1초과할 때이다. 이 경우, 오퍼런드의 MSB는 하프 정수 위치에 속한다. 그러나, 오퍼런드 비트가 M-1 비트 위치만큼 우-쉬프트되기 때문에, 오퍼런드의 MSB는 정수 비트의 LSB로서 종료한다. 따라서, 정수 비트는 N가 최대 쉬프트 카운트를 1초과할 때 라운드된 정수 결과를 제공하고, 그렇지 않으면 라운드된 정수 결과는 제로이다. 알고리즘(100)에서, 결정 단계(140)는 N가 M과 같을 때 단계(148)로 분기하고, 결정 단계(128)는 N가 M보다 클 때 단계(130)로 분기한다. 결국, 정수 비트는 라운드된 정수 결과를 제공하지만, 정수 비트는 N이 M보다 클 때 강제로 제로로 된다.
보다 상세히 N가 최대 쉬프트 카운트를 초과할 때 제로에서 멀어져 라운드된 부호있는 양의 오퍼런드의 경우를 고려하자. 이 경우, N가 모든 오퍼런드 비트를 이진 포인트의 우측으로 쉬프트하려고 시도하기 때문에, 오퍼런드의 MSB는 제로이고, 제로는 분수 비트의 MSB에 속하며, 라운드된 정수 결과는 제로이어야 한다. 비록 오퍼런드 비트가 M-1 비트 위치만큼 우-쉬프트되더라도, 정수 비트는 모두 제로이어야 하고, 따라서, 정수 비트는 라운드된 정확한 정수 결과를 제공한다. 알고리즘(100)에서, 결정 단계(138)는 N가 M과 같을 때 단계(148)로 분기하고, 결정 단계(128)는 N가 M보다 클 때 단계(130)로 분기한다. 따라서, 라운드된 정수 결과를 제공하는 정수 비트는 모두 제로이다.
부호있는 음의 오퍼런드의 경우, 서로 다른 오퍼런드가 적용된다. n-비트 부호있는(2의 보수) 오퍼런드 A가 수학식 1로 주어지는 것에 주목한다.
[수학식 1]
여기서 비트는 임의의 정수 n의 값에 대해 0에서 n-1까지 번호가 매겨져 있다. 예를 들어, n=4인 경우,
[수학식 2]
0111=(-24-1x 0) + (24-2x 1) + (24-3x 1) + (24-4x 1) =0+4+2+1=7
[수학식 3]
1111=(-24-1x 1) + (24-2x 1) + (24-3x 1) + (24-4x 1) =-8+4+2+1=-1
[수학식 4]
1000=(-24-1x 1) + (24-2x 0) + (24-3x 0) + (24-4x 0) =-8+0+0+0=-8
이와 유사하게, 두개의 비트가 이진 포인트의 우에 있는 n=5인 경우,
[수학식 5]
110.00=(-23-1x1)+(23-2x1)+(23-3x0)+(23-4x0)+(23-5x0)= -4+2+0+0+0=-2
[수학식 6]
110.01=(-23-1x1)+(23-2x1)+(23-3x0)+(23-4x0)+(23-5x1)= -4+2+0+0+.25=-1.75
[수학식 7]
110.10=(-23-1x1)+(23-2x1)+(23-3x0)+(23-4x1)+(23-5x0)= -4+2+0+.5+0=-1.50
[수학식 8]
110.11=(-23-1x1)+(23-2x1)+(23-3x0)+(23-4x1)+(23-5x1)= -4+2+0+.5+.25=-1.25
즉, 부호 비트인 부호있는 2의 보수의 MSB는 -2n-1의 값 또는 가중치를 갖는 반면에, 다른 모든 비트는 양의 값 또는 가중치를 갖는다. 중요한 것으로, 부호있는 양의 오퍼런드의 경우, 분수 비트가 양의 값을 가짐으로서, 오퍼런드의 크기를 감소시킨다. 이와 유사하게, 정수 비트를 증분시키는 것은 부호있는 음의 오퍼런드의 크기를 감소시킨다.
증분 결정 이전에, 양의 분수 중간 결과의 정수 비트는 정확한 정수 결과 또는 1만큼 너무 작은 것중 어느 하나이다(즉, 4는 5이어야 한다). 따라서, 분수 중간 결과가 양일 때, 정수 비트를 증분시키는 것은 라운드 업(제로에서 멀어지는)한다. 그러나, 음의 분수 중간 결과의 정수 비트는 분수 비트가 양의 값을 가지기 때문에 정확한 결과 또는 1만큼 너무 큰(즉, -5는 -4이어야 한다) 것 중 어느 하나이다. 따라서, 분수 중간 결과가 음일 때, 정수 비트를 증분시키는 것은 라운드 다운(제로쪽으로) 한다. 결국, 분수 중간 결과가 음이고 적어도 하나의 분수 비트가 1일 때, 정수 비트는 이미 라운드 업되고, 증분시키는 것은 기존의 라운드 업을 라운드 다운시키거나 또는 오프셋하는데 사용된다.
보다 상세히 N이 최대 쉬프트 카운트이내일 때 제로쪽으로 라운드된 부호있는 음의 오퍼런드의 경우를 고려하자. 이 경우, 정수 비트는 임의의 분수 비트가 1일 때 기존의 라운드 업을 오프셋시키기 위해 라운드 다운되고, 정수 비트는 모든 분수 비트가 제로일 때 그대로 남게 된다. 따라서, 라운딩은 임의의 분수 비트가 1일 때 정수 비트를 증분시키고, 모든 분수 비트가 제로일 때 정수 비트를 바꾸지 않음으로서 달성된다. 알고리즘(100)에서, 결정 단계(116)는 결정 단계(124)로 분기한다. 결국, 증분된 정수 비트는 임의의 분수 비트가 1일 때 정수 결과를 제공하고, 모든 분수 비트가 제로일 때 정수 비트는 정수 결과를 제공한다.
보다 상세히 N이 최대 쉬프트 카운트를 초과할 때 제로쪽으로 라운드된 부호있는 음의 오퍼런드의 경우를 고려하자. 이 경우, N이 모든 오퍼런드 비트를 이진 포인트의 우-쉬프트하려고 시도하고 오퍼런드의 MSB가 1이기 때문에, 1은 모든 정수 비트와 분수 비트의 MSB에 속하고, 정수 성분(마이너스 1)은 라운드 다운되어야 하며, 라운드된 정수 결과는 제로이어야 한다. 알고리즘(100)에서, 결정 단계(142)는 결정 단계(144)로 분기하고, 1의 스트링으로서의 정수 비트는 증분되며 N이 M과 같을 때 제로의 스트링이 된다. 그렇지 않으면, N이 M보다 클 때 결정 단계(128)는 단계(130)으로 분기한다. 따라서, 라운드된 정수 결과는 제로이다.
보다 상세히 N이 최대 쉬프트 카운트이내일 때 제로에서 멀어져 라운드된 부호있는 음의 오퍼런드의 경우를 고려하자. 이 경우, 분수 중간 결과가 가장 가까운 정수로 정수 비트가 라운드되고, 정수 비트는 분수 비트가 하프-정수 값을 가질 때 라운드 업(마이너스 무한대쪽으로)된다. 따라서, 라운딩은 분수 비트의 MSB가 1이고 다른 분수 비트가 1일 때 정수 비트를 증분시킴으로서 달성된다. 알고리즘(100)에서, 결정 단계(116)는 결정 단계(118)로 분기한다. 결정 단계(118)는 MSB와 적어도 하나의 다른 분수 비트가 1일 때에만 증분 단계(122)로 분기하는 결정 단계(120)로 분기한다. 결국, 증분된 정수 비트는 분수 비트의 MSB와 적어도 하나의 다른 분수 비트가 1일 때 정수 결과를 제공하고, 정수 비트는 정수 비트의 MSB가 1이거나 다른 모든 분수 비트가 제로일 때 정수 결과를 제공한다.
보다 상세히 N이 최대 쉬프트 카운트를 초과할 때 제로에서 멀어져 라운드된 부호있는 음의 오퍼런드의 경우를 고려하자. 이 경우, N이 모든 오퍼런드 비트를 이진 포인트의 우-쉬프트하려고 시도하고 오퍼런드의 MSB가 1이기 때문에, 1은 모든 정수 비트와 분수 비트의 MSB에 속한다. 정수 성분(마이너스 1)이 제로로 라운드 다운되지 않아야(증분되는)하는 유일한 경우는 오퍼런드가 부호있는 최대 음의 정수이고 N이 최대 쉬프트 카운트를 1만큼 초과할 때이다. 이 경우, 분수 성분은 0.5의 값을 가지며, 동점인 경우가 생성하며, 어떠한 증분도 라운딩 업(마이너스 무한대쪽으로)을 제공하지 않는다. 오퍼런드 비트가 M-1 비트 위치만큼 우-쉬프트되기 때문에, 오퍼런드는 부호있는 최대 음의 정수이고, 모든 분수 비트는 제로이다. 알고리즘(100)에서, 결정 단계(142)는 결정 단계(146)로 분기하고, 정수 비트는 모든 분수 비트가 제로이지 않는 한 N이 M과 같을 때 증분된다. 또한, 결정 단계(128)는 N이 M보다 클 때 단계(130)으로 분기한다. 이와 같이, 정수 비트는 모든 분수 비트가 제로이고 N이 M과 같을 때 마이너스 1로서 라운드된 정수 결과를 제공하고, 그렇지 않으면 라운드된 정수 결과는 제로이다.
도 2 는 본 발명의 실시예에 따라 오퍼런드를 라운드하기 위한 논리 회로(200)의 블럭도이다. 논리 회로(200)는 우-쉬프터(202), 범위 검출기(204), 제어 회로(206) 및 증분 회로(208)를 구비한다. 우-쉬프터(202)는 오퍼런드 입력에서 M-비트 이진 정수 오퍼런드, 쉬프트 카운트 포인드에서 쉬프트 카운트 신호, 및 모드 신호(MODE)를 수신하는 M-비트 M-위치 쉬프터이다. 모드 신호는 부호있는 오퍼런드에 대해 1이고, 부호없는 오퍼런드에 대해 제로이다. 우-쉬프터(202)는 산술 우-쉬프팅을 제공하고, 모드 신호가 1일 때 쉬프팅이 생성함에 따라 오퍼런드의 MSB 위치에서 오퍼런드(또는 부호 확장)의 부호 비트를 삽입하고, 우-쉬프터(202)는 논리 우-쉬프팅을 제공하고, 모드 신호가 제로일 때 쉬프팅이 생성함에 따라 쉬프트된 오퍼런드의 MSB 위치에서 제로를 삽입한다.
우-쉬프터(202)는 쉬프트 카운트 신호에 의해 명시된 바대로 0의 쉬프트 길이만큼 오퍼런드를 M-1 비트 위치로 우-쉬프트할 수 있다. 따라서, 우-쉬프터(202)는 그 쉬프트 카운트 입력에서 log2(M) 비트를 갖는 쉬프트 카운트 신호를 받아 들인다. 더우기, 우-쉬프트가 생성할 때, 우-쉬프터(202)는 쉬프트 카운트에 무관하게 M 정수 비트와 M-1 분수 비트를 제공한다. 쉬프트-아웃된 비트는 분수 비트 위치로 쉬프트되지만, 쉬프트-아웃된 비트를 수신하지 않는 임의의 분수 비트는 제로로 패드된다. 예를 들어, 만일 부호있는 양의 오퍼런드가 1비트 위치 만큼 우-쉬프트되면, 정수 비트의 MSB는 제로로 세트되고, M-1 최우측 정수 비트는 오퍼런드의 M-1 최좌측 비트로 세트되고, 분수 비트의 MSB는 오퍼런드의 LSB로 세트되고, M-2 최우측 분수 비트는 제로로 패드된다. 선택적으로, 만일 부호있는 음의 오퍼런드가 M-1 비트 위치 만큼 우-쉬프트되면, 정수 비트는 1로 세트되고, 분수 비트는 오퍼런드의 M-1 최우측 비트(즉, 크기 비트)로 세트된다.
우-쉬프터(202)는 종래의 것이며, 기술분야의 숙련자는 다양하게 변형할 수 있다는 것을 알 수 있을 것이다. 예를 들어, 우-쉬프터(202)는 직렬(비트별로)로 동작하는 한 레벨의 쉬프터로서 구현될 수 있다. 이와 같은 쉬프터는 쉬프트 시간이 쉬프트 길이에 비례하기 때문에 느리다. 선택적으로, 비용보다는 성능이 중요하다면, 우-쉬프터(202)는 병렬 쉬프팅이 M 멀티플렉서를 사용하여 제공되는 다단 쉬프터로서 구현될 수 있다. 이와 같은 구현에서, 쉬프트 길이는 멀티플렉서를 제어하고, 쉬프트 시간은 멀티플렉서를 통한 지연에 의해 결정된다. 더우기, 우-쉬프터(202)는 좌-쉬프팅이 본 발명에 중요한 것이 아닐지라도 쉬프트 방향 입력을 포함하는 좌/우 쉬트터일 수 있다.
범위 검출기(204)는 높은 차순과 낮은 차순이 비트, 모드 신호 및 라운드 신호(ROUND)로 구성된 부호없는 오퍼런드 N를 수신한다. 라운드 신호는 제로에서 멀어지는 라운드가 선택될 때 1이고, 제로쪽으로의 라운드가 선택되면 제로이다. 높은 차순의 비트는 MSB를 포함하는 인접하는 비트의 스트링이고, 낮은 차순의 비트는 LSB를 포함하는 인접하는 비트의 스트링이며, 최하위 높은 차순의 비트는 최상위 낮은 차순의 비트에 인접한다. 우-쉬프터(202)는 M-1의 최대 쉬프트 카운트를 갖는 M-위치 쉬프터이다. 따라서, 우-쉬프터(202)는 그 쉬프트 카운트 입력에서 log2(M) 비트를 갖는 쉬프트 카운트 신호를 받아들인다. 따라서, 범위 검출기(204)는 N의 낮은 차순의 비트일 수 있는 log2(M) 비트의 쉬프트 카운트 신호를 생성한다. 더우기, 범위 검출기(204)는 N가 M과 같을 때 신호(NEQM)를 가리키는 범위를 생성한다.
예를 들어, N가 32 비트 워드라고 가정하면, 오퍼런드는 32 비트 워드이고, 우-쉬프터(202)는 31의 최대 쉬프트 카운트를 갖는 32-위치 쉬프터이다. 이 경우, 0 내지 31의 쉬프트 카운트는 최대 쉬프트 카운트이내이고, 우-쉬프터(202)가 그 쉬프트 카운트 입력에서 받아 들이는 비트의 최대 수는 log2(32) 또는 5 비트이다. 결국, N는 27의 높은 차순의 비트(비트 위치 231내지 25에서)와 5의 하위 차순의 비트(비트 위치 24내지 20에서)로 구성된다. 범위 검출기(204)는 쉬프트 카운트 신호로서 5 낮은 차순의 비트를 우-쉬프터(202)로 전송한다.
N이 우-쉬프터(202)의 최대 쉬프트 카운트를 2이상 초과하고 N이 우-쉬프터의 최대 쉬프트 카운트를 1 초과하며 부호없는 오퍼런드가 제로쪽으로 라운드될 때 범위 검출기(204)는 언더플로우 신호(UN)를 제공한다. 범위 검출기(204)는 간단한 조합 논리를 사용하여 구현될 수 있다.
제어 회로(206)는 우-쉬프터(202)로부터 분수 비트, 오퍼런드의 MSB(또는 부호 비트), 모드 신호, 라운드 신호 및 범위 표시 신호를 수신한다. 제어 회로(206)는 제어 출력에서 증분 신호(INC)를 생성하는 조합 논리를 포함한다. 증분 신호는 우-쉬프터(202)에 있는 정수 비트가 라운드된 정수 결과를 제공하도록 증분될 필요가 있을 때 1이고, 증분 신호는 우-쉬프터(202)에 있는 정수 비트가 라운드된 정수 결과를 제공할 때 제로이다. 범위 표시 신호가 제로일 때 제어 회로(206)용 진리표가 이하의 표 4에 열거되어 있다.
[표 4]
범위 표시 신호가 제로일 때 제어 회로(206)용 진리표
표 4에서 알 수 있는 바와 같이, 범위 표시 신호는 제로이고, 제어 회로(206)는 (i) 임의의 분수 비트가 1이고 오퍼런드가 음으로 부호가 있으며 제로쪽으로의 라운드가 선택될 때, (ii) 분수 비트의 최상위 비트가 1이고 오퍼런드가 부호가 없으며 제로에서 멀어지는 라운드가 선택될 때, (iii) 분수 비트의 최상위 비트가 1이고 오퍼런드가 양으로 부호가 있으며 제로에서 멀어지는 라운드가 선택될 때, 그리고 (iv) 분수 비트의 최상위 비트가 1이고 다른 분수 비트가 1이며 오퍼런드가 음으로 부호가 있으며 제로에서 멀어지는 라운드가 선택될 때, 증분 신호를 1로 세트시키며, 그렇지 않으면 제어 회로(206)는 증분 신호를 제로로 세트시킨다.
범위 표시 신호가 1일 때 제어 회로(206)용 진리표가 이하의 표 5에 열거되어 있다.
[표 5]
범위 표시 신호가 1일 때 제어 회로(206)용 진리표.
ROUND(0=제로쪽으로)(1=제로에서 멀어지는) | MODE(0=부호없음)(1=부호있음) | 오퍼런드의 MSB | 비-MSB 분수 비트의 OR | INC(0=증가없음)(1=증가) |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 0 |
0 | 0 | 1 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
0 | 1 | 1 | 1 | 1 |
1 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 0 |
1 | 0 | 1 | 1 | 0 |
1 | 1 | 0 | 0 | 0 |
1 | 1 | 0 | 1 | 0 |
1 | 1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 | 1 |
표 5에서 알 수 있는 바와 같이, 범위 표시 신호가 1일 때, 제어 회로(206)는 (i) 오퍼런드가 음으로 부호가 있으며 제로쪽으로의 라운드가 선택될 때, (ii) 임의의 분수 비트가 1이고 오퍼런드가 음으로 부호가 있으며 제로에서 멀어지는 라운드가 선택될 때, 증분 신호를 1로 세트시키며, 그렇지 않으면 제어 회로(206)는 증분 신호를 제로로 세트시킨다.
범위 표시 신호가 1일 때 제어 회로(206)는 증분 신호를 1로 세트시킨다는 것과, 오퍼런드가 음으로 부호가 있으며 따라서 정수 비트가 1의 스트링이며, 증분하는 연산이 정수 비트를 제로의 스트링으로 변환하고 라운드된 정수 결과는 제로라는 것을 알았다. 따라서, 선택적인 배열로서, 범위 검출기(204)는, 제어 회로(206)가 이들 순간에 증분 신호를 1로 세트시키도록, 표 5에서 증분 신호가 1인 순간에 언더플로우 신호를 1로 세트시키도록 수정될 수 있다.
오퍼런드(A)가 비트 AMSB...A0를 포함하고, 분수 비트(F)가 FMSB...A0를 포함한다고 가정한다.
제로쪽으로의 라운드의 경우, N이 최대 쉬프트 카운트이내일 때, 제어 회로(206)는 오퍼런드가 부호가 있으며 음이고 임의의 분수 비트가 1일 때 증분 신호를 1로 세트시킨다. 따라서, 제어 회로(206)는 다음 수학식으로 표현된다.
[수학식 9]
제로에서 멀어지는 라운드의 경우, N이 최대 쉬프트 카운트이내일 때, 제어 회로(206)는 분수 비트의 최상위 비트가 1이고 오퍼런드가 부호가 없을 때, 분수 비트의 최상위 비트가 1이고 오퍼런드가 양이며 부호가 있을 때, 그리고 분수 비트의 최상위 비트가 1이고 다른 분수 비트가 1이고 오퍼런드가 음이며 부호가 있을 때, 증분 신호를 1로 세트시킨다. 따라서, 제어 회로(206)는 다음 수학식으로 표현된다.
[수학식 10]
수학식 10은 다음과 같이 간단히 표현될 수 있다:
[수학식 11]
[수학식 12]
[수학식 13]
수학식 9와 13은 결합되어 다음식으로 표현될 수 있다.
[수학식 14]
제로쪽으로의 라운드의 경우, N이 최대 쉬프트 카운트를 1만큼 초과할 때, 제어 회로(206)는 오퍼런드가 부호가 있으며 음일 때 증분 신호를 1로 세트시킨다. 따라서, 제어 회로(206)는 다음 수학식으로 표현된다.
[수학식 15]
제로에서 멀어지는 라운드의 경우, N이 최대 쉬프트 카운트를 1만큼 초과할 때, 제어 회로(206)는 오퍼런드가 부호가 있으며 음이고 임의의 분수 비트가 1일 때증분 신호를 1로 세트시킨다. 따라서, 제어 회로(206)는 다음 수학식으로 표현된다.
[수학식 16]
INC=ROUND·MODE·AMSB·(FMSB+...+F0)
수학식 15와 16를 결합하여 다음식으로 표현할 수 있다.
[수학식 17]
마지막으로, 제로쪽으로의 라운드와 제로에서 멀어지는 라운드의 경우, N이 최대 쉬프트 카운트이내이고 N이 최대 쉬프트 카운트를 1만큼 초과할 때, 수학식 14와 17을 결합하여 다음식으로 표현할 수 있다.
[수학식 18]
증분 회로(208)은 오퍼런드 입력에서 정수 비트를 수신하고, 상기 정수 비트를 증분시켜 증분 신호가 1일 때 라운드된 정수 결과로서 증분된 정수 비트를 공급하며, 증분 신호가 제로일 때 라운드된 정수 결과로서 정수 비트(증분되지 않은)를 공급한다. 더우기, 증분 회로(208)는 범위 검출기(204)에 의해 생성된 언더플로우 신호(UN)가 1일 때 모든 제로로서 라운드된 정수 결과를 제공한다. 실제로, 언더플로우 신호는 정수 비트와 증분 신호에 무관하게 라운드된 정수 결과를 강제로 제로가 되게 한다.
도 3 내지 도 6 은 도 2 의 논리 회로에 사용하는데 적합한 증분 회로의 블럭도이다.
도 3 에서, 증분 회로(208)는 가산기(302)와 멀티플렉서(304)에 의해 구현된다. 가산기(302)는 제 1 오퍼런드 입력에서 정수 비트를 그리고 제 2 오퍼런드 입력에서 증분 신호를 수신한다. 가산기(302)는 정수 비트와 증분신호의 합을 멀티플렉서(304)의 제 1 오퍼런드 입력에 결합하고, 제로가 멀티플렉서(304)의 제 2 오퍼런드 입력에 결합된다. 멀티플렉서(304)는 종래의 2:1 멀티플렉서이다. 언더플로우 신호가 제로일 때, 멀티플렉서(304)는 제 1 오퍼런드 입력을 선택하고, 결과로서 가산기(302)의 출력을 제공한다. 언더플로우 신호가 1일 때, 멀티플렉서(304)는 제 2 오퍼런드 입력을 선택하고 결과로서 제로를 제공한다.
도 4 에서, 증분 회로(208)는 가산기(402)와 멀티플렉서(404)에 의해 구현된다. 가산기(402)는 제 1 오퍼런드 입력에서 정수 비트를 그리고 제 2 오퍼런드 입력에서 제로를 수신한다. 가산기(402)는 또한 LSB 위치에서 증분 신호를 캐리-인 비트로서 수신한다. 가산기(402)는 정수 비트와 증분신호의 합을 멀티플렉서(404)의 제 1 오퍼런드 입력에 결합하고, 제로가 멀티플렉서(404)의 제 2 오퍼런드 입력에 결합된다. 멀티플렉서(404)는 종래의 2:1 멀티플렉서이다. 언더플로우 신호가 제로일 때, 멀티플렉서(404)는 제 1 오퍼런드 입력을 선택하고, 결과로서 가산기(402)의 출력을 제공한다. 언더플로우 신호가 1일 때, 멀티플렉서(404)는 제 2 오퍼런드 입력을 선택하고 결과로서 제로를 제공한다.
도 5 에서, 증분 회로(208)는 가산기(502)와 멀티플렉서(504)에 의해 구현된다. 가산기(502)는 제 1 오퍼런드 입력에서 정수 비트를 수신하고, 증분된 정수 비트를 멀티플렉서(504)의 제 1 오퍼런드 입력에 결합한다. 정수 비트는 멀티플렉서(504)의 제 2 오퍼런드 입력에 결합되고, 제로가 멀티플렉서(504)의 제 3 오퍼런드 입력에 결합된다. 멀티플렉서(504)는 종래의 3:1 멀티플렉서이다. 증분 신호가 1이고 언더플로우 신호가 제로일 때, 멀티플렉서(504)는 제 1 오퍼런드 입력을 선택하고, 결과로서 증분된 정수 비트를 제공한다. 증분 신호가 제로이고 언더플로우 신호가 제로일 때, 멀티플렉서(504)는 제 2 오퍼런드 입력을 선택하고 결과로서 정수 비트를 제공한다. 마지막으로, 언더플로우 신호가 1일 때, 멀티플렉서(504)는 제 3 오퍼런드 입력을 선택하고 결과로서 제로를 제공한다(증분 신호에 무관하게).
도 6 에서, 증분 회로(208)는 합계 및 합계-플러스-1(sum and sum-plus-one) 가산기(602)와 멀티플렉서(604)에 의해 구현된다. 가산기(602)는 제 1 오퍼런드 입력에서 정수 비트를 그리고 제 2 오퍼런드 입력에서 제로를 수신한다. 가산기(602)는 합계-플러스-1 출력(S+1)에서 오퍼런드의 합계-플러스-1과 합계 출력(S)에서 오퍼런드의 합계를 생성한다. 따라서, 가산기(602)는 멀티플렉서(604)의 제 1 오퍼런드 입력에 결합된 합계-플러스-1 출력에서 증분된 정수 비트를 제공하고, 가산기(602)는 멀티플렉서(604)의 제 2 오퍼런드 입력에 결합된 합계 출력에서 정수 비트를 제공한다. 제로가 멀티플렉서(604)의 제 3 오퍼런드 입력에 결합된다. 멀티플렉서(604)는 종래의 3:1 멀티플렉서이다. 증분 신호가 1이고 언더플로우 신호가 제로일 때, 멀티플렉서(604)는 제 1 오퍼런드 입력을 선택하고, 결과로서 증분된 정수 비트를 제공한다. 증분 신호가 제로이고 언더플로우 신호가 제로일 때, 멀티플렉서(604)는 제 2 오퍼런드 입력을 선택하고 결과로서 정수 비트를 제공한다. 마지막으로, 언더플로우 신호가 1일 때, 멀티플렉서(604)는 제 3 오퍼런드 입력을 선택하고 결과로서 제로를 제공한다(증분 신호에 무관하게).
도 7A 내지 도 7D 는 논리 회로(200)의 4-비트 버젼을 구현하기 위한 논리 회로(700)의 회로도이다. 논리 회로(700)에서, 오퍼런드 A는 A3, A2, A1및 A0으로 구성되고, 정수 N는 N3, N2, N1및 N0로 구성되고, 정수 비트는 비트 I3, I2, I1및 I0로 구성되고, 분수 비트는 F2, F1및 F0로 구성되고 그 결과는 R3, R2, R1및 R0로 구성된다.
도 7A 에서, 우-쉬프터(202)는 2-비트 디코더(702), AND 게이트(704), 및 쉬프터(706)로 구현된 4-비트 4-위치 쉬프터이다. 디코더(702)는 쉬프트 카운트 비트 SC1및 SC0를 수신하고 쉬프트 카운트 신호 S0, S1, S2 및 S3를 생성한다. 디코더(702)에 대한 진리표가 이하의 표 6에 열거되어 있다.
[표 6]
디코더(702)에 대한 진리표
SC1 | SC0 | 쉬프트 신호 | 쉬프트 카운트 |
0 | 0 | S0 | 0 |
0 | 1 | S1 | 1 |
1 | 0 | S2 | 2 |
1 | 1 | S3 | 3 |
즉, SC1과 SC0이 제로일 때, 신호 S0은 1이고 신호 S1, S2 및 S3는 제로 등이다. 신호 S3는 쉬프터(706)에 지시하여 3 비트 위치만큼 우-쉬프트하게 하고, 신호 S2는 쉬프터(706)에 지시하여 2 비트 위치만큼 우-쉬프트하게 하고, S1은 쉬프터(706)에게 지시하여 1 비트 위치만큼 우-쉬프트하게 하고 S0은 쉬프터(706)에게 쉬프트하지 않도록 명령한다.
AND 게이트(704)는 비트 A3와 모드 신호를 수신한다. 따라서, AND 게이트(404)는 A가 부호가 없을 때 제로를 생성하고, A가 양이고 부호가 있을 때 제로를 생성하고, A가 음이고 부호가 있을 때 1을 생성한다.
쉬프터(706)는 0내지 3 비트 위치 간에 쉬프트하는 4-비트 4-위치 우-쉬프터이다. 쉬프터(706)는 오퍼런드 비트 A3, A2, A1및 A0를 수신하는 수직선, AND 게이트(704)의 출력을 수신하는 수직선, 제로로 세트된 수직선, 쉬프트 신호 S3, S2, S1 및 S0를 수신하는 대각선, 정수 비트 I3, I2, I1및 I0를 제공하는 수평선, 분수 비트 F2, F1및 F0를 제공하는 수평선을 포함한다. 원으로 표시된 접속 노드는 수평, 수직 및 대각선의 선택된 교차점에 위치된다. 각각의 접속 노드에서, 교차하는 수평 및 수직선은 교차하는 대각선이 1로 세트될 때 상호 전기적으로 결합되고, 교차하는 수직 및 수평선은 교차하는 대각선이 제로로 세트될 때 상호 전기적으로 격리된다. 예를 들어, 접속 노드(708)는 비트 I0에 대한 수평선, 비트 I0에 대한 수직선, 및 신호 S0에 대한 대각선의 교차점에 배치된다. 신호 S0가 1일 때 비트 A0는 비트 I0로 전달(또는 쉬프트)된다. 신호 S0가 제로일 때 비트 A0는 비트 I0로 아무런 영향도 미치지 않는다.
도 8 에서, 접속 노드(708)가 보다 상세히 도시되어 있다. 알 수 있는바와 같이, 접속 노드(708)는 소스가 비트 A0에 대한 수직선에 결합되고, 드레인이 I0에 대한 수평선에 결합되고, 그리고 게이트가 S0에 대한 대각선에 결합된 MOSFET(802)을 구비한다. 신호 S0가 1일 때, MOSFET(802)는 턴온하고 수평 및 수직선을 결합시킨다. 신호 S0가 제로일 때, MOSFET(802)는 턴오프하고 수평 및 수직선을 분리한다.
도 7A 로 돌아가, 정수 비트와 분수 비트는 오퍼런드 비트, 쉬프트 카운트 비트, 및 모드 신호에 따른다. 예를 들어, 신호 S0가 1이고 신호 S1, S2 및 S3가 제로일 때, 이때 비트 I3, I2, I1및 I0는 비트 A3, A2, A1및 A0로 각각 세트되고, 비트 F2, F1및 F0는 제로로 패드된다. 다른 예로서, 신호 S2가 1이고 신호 S0, S1 및 S3가 제로이고 모드 신호가 1일 때, 이때 비트 I3, I2, I1및 I0는 비트 A3, A3, A3및 A2로 각각 세트되고, 비트 F2, F1및 F0는 비트 A2및 A1및 제로로 각각 세트된다.쉬프터(706)에 대한 진리표가 이하의 표 7에 열거되어 있다.
[표 7]
쉬프터(706)에 대한 진리표
모드 | 쉬프트 신호 | 정수 비트I3I2I1I0 | 분수 비트F2F1F0 |
0 | S0 | A3A2A1A0 | 0 0 0 |
0 | S1 | 0 A3A2A1 | A00 0 |
0 | S2 | 0 0A3A2 | A1A00 |
0 | S3 | 0 0 0 A3 | A2A1A0 |
1 | S0 | A3A2A1A0 | 0 0 0 |
1 | S1 | A3A3A2A1 | A00 0 |
1 | S2 | A3A3A3A2 | A1A00 |
1 | S3 | A3A3A3A3 | A2A1A0 |
도 7B 에서, 범위 검출기(204)는 NOR 게이트(710 및 711), AND 게이트(712, 713 및 714), 및 OR 게이트(715, 716, 717 및 718)를 사용하여 구현된다. N가 제로에서 3까지의 범위에 있고 따라서 최대 쉬프트 카운트 이내에 있을 때, 높은 차순의 비트 N3및 N2는 제로이고, OR 게이트(717 및 718)는 각각 쉬프트 카운트 비트 SC1및 SC0로서 낮은 차순의 비트 N1및 N0를 전송하고, 언더플로우 신호(UN)과 범위 표시 신호(NEQM)은 제로로 세트된다. N가 4이고 따라서 최대 쉬프트 카운트를 1초과할 때, 높은 차순의 비트 N2는 1이고, 쉬프트 카운트 비트 SC1및 SC0는 1로 세트되며, 범위 표시 신호(NEQM)는 1로 세트되고, 만일 모드 및 라운드 신호 모두가 제로이면(부호없는 오퍼런드가 제로쪽으로 라운드된 것을 표시하는), 이때 OR 게이트(716)는 언더플로우 신호를 1로 세트한다. N이 5이상이고, 따라서 최대 쉬프트 카운트를 2이상 초과할 때, OR 게이트(716)는 언드플로우 신호를 1로 세트하고, SC1및 SC0의 값과 범위 표시 신호는 무관하게 된다. 만일 필요하다면, NOR 게이트(711)과 AND 게이트(713)는 N이 5미만일 때 비트 N2가 정확한 범위 표시 신호를 제공하기 때문에 생략될 수 있다.
도 7C 에서, 제어 회로(206)는 AND 게이트(720, 722, 724 및 726), 및 OR 게이트(730, 732, 734, 736 및 738), 및 인버터(740, 742, 744 및 746)를 사용하여 구현된다. 수학식 18에 따르면, OR 게이트(730)는 다음과 같이 증분 신호를 생성한다:
[수학식 19]
도 7D 에서, 증분 회로(208)는 가산기(가산기(302)와 유사)와 멀티플렉서(멀티플렉서(304)와 유사)를 포함한다. 상기 가산기는 전파-생성(PG)부(750, 752, 754 및 756), 캐리 체인(758), 및 합계 생성부(760)를 구비하며, 명령 사이클의 기본 스텝내에서 고속 덧셈을 수행하도록 컨피그되어 있다. 정수 비트 I3, I2, I1및 I0는 PG부(750, 752, 754 및 756)의 제 1 오퍼런드 입력에 각각 인가된다. 덧셈에서, 제로가 PG부(750, 752 및 754)의 제 2 오퍼런드 입력에 인가되고, 증분 신호는 PG부(756)의 제2 오퍼런드 입력에 인가된다. PG부(750)는 캐리 체인(758)의 스테이지 3에 전파 및 생성 신호 P3및 G3에 제공하고, PG부(752)는 캐리 체인(758)의 스테이지 2에 전파 및 생성 신호 P2및 G2에 제공하고, PG부(754)는 캐리 체인(758)의 스테이지 1에 전파 및 생성 신호 P1및 G1에 제공하고, PG부(756)는 캐리 체인(758)의 스테이지 0에 전파 및 생성 신호 P0및 G0에 제공한다. 제로는 캐리 체인(758)의 LSB 위치에서 캐리-인 비트로서 제공된다. 캐리 체인(758)은 캐리-아웃 비트 C3, C2, C1및 C0를 생성한다. 비트 I3및 C3및 제로는 합계 생성기(760)의 스테이지 3에 인가되고, 비트 I2및 C1및 제로는 합계 생성기(760)의 스테이지 2에 인가되고, 비트 I1및 C0및 제로는 합계 생성기(760)의 스테이지 1에 인가되고, 비트 I0및 한쌍의 제로는 합계 생성기(760)의 스테이지 0에 인가된다. 합계 생성기(760)는 합계 출력 비트 S3, S2, S1및 S0로서 정수 비트와 증분 신호의 합계를 제공한다.
합계 생성기(760)의 각 스테이지는 예를 들어, 제 1 익스클루시브-OR 게이트의 입력과 합산될 숫자를 수신하는 제 2 익스클루시브-OR 게이트의 제 2 입력, 제 2 익스클루시브-OR 게이트의 제 1 입력에 결합된 제 1 익스클루시브-OR 게이트의 출력, 및 결과를 제공하는 제 2 익스클루시브-OR 게이트의 출력을 갖는 제 1 및 제 2 두 입력 익스클루시브-OR 게이트(도시되지 않음)를 포함할 수 있다. 적합한 PG부, 캐리 체인 및 합계 생성부는 기술 분야에 공지되어 있다.
멀티플렉서는 인버터(762), AND 게이트(764, 766, 768, 770, 772, 774, 776 및 778), 및 OR 게이트(780, 784 및 786)에 의해 제공된다. 제로는 AND 게이트(764, 768, 772 및 776)에 인가되고, 비트 S3, S2, S1및 S0는 AND 게이트(766, 770, 774 및 778)에 각각 인가된다. 더우기, 언더플로우 신호는 AND 게이트(764, 768, 772 및 776)에 인가되고, 언더플로우 신호의 비트 보수는 AND 게이트(766, 770, 774 및 778)에 인가된다. AND 게이트(764 및 766)의 출력은 비트 R3를 제공하는 OR 게이트(780)에 인가되고, AND 게이트(768 및 770)의 출력은 비트 R2를 제공하는 OR 게이트(782)에 인가되고, AND 게이트(772 및 774)의 출력은 비트 R1를 제공하는 OR 게이트(784)에 인가되고, AND 게이트(776 및 778)의 출력은 비트 R0를 제공하는 OR 게이트(786)에 인가된다. 이와 같이, 비트 R3, R2, R1, R0는 언더플로우 신호가 제로일 때 S3, S2, S1, S0로 각각 세트되고, 비트 R3, R2, R1, R0는 언더플로우 신호가 1일 때 제로로 세트된다.
입력이 신호에 반응하도록 신호를 입력에 결합하는 것은 기능성이 준비되는 한 관련된 신호를 입력에 인가하는 것은 물론 입력에 신호를 인가하는 것을 포함한다는 것을 알 수 있다. 예를 들어, 증분 신호를 증분 회로에 결합하는 것은 증분된 정수 비트 또는 제로 또는 1에 응답하여 정수 비트를 선택하는 멀티플렉서 증분 신호의 비트 보수를 인가하는 것은 물론, 증분된 정수 비트 또는 1 또는 제로에 응답하여 정수 비트를 각각 선택하는 멀티플렉서에 증분 신호를 결합하는 것을 포함한다.
또한, 좌-쉬프팅은 MSB 위치쪽으로의 쉬프팅을 가리키고, 우-쉬프팅은 LSB 위치쪽으로의 쉬프팅을 가리킨다는 것을 알 수 있다.
또한, 다양한 비트가 레지스터에 저장될 수 있다는 것을 알 수 있다. 예를 들어, 레지스터는 우-쉬프터(202)와 정수 비트를 저장하는 증분 회로(208) 사이에 배치된다. 이와 같이, 정수 비트와 분수 비트는 제 1 명령 사이클 동안 제공될 수 있고, 라운드된 정수 결과는 제 2 명령 사이클 동안 제공될 수 있다.
쉬프터는 곱셈 및/또는 나눗셈을 구현할 수 있다. 예를 들어, 본 발명과 동시에 출원되고, 본 발명의 참조로 일체화된, R. Wong에 의한 발명의 명칭 "Arithmetic Shifter that Performs Multiply/Division by 2Nfor Positive and Negative N"인 미국 출원 번호 제. [미정, attorney docket no M-4446 US]를 참조한다. 더우기, 오퍼런드가 좌-쉬프트되어 있는 경우에, 다양한 오버플로우와 클램핑 기술이 본 발명과 함께 사용될 수 있다. 예를 들어, 본 발명과 동시에 출원되고, 본 발명의 참조로 일체화된, R. Wong에 의한 발명의 명칭 "Left-Shifting and Integer Operand and Providing a Clamped Integer Result"인 미국 출원 번호 제. [미정, attorney docket no M-4428 US]를 참조한다.
개시된 본 발명의 설명은 예시적인 것이고 다음의 특허청구의 범위에 개시된 바와 같이 본 발명의 영역을 한정하려 의도된 것은 아니다. 예를 들어, 우-쉬프터(202), 범위 검출기(204), 제어 회로(206) 및 증분 회로(208)는 적합한 다른 회로에서구현될 수 있다. 범용 컴퓨터 또는 프로세서는 본 발명을 단일 명령 사이클(바람직한 것으로) 또는 다수 명령 사이클로 실행할 수 있다. 본 발명은 MPEG 프로세싱 이외에 많은 응용에 적합하다. 본 발명을 특정의 바람직한 실시예에 관련하여 도시하고 설명하였지만, 이하의 특허청구의 범위에 의해 마련되는 본 발명의 정신이나 분야를 이탈하지 않는 한도내에서 본 발명이 다양하게 개조 및 변화될 수 있다는 것을 당 업계에서 통상의 지식을 가진 자는 용이하게 알 수 있다.
Claims (44)
- 멀티미디어 데이터 처리에 의해 대지털 영상 및 음성 데이터로서 제공되어지는 오퍼런드를 우-쉬프트 하여 정수 비트들과 분수 비트들을 포함하는 분수 중간 결과를 구하는 우-쉬프터와, 상기 오퍼런드의 범위를 검출하는 범위검출기와, 상기 분수 비트들의 상태에 따라 생성된 증분신호에 의거 정수 결과를 제공하는 증분회로를 구비하는 멀티미디어 프로세서에서 동화상 전문가 그룹 모션 프로세싱을 수행함에 있어 부호가 있는 정수 오퍼런드를 N(여기서, N은 정수)에 대응하여 우-쉬프트 하여 제로 쪽으로 라운드된 정수 결과를 구하는 회로의 동작방법에 있어서,상기 범위검출기를 통해 상기 오퍼런드 범위를 검출하여 N이 최대 쉬프트 카운트 이내일 때 상기 우-쉬프터를 이용하여 상기 오퍼런드를 N 비트 위치만큼 산술적으로 우-쉬프트 하여 정수 비트들과 분수 비트들을 포함하는 분수 중간 결과를 구하는 단계와;N이 상기 최대 쉬프트 카운트 보다 클 때 상기 우-쉬프터를 이용하여 상기 오퍼런드를 상기 최대 쉬프트 카운트만큼 산술적으로 우-쉬프트 하여 상기 분수 중간 결과를 구하는 단계와;상기 분수 비트들 중 임의의 것이 '1'이고 상기 오퍼런드가 음이면 상기 증분회로로서 상기 정수 비트들을 증분하여 증분된 정수 비트들을 상기 정수 결과로 제공하는 단계와;그렇지 않고, N이 상기 최대 쉬프트 카운트 이내인 경우 상기 증분회로로서 상기 정수 비트들을 상기 정수 결과로 제공하는 단계와;N이 상기 최대 쉬프트 카운트 보다 클 때 상기 증분회로로서 정수 결과를 제공하는 단계를 구비하는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법.
- 제 1 항에 있어서,상기 오퍼런드는 M 비트들로 구성되고, 상기 분수 중간 결과는 M의 정수 비트들과 M-1의 분수 비트들로 구성되며, N은 0에서 M-1의 범위에 있고, 상기 분수 비트들의 M-N-1 최하위 비트들은 '0'으로 패드 되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법.
- 제 1 항에 있어서,상기 오퍼런드는 M 비트들로 구성되고, 상기 최대 쉬프트 카운트가 M-1이며, N이 M보다 크거나 같을 때 상기 정수 결과는 '0'임을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트 하고 분수 중간 결과를 라운드하기 위한 방법.
- 제 1 항에 있어서,상기 정수 결과는 2N으로 나누어진 상기 오퍼런드를 표현하는데 사용되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법.
- 제 1 항에 있어서,상기 단계들은 단일 명령 사이클에서 수행되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법.
- 멀티미디어 데이터 처리에 의해 디지털 영상 및 음성 데이터로서 제공되어지는 오퍼런드를 우-쉬프트 하여 정수 비트들과 분수 비트들을 포함하는 분수 중간 결과를 구하는 우-쉬프터와, 상기 오퍼런드의 범위를 검출하는 범위검출기와, 상기 분수 비트들의 상태에 따라 생성된 증분신호에 의거 정수 결과를 제공하는 증분회로를 구비하는 멀티미디어 프로세서에서 동화상 전문가 그룹 모션 프로세싱을 수행함에 있어 정수 오퍼런드를 N(여기서, N은 정수)에 대응하여 우-쉬프트 하여 제로쪽으로 라운드된 정수 결과를 구하는 회로의 동작방법에 있어서,상기 오퍼런드가 부호가 있는지 없는지를 나타내는 단계와;상기 범위검출기를 통해 상기 오퍼런드의 범위를 검출하여 N이 상기 우-쉬프터의 최대 쉬프트 카운트 이내인 경우 상기 우-쉬프터를 이용하여 상기 오퍼런드가 부호가 없으면 상기 오퍼런드를 N 비트 위치만큼 논리적 우-쉬프트 하여 정수 비트들과 분수 비트들을 포함하는 분수 중간 결과를 구하고, 상기 오퍼런드가 부호가 있으면 상기 우-쉬프터를 이용하여 상기 오퍼런드를 N 비트 위치만큼 산술적 우-쉬프트 하여 상기 분수 중간 결과를 구하는 단계와;N이 상기 우-쉬프터의 상기 최대 쉬프트 카운트 보다 큰 경우 상기 우-쉬프터를 이용하여 상기 오퍼런드를 상기 최대 쉬프트 카운트만큼 우-쉬프트 하여 상기 분수 중간 결과를 구하는 단계와;상기 분수 비트들 중 임의의 것이 '1'이고 상기 오퍼런드가 음인 동시에 비호가 있으면 상기 증분회로로서 상기 정수 비트들을 증분하여 증분된 정수 비트들을 상기 정수 결과로 제공하는 단계와;그렇지 않고, N이 상기 최대 쉬프트 카운트 이내인 경우 상기 증분회로로서 상기 정수 비트들을 상기 정수 결과로 제공하는 단계와;N이 상기 최대 쉬프트 카운트 보다 클 때 상기 증분회로로서 정수 결과를 제공하는 단계를 구비하는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법.
- 제 6 항에 있어서,상기 오퍼런드는 M 비트들로 구성되고, 상기 분수 중간 결과는 M의 정수 비트들과 M-1의 분수 비트들로 구성되며, N은 0에서 M-1의 범위에 있고, 상기 분수 비트들의 M-N-1 최하위 비트들은 '0'으로 패드 되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법.
- 제 6 항에 있어서,상기 오퍼런드는 M 비트들로 구성되고, 상기 최대 쉬프트 카운트가 M-1이며, N이 M보다 크거나 같을 때 상기 정수 결과는 '0'임을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법.
- 제 6 항에 있어서,상기 정수 결과는 2N으로 나누어진 상기 오퍼런드를 표형하는데 사용되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법.
- 제 6 항에 있어서,상기 단계들은 단일 명령 사이클에서 수행되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법.
- 멀티미디어 데이터 처리에 의해 디지털 영상 및 음성 데이터로서 제공되어지는 오퍼런드를 우-쉬프트 하여 정수 비트들과 분수 비트들을 포함하는 분수 중간 결과를 구하는 우-쉬프터와, 상기 오퍼런드의 범위를 검출하는 범위검출기와, 상기 분수 비트들의 상태에 따라 생성된 증분신호에 의거 정수 결과를 제공하는 증분회로를 구비하는 멀티미디어 프로세서에서 동화상 전문가 그룹 모션 프로세싱을 수행함에 있어 부호가 없는 정수 오퍼런드를 N(여기서, N은 정수)에 대응하여 우-쉬프트 하여 제로에서 멀어지게 라운드된 정수 결과를 구하는 회로의 동작방법에 있어서,상기 범위검출기를 통해 상기 오퍼런드의 범위를 검출하여 N이 최대 쉬프트 카운트 이내일 때 상기 우-쉬프터를 이용하여 상기 오퍼런드를 N 비트 위치만큼 논리적으로 우-쉬프트 하여 정수 비트들과 분수 비트들을 포함하는 분수 중간 결과를 구하는 단계와;N이 상기 최대 쉬프트 카운트 보다 클 때 상기 우-쉬프터를 이용하여 상기 오퍼런드를 상기 최대 쉬프트 카운트만큼 논리적으로 우-쉬프트 하여 상기 분수 중간 결과를 구하는 단계와;상기 분수 비트들의 최상위 비트가 '1'이면 상기 증분회로로서 상기 정수 비트들을 증분하여 증분된 정수 비트들을 상기 정수 결과로 제공하는 단계와;그렇지 않고, N이 상기 최대 쉬프트 카운트 이내인 경우 상기 증분회로로서 상기 정수 비트들을 상기 정수 결과로 제공하는 단계와;N이 상기 최대 쉬프트 카운트 보다 클 때 상기 증분회로로서 정수 결과를 제공하는 단계를 구비하는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법.
- 제 11 항에 있어서,상기 오퍼런드는 M 비트들로 구성되고, 상기 분수 중간 결과는 M의 정수 비트들과 M-1의 분수 비트들로 구성되며, N은 0에서 M-1의 범위에 있고, 상기 분수 비트들의 M-N-1 최하위 비트들은 '0'으로 패드 되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한방법.
- 제 11 항에 있어서,상기 오퍼런드는 M 비트들로 구성되고, 최대 쉬프트 카운트는 M-1이며,상기 N이 M보다 크거나 같으면 상기 우-쉬프터를 이용하여 상기 오퍼런드를 M-1 비트 위치만큼 논리적으로 우-쉬프트하여 정수 비트들과 분수 비트들을 포함하는 분수 중간 결과를 구하는 단계와,N이 M과 같으면 상기 정수 비트들을 상기 정수 결과로 제공하는 단계와,N이 M보다 크면 '0'을 상기 정수 결과로 제공하는 단계를 포함하는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법.
- 제 11 항에 있어서,상기 정수 결과는 2N으로 나누어진 상기 오퍼런드를 표현하는데 사용되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법.
- 제 11 항에 있어서,상기 단계들은 단일 명령 사이클에서 수행되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법.
- 멀티미디어 데이터 처리에 의해 디지털 영상 및 음성 데이터로서 제공되어지는 오퍼런드를 우-쉬프트 하여 정수 비트들과 분수 비트들을 포함하는 분수 중간 결과를 구하는 우-쉬프터와, 상기 오퍼런드의 범위를 검출하는 범위검출기와, 상기 분수 비트들의 상태에 따라 생성된 증분신호에 의거 정수 결과를 제공하는 증분회로를 구비하는 멀티미디어 프로세서에서 동화상 전문가 그룹 모션 프로세싱을 수행함에 있어 부호가 없는 정수 오퍼런드를 N(여기서, N은 정수)에 대응하여 우-쉬프트 하여 제로에서 멀어지게 라운드된 정수 결과를 구하는 회로의 동작방법에 있어서,상기 범위검출기를 통해 상기 오퍼런드의 범위를 검출하여 N이 최대 쉬프트 카운트 이내일 때 상기 우-쉬프터를 이용하여 상기 오퍼런드를 N 비트 위치만큼 산술적으로 우-쉬프트 하여 정수 비트들과 분수 비트들을 포함하는 분수 중간 결과를 구하는 단계와;N이 상기 최대 쉬프트 카운트 보다 클 때 상기 우-쉬프터를 이용하여 상기 오퍼런드를 상기 최대 쉬프트 카운트만큼 산술적으로 우-쉬프트 하여 상기 분수 중간 결과를 구하는 단계와;상기 분수 비트들의 최상위 비트가 '1'이고 상기 오퍼런드가 양이거나, 상기 분수 비트들의 최상위 비트가 '1'이고 상기 분수 비트들 중 임의의 다른 것이 '1'이며 상기 오퍼런드가 음이면 상기 증분회로로서 상기 정수 비트들을 증분하여 증분된 정수 비트들을 상기 정수 결과로 제공하는 단계와;그렇지 않고, N이 상기 최대 쉬프트 카운트 이내인 경우 상기 증분회로로서 상기 정수 비트들을 상기 정수 결과로 제공하는 단계와;N이 상기 최대 쉬프트 카운트 보다 클 때 상기 증분회로로서 정수 결과를 제공하는 단계를 구비하는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법.
- 제 16 항에 있어서,상기 오퍼런드는 M 비트들로 구성되고, 상기 분수 중간 결과는 M의 정수 비트들과 M-1의 분수 비트들로 구성되며, N은 0에서 M-1의 범위에 있고, 상기 분수 비트들의 M-N-1 최하위 비트들은 '0'으로 패드되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법.
- 제 16 항에 있어서,상기 오퍼런드는 M 비트들로 구성되고, 최대 쉬프트 카운트는 M-1이며,N이 M보다 크거나 같으면 상기 오퍼런드를 M-1 비트 위치만큼 산술적으로 우-쉬프트하여 정수 비트들과 분수 비트들을 포함하는 분수 중간 결과를 구하는 단계와,상기 분수 비트들이 모두 '0'이고 상기 오퍼런드가 음이고 N이 M과 같으면 상기 정수 비트들을 상기 정수 결과로 제공하는 단계와,상기 오퍼런드가 양이거나 상기 분수 비트들 중 임의의 것이 '1'이거나 N이 M보다 크면 '0'을 상기 정수 결과로 제공하는 단계를 포함하는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드 하기 위한 방법.
- 제 16 항에 있어서,상기 정수 결과는 2N으로 나누어진 상기 오퍼런드를 표현하는데 사용되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법.
- 제 16 항에 있어서,상기 단계들은 단일 명령 사이클에서 수행되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법.
- 멀티미디어 데이터 처리에 의해 디지털 영상 및 음성 데이터로서 제공되어지는 오퍼런드를 우-쉬프트 하여 정수 비트들과 분수 비트들을 포함하는 분수 중간 결과를 구하는 우-쉬프터와, 상기 분수 비트들의 상태에 따라 생성된 증분신호에 의거 정수 결과를 제공하는 증분회로를 적어도 구비하는 멀티미디어 프로세서에서 동화상 전문가 그룹 모션 프로세싱을 수행함에 있어 정수 오퍼런드를 N(여기서, N은 정수)에 대응하여 우-쉬프트 하여 제로에서 멀어지게 라운드된 정수 결과를 구하는 회로의 동작방법에 있어서,상기 오퍼런드가 부호가 있는지 없는지를 나타내는 단계와;N이 상기 우-쉬프터의 최대 쉬프트 카운트 M-1 이내인 경우 상기 오퍼런드가 부호가 없으면 상기 우-쉬프터를 이용하여 상기 오퍼런드를 N 비트 위치만큼 논리적 우-쉬프트 하여 정수 비트들과 분수 비트들을 포함하는 분수 중간 결과를 구하고, 상기 오퍼런드가 부호가 있으면 상기 우-쉬프터를 이용하여 상기 오퍼런드를 N 비트 위치만큼 산술적 우-쉬프트 하여 상기 분수 중간 결과를 구하는 단계와;상기 분수 비트들의 최상위 비트가 '1'이고 상기 오퍼런드가 부호가 없거나, 상기 분수 비트들의 최상위 비트가 '1'이고 상기 오퍼런드가 양이면서 부호가 있거나, 상기 분수 비트들의 최상위 비트가 '1'이고, 상기 분수 비트들 중 임의의 다른 것이 '1'이며 상기 오퍼런드가 음이면서 부호가 있으면 상기 증분회로로서 상기 정수 비트들을 증분하여 증분된 정수 비트들을 상기 정수 결과로 제공하는 단계와;그렇지 않고, N이 상기 최대 쉬프트 카운트 M-1 이내인 경우 상기 증분회로로서 상기 정수 비트들을 상기 정수 결과로 제공하는 단계와;N이 상기 최대 쉬프트 카운트 M-1 보다 클 때 상기 증분회로로서 정수 결과를 제공하는 단계와;N이 M보다 크거나 같을 경우 상기 오퍼런드가 부호가 없으면 상기 우-쉬프터를 이용하여 상기 오퍼런드를 M-1 비트 위치만큼 논리적 우-쉬프트 하여 정수 비트들과 분수 비트들을 포함하는 분수 중간 결과를 구하고, 상기 오퍼런드가 부호가 있으면 상기 우-쉬프터를 이용하여 상기 오퍼런드를 M-1 비트 위치만큼 산술적 우-쉬프트 하여 상기 분수 중간 결과를 구하는 단계와;상기 정수가 부호가 없고 N이 M일 때, 그리고 상기 분수 비트들이 모두 '0'이고 상기 오퍼런드가 음인 동시에 부호가 있고 N이 M일 때 상기 증분회로로서 상기 정수 비트들을 상기 정수 결과로 제공하는 단계와;상기 오퍼런드가 양인 동시에 부호가 있거나, 상기 분수 비트들 중 임의의 것이 '1'이고 상기 오퍼런드가 음인 동시에 부호가 있거나 N이 M보다 크면 '0'을 상기 정수 결과로 제공하는 단계를 구비하는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법.
- 제 21 항에 있어서,상기 오퍼런드는 M 비트들로 구성되고, 상기 분수 중간 결과는 M의 정수 비트들과 M-1의 분수 비트들로 구성되며, N은 0에서 M-1의 범위에 있고, 상기 분수 비트들의 M-N-1 최하위 비트들은 '0'으로 패드되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법.
- 제 21 항에 있어서,상기 정수 결과는 2N으로 나누어진 상기 오퍼런드를 표현하는데 사용되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법.
- 제 21 항에 있어서,상기 단계들은 단일 명령 사이클에서 수행되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법.
- 멀티미디어 프로세서에서 동화상 전문가 그룹 모션 프로세싱을 수행함에 있어 멀티미디어 데이터 처리에 의해 디지털 영상 및 음성 데이터로서 제공되어지는 정수 오퍼런드를 N(여기서, N은 정수)에 대응하여 우-쉬프트 하여 제로 쪽으로 라운드된 정수 결과를 구하기 위한 장치에 있어서,상기 오퍼런드가 부호가 없으면 상기 오퍼런드를 N(여기서, N은 정수) 비트 위치만큼 논리적 우-쉬프트하여 정수 비트들과 분수 비트들을 포함하는 분수 중간 결과를 구하고, 상기 오퍼런드가 부호가 있으면 상기 오퍼런드를 N 비트 위치만큼 산술적 우-쉬프트하여 상기 분수 중간 결과를 구하는 우-쉬프터와;상기 분수 비트들 중 임의의 것이 '1'이고 상기 오퍼런드가 음인 동시에 부호가 있으면 제 1 논리값을 갖는 증분 신호를 생성하고, 그렇지 않으면 제 2 논리값을 갖는 증분 신호를 생성하는 제어 회로와;상기 증분 신호가 제 1 논리값을 가지면 상기 정수 비트들을 증분하여 증분 된 정수 비트들을 상기 정수 결과로 제공하고, 상기 증분 신호가 제 2 논리값을 가지면 상기 정수 비트들을 상기 정수 결과로 제공하는 증분 회로를 구비하는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 장치.
- 제 25 항에 있어서,상기 오퍼런드는 M 비트들로 구성되고, 상기 분수 중간 결과는 M의 정수 비트들과 M-1의 분수 비트들로 구성되며, N은 0에서 M-1의 범위에 있고, 상기 분수 비트들의 M-N-1 최하위 비트들은 '0'으로 패드되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 장치.
- 제 25 항에 있어서,상기 오퍼런드는 M 비트들로 구성되고,상기 우-쉬프터와 상기 증분 회로는 N이 M보다 작으면 동작하며,상기 우-쉬프터는 N이 M보다 크거나 같으면 상기 오퍼런드를 M-1 비트 위치만큼 우-쉬프트하고,상기 증분회로는 N이 M보다 크거나 같으면 '0'을 상기 정수 결과로 제공하는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 장치.
- 제 25 항에 있어서,상기 정수 결과는 2N로 나눈 오퍼런드를 표현하는데 사용되는 것을 특징으로 하는 회로의 동작 방법.
- 제 25 항에 있어서,상기 오퍼런드는 우-쉬프트되고, 상기 정수 결과는 단일 명령 사이클에 제공되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 장치.
- 멀티미디어 프로세서에서 동화상 전문가 그룹 모션 프로세싱을 수행함에 있어 멀티미디어 데이터 처리에 의해 디지털 영상 및 음성 데이터로서 제공되어지는 정수 오퍼런드를 N(여기서, N은 정수)에 대응하여 우-쉬프트 하여 제로에서 멀어지게 라운드된 정수 결과를 구하기 위한 장치에 있어서,상기 오퍼런드가 부호가 없으면 상기 오퍼런드를 N(여기서, N은 정수) 비트 위치만큼 논리적으로 우-쉬프트하여 정수 비트들과 분수 비트들을 포함하는 분수 중간 결과를 구하고, 상기 오퍼런드가 부호가 있으면 상기 오퍼런드를 N 비트 위치만큼 산술적으로 우-쉬프트하여 상기 분수 중간 결과를 구하는 우-쉬프터와;(i) 상기 분수 비트들의 최상위 비트가 '1'이고 상기 오퍼런드가 부호가 없거나, (ii) 상기 분수 비트들의 최상위 비트가 '1'이고 상기 오퍼런드가 양인 동시에 부호가 있거나, (iii) 상기 분수 비트들의 최상위 비트가 '1'이고 상기 분수 비트들 중 임의의 다른 것이 '1'이고 상기 오퍼런드가 음인 동시에 부호가 있으면 제 1 논리값을 갖는 증분 신호를 생성하고, 그렇지 않으면 제 2 논리값을 갖는 증분 신호를 생성하는 제어회로와;상기 증분 신호가 제 1 논리값을 가지면 상기 정수 비트들을 증분하여 증분된 정수 비트들을 상기 정수 결과로 제공하고, 상기 증분 신호가 제 2 논리값을 가지면 상기 정수 비트들을 상기 정수 결과로 제공하는 증분 회로를 구비하는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 장치.
- 제 30 항에 있어서,상기 오퍼런드는 M비트들로 구성되고, 상기 분수 중간 결과는 M의 정수 비트들과 M-1의 분수 비트들로 구성되며, N은 0에서 M-1의 범위에 있고, 상기 분수 비트들의 M-N-1 최하위 비트들은 '0'으로 패드되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 장치.
- 제 30 항에 있어서,상기 오퍼런드는 M 비트들로 구성되고,상기 우-쉬프터와 상기 증분 회로는 N이 M보다 작을 때 동작하며,상기 우-쉬프터는 N이 M보다 크거나 같으면 상기 오퍼런드를 M-1비트 위치만큼 우-쉬프트하여 상기 정수 비트들과 상기 분수 비트들을 구하고,상기 증분 회로는 (i) 상기 정수가 부호가 없고 N이 M과 같거나 (ii) 상기 분수 비트들 모두가 '0'이고 상기 오퍼런드가 음인 동시에 부호가 있으며 N이 M과 같으면 상기 정수 비트들을 상기 정수 결과로 제공하고, (i) 상기 오퍼런드가 양인 동시에 부호가 있거나 (ii) 상기 분수 비트들 중 임의의 것이 '1'이고 상기 오퍼런드가 음인 동시에 부호가 있거나 (iii) N이 M보다 크면 '0'을 상기 정수 결과로 제공하는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 장치.
- 제 30 항에 있어서,상기 정수 결과는 2N으로 나누어진 상기 오퍼런드를 표현하는데 사용되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 장치.
- 제 30 항에 있어서,상기 오퍼런드는 우-쉬프트되고, 상기 정수 결과는 단일 명령 사이클에 제공되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 장치.
- 멀티미디어 프로세서에서 동화상 전문가 그룹 모션 프로세싱을 수행함에 있어 멀티미디어 데이터 처리에 의해 디지털 영상 및 음성 데이터로서 제공되어지는 오퍼런드를 N(여기서, N은 정수)에 대응하여 우-쉬프트 하여 라운드된 정수 결과를 구하기 위한 장치에 있어서,상기 오퍼런드를 N(여기서, N은 정수이고 최대 쉬프트 카운트 이내임) 비트 위치만큼 우-쉬프트하여 정수 비트들과 분수 비트들을 포함하는 분수 중간 결과를 구하고, 모드 신호가 상기 오퍼런드가 부호가 없다는 것을 나타내면 상기 오퍼런드를 논리적으로 우-쉬프트하고, 상기 모드 신호가 오퍼런드가 부호가 있다는 것을 나타내면 상기 오퍼런드를 산술적으로 우-쉬프트하는 우-쉬프터와;(i) 상기 분수 비트들 중 임의의 것이 '1'이고 상기 오퍼런드가 음이고 상기 모드 신호가 상기 오퍼런드가 부호가 있다는 것을 나타내며 라운드 신호가 제로쪽으로의 라운드가 선택되었음을 나타내거나, (ii) 상기 분수 비트들의 최상위 비트가 '1'이고 상기 모드 신호가 상기 오퍼런드가 부호가 없다는 것을 나타내며 상기 라운드 신호가 제로에서 멀어지는 라운드가 선택되었음을 나타내거나, (iii) 상기 준수 비트들의 최상위 비트가 '1'이고 상기 오퍼런드가 양이고 상기 모드 신호가 상기 오퍼런드가 부호가 있다는 것을 나타내며 상기 라운드 신호가 제로에서 멀어지는 라운드가 선택되었음을 나타내거나, (iv) 상기 분수 비트들의 최상위 비트가 '1'이고 상기 분수 비트들 중 임의의 다른 것이 '1'이고 상기 오퍼런드가 음이고 상기 모드 신호가 상기 오퍼런드가 부호가 있다는 것을 나타내며 상기 라운드 신호가 제로에서 멀어지는 라운드가 선택되었음을 나타내면 제 1 논리값을 갖는 증분신호를 생성하고, 그렇지 않으면 제 2 논리값을 갖는 증분 신호를 생성하는 제어회로와;상기 증분 신호가 제 1 논리값을 가지면 상기 정수 비트들을 증분하여 증분된 정수 비트들을 상기 정수 결과로 제공하고, 상기 증분 신호가 제 2 논리값을 가지면 상기 정수 비트들을 상기 정수 결과로 제공하는 증분 회로를 구비하는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 장치.
- 제 35 항에 있어서,상기 오퍼런드는 M 비트들로 구성되고, 상기 분수 중간 결과는 M의 정수 비트들과 M-1의 분수 비트들로 구성되며, N은 0에서 M-1의 범위에 있고, 상기 분수 비트들의 M-N-1 최하위 비트들은 '0'으로 패드되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 장치.
- 제 35 항에 있어서,상기 정수 결과는 2N으로 나누어진 상기 오퍼런드를 표현하는데 사용되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 장치.
- 제 35 항에 있어서,상기 증분 회로는 상기 정수 비트들에 결합된 제 1 오퍼런드 입력과 상기 증분 신호에 결합된 제 2 오퍼런드 입력을 가지는 가산기를 구비하며, 상기 제 1 논리값은 '1'이고, 상기 제 2 논리값은 '0'인 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 장치.
- 제 35 항에 있어서,상기 증분 회로는 증분기와 멀티플렉서를 구비하고,상기 정수 비트들은 상기 증분기와 상기 멀티플렉서의 제 1 오퍼런드 입력에 결합되고,상기 증분기는 상기 증분된 정수 비트들을 상기 멀티플렉서의 제 2 오퍼런드 입력에 제공하고,상기 증분 신호는 상기 멀티플렉서의 선택 입력에 결합되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 장치.
- 제 35 항에 있어서,상기 증분 회로는 상기 정수 비트들이 인가되는 제 1 오퍼런드 입력과, '0'이 인가되는 제 2 오퍼런드 입력과, 상기 정수 비트들을 제공하는 합계 출력과, 상기 증분된 정수 비트들을 제공하는 합계-플러스-1 출력을 가진 합계 및 합계-플러스-1 가산기와;상기 합계 출력에 결합된 제 1 오퍼런드 입력과, 상기 합계-플러스-1 출력에 결합된 제 2 오퍼런드 입력과, 상기 증분 신호가 인가되는 선택 입력을 가진 멀티플렉서를 구비하는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 장치.
- 제 35 항에 있어서,상기 합계 및 합계-플러스-1 가산기는 상기 합계 출력을 제공하는 제 1 합계 생성기에 결합된 제 1 캐리 체인에 결합된 전파-생성부를 구비하고, 상기 전파-생성부는 상기 합계-플러스-1 출력을 제공하는 제 2 합계 생성부에 결합된 제 2 캐리 체인에 결합되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 장치.
- 제 35 항에 있어서,상기 제어 회로는 상기 모드 신호(MODE), 상기 라운드 신호(ROUND), 상기 오퍼런드의 최상위 비트(AMSB), 상기 분수 비트들의 최상위 비트(FMSB) 및 상기 분수 비트들의 나머지 비트들(FMSB-1...F0)에 결합된 입력들과, 상기 증분 신호(INC)를 상기 증분 회로에 결합시키는 제어 출력을 가지는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 장치.
- 제 35 항에 있어서,상기 오퍼런드는 우-쉬프트되고, 상기 정수 결과는 단일 명령 사이클에 제공 되는 것을 특징으로 하는 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8/731,652 | 1996-10-17 | ||
US08/731,652 US5930159A (en) | 1996-10-17 | 1996-10-17 | Right-shifting an integer operand and rounding a fractional intermediate result to obtain a rounded integer result |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980032104A KR19980032104A (ko) | 1998-07-25 |
KR100260494B1 true KR100260494B1 (ko) | 2000-07-01 |
Family
ID=24940419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970016969A KR100260494B1 (ko) | 1996-10-17 | 1997-05-02 | 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5930159A (ko) |
KR (1) | KR100260494B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8661229B2 (en) | 2005-02-03 | 2014-02-25 | Qualcomm Incorporated | Power efficient instruction prefetch mechanism |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289322B1 (en) * | 1998-03-03 | 2001-09-11 | Checkfree Corporation | Electronic bill processing |
US6334183B1 (en) * | 1997-11-18 | 2001-12-25 | Intrinsity, Inc. | Method and apparatus for handling partial register accesses |
US6242922B1 (en) * | 1998-11-06 | 2001-06-05 | General Electric Company | Arc detection architecture based on correlation for circuit breakers |
WO2001042907A2 (en) | 1999-12-10 | 2001-06-14 | Broadcom Corporation | Apparatus and method for reducing precision of data |
US6728856B2 (en) | 2001-06-01 | 2004-04-27 | Microchip Technology Incorporated | Modified Harvard architecture processor having program memory space mapped to data memory space |
US6552625B2 (en) | 2001-06-01 | 2003-04-22 | Microchip Technology Inc. | Processor with pulse width modulation generator with fault input prioritization |
US7003543B2 (en) * | 2001-06-01 | 2006-02-21 | Microchip Technology Incorporated | Sticky z bit |
US20020184566A1 (en) | 2001-06-01 | 2002-12-05 | Michael Catherwood | Register pointer trap |
US6601160B2 (en) | 2001-06-01 | 2003-07-29 | Microchip Technology Incorporated | Dynamically reconfigurable data space |
US6604169B2 (en) | 2001-06-01 | 2003-08-05 | Microchip Technology Incorporated | Modulo addressing based on absolute offset |
US6552567B1 (en) | 2001-09-28 | 2003-04-22 | Microchip Technology Incorporated | Functional pathway configuration at a system/IC interface |
US20040021483A1 (en) * | 2001-09-28 | 2004-02-05 | Brian Boles | Functional pathway configuration at a system/IC interface |
US7904340B2 (en) * | 2003-03-24 | 2011-03-08 | Siebel Systems, Inc. | Methods and computer-readable medium for defining a product model |
AT413895B (de) * | 2003-09-08 | 2006-07-15 | On Demand Informationstechnolo | Digitale signalverarbeitungseinrichtung |
US7689640B2 (en) * | 2005-06-06 | 2010-03-30 | Atmel Corporation | Method and apparatus for formatting numbers in microprocessors |
US7949701B2 (en) * | 2006-08-02 | 2011-05-24 | Qualcomm Incorporated | Method and system to perform shifting and rounding operations within a microprocessor |
US9904511B2 (en) * | 2014-11-14 | 2018-02-27 | Cavium, Inc. | High performance shifter circuit |
Family Cites Families (12)
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 |
US4589084A (en) * | 1983-05-16 | 1986-05-13 | Rca Corporation | Apparatus for symmetrically truncating two's complement binary signals as for use with interleaved quadrature signals |
JPH0776911B2 (ja) * | 1988-03-23 | 1995-08-16 | 松下電器産業株式会社 | 浮動小数点演算装置 |
US4931970A (en) * | 1989-01-13 | 1990-06-05 | International Business Machines Corporation | Apparatus for determining if there is a loss of data during a shift operation |
US5198993A (en) * | 1989-12-04 | 1993-03-30 | Matsushita Electric Industrial Co., Ltd. | Arithmetic device having a plurality of partitioned adders |
JP3199371B2 (ja) * | 1990-07-30 | 2001-08-20 | 松下電器産業株式会社 | 丸め装置 |
US5214598A (en) * | 1990-11-09 | 1993-05-25 | Adaptive Solutions, Inc. | Unbiased bit disposal apparatus and method |
ATE180907T1 (de) * | 1991-10-29 | 1999-06-15 | Advanced Micro Devices Inc | Arithmetik-logik-einheit |
US5440702A (en) * | 1992-10-16 | 1995-08-08 | Delco Electronics Corporation | Data processing system with condition code architecture for executing single instruction range checking and limiting operations |
TW224553B (en) * | 1993-03-01 | 1994-06-01 | Sony Co Ltd | Method and apparatus for inverse discrete consine transform and coding/decoding of moving picture |
US5428567A (en) * | 1994-05-09 | 1995-06-27 | International Business Machines Corporation | Memory structure to minimize rounding/trunction errors for n-dimensional image transformation |
US5555202A (en) * | 1994-12-05 | 1996-09-10 | Cirrus Logic, Inc. | Low-power, high-performance barrel shifter |
-
1996
- 1996-10-17 US US08/731,652 patent/US5930159A/en not_active Expired - Lifetime
-
1997
- 1997-05-02 KR KR1019970016969A patent/KR100260494B1/ko not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8661229B2 (en) | 2005-02-03 | 2014-02-25 | Qualcomm Incorporated | Power efficient instruction prefetch mechanism |
Also Published As
Publication number | Publication date |
---|---|
KR19980032104A (ko) | 1998-07-25 |
US5930159A (en) | 1999-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100260494B1 (ko) | 정수 결과를 구하기 위해 정수 오퍼런드를 우-쉬프트하고 분수 중간 결과를 라운드하기 위한 방법 및 장치 | |
JP5273866B2 (ja) | 乗算器/アキュムレータ・ユニット | |
US4758972A (en) | Precision rounding in a floating point arithmetic unit | |
EP0657804B1 (en) | Overflow control for arithmetic operations | |
US7668892B2 (en) | Data processing apparatus and method for normalizing a data value | |
US6175851B1 (en) | Fast adder/subtractor for signed floating point numbers | |
US5844827A (en) | Arithmetic shifter that performs multiply/divide by two to the nth power for positive and negative N | |
JPH05224883A (ja) | 浮動小数点n−ビット符号付大きさの2進数を固定小数点m−ビット2の補数表示の2進数に変換するためのシステム | |
KR100241072B1 (ko) | 부동소수점 감산시 대량소거의 병렬예측 및 연산방법과 장치 | |
JP2789577B2 (ja) | 加算オーバフロ検出回路 | |
US11119731B2 (en) | Apparatus and method for rounding | |
US5745393A (en) | Left-shifting an integer operand and providing a clamped integer result | |
US5917739A (en) | Calculating the average of four integer numbers rounded towards zero in a single instruction cycle | |
US5710732A (en) | Calculating the average of four integer numbers rounded away from zero in a single instruction cycle | |
US6007232A (en) | Calculating the average of two integer numbers rounded towards zero in a single instruction cycle | |
KR100241077B1 (ko) | 단일명령사이클내의 선택된 sin 3식을 연산하기 위한 방법 | |
KR100264957B1 (ko) | 하나의 명령주기내에서 0으로부터 반올림된 두정수의 평균을 계산하는 방법 및 장치 | |
KR100567643B1 (ko) | 제로 판정 신호 생성 회로 | |
US5850347A (en) | Calculating 2A+ sign(A) in a single instruction cycle | |
KR100241066B1 (ko) | 단일명령사이클에서의 A+sin(A)식의 연산 | |
KR100241074B1 (ko) | 단일명령사이클에서의 A-sin(A)식의 연산 | |
US5831887A (en) | Calculating 2A-sign(A) in a single instruction cycle | |
KR100265358B1 (ko) | 고속의쉬프팅장치 | |
CN117667011A (zh) | 一种数字信号处理模块中的后加器 | |
JPH0793131A (ja) | ビットリバース演算回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
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: 20120330 Year of fee payment: 13 |
|
FPAY | Annual fee payment |
Payment date: 20130329 Year of fee payment: 14 |
|
LAPS | Lapse due to unpaid annual fee |