KR20040063143A - 오퍼랜드 가산 방법 및 회로 장치 및 컴퓨터 구현형 장치 - Google Patents

오퍼랜드 가산 방법 및 회로 장치 및 컴퓨터 구현형 장치 Download PDF

Info

Publication number
KR20040063143A
KR20040063143A KR10-2004-7007019A KR20047007019A KR20040063143A KR 20040063143 A KR20040063143 A KR 20040063143A KR 20047007019 A KR20047007019 A KR 20047007019A KR 20040063143 A KR20040063143 A KR 20040063143A
Authority
KR
South Korea
Prior art keywords
operand
significant bit
binary
bit
adder
Prior art date
Application number
KR10-2004-7007019A
Other languages
English (en)
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 KR20040063143A publication Critical patent/KR20040063143A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/506Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
    • G06F7/507Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages using selection between two conditionally calculated carry or sum values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/3816Accepting numbers of variable word length

Abstract

본 발명은 상대적으로 작은 시간에 상대적으로 큰 이진수를 증가된 처리량으로 처리할 수 있는 산술 계산 회로를 제공한다. 일 실시예에서, N 비트의 제 1 이진 오퍼랜드 및 M 비트의 제 2 이진 오퍼랜드를 가산하는 산술 계산 회로(여기서, N은 M보다 크거나 같음)는 가산기 및 멀티플렉서 회로를 포함한다. 가산기는 제 1 이진 오퍼랜드 및 제 2 이진 오퍼랜드의 최하위 비트를 나타내는 세트를 함께 가산하여 최하위 비트 부분 합 및 캐리아웃(carryout)을 생성한다. 멀티플렉서 회로는 제 1 이진 오퍼랜드의 최상위 비트를 나타내는 세트 또는 제 1 이진 오퍼랜드의 최상위 비트를 나타내는 세트의 오프셋 중 하나를 전송함으로써 최상위 비트 부분 합을 출력하며, 이 멀티플렉서 회로의 입력의 선택은 선택 데이터에 응답하는데 이 선택 데이터는 제 1 이진 오퍼랜드의 최하위 비트를 나타내는 세트의 최상위 비트의 함수이다.

Description

오퍼랜드 가산 방법 및 회로 장치 및 컴퓨터 구현형 장치{HIGH-SPEED COMPUTATION IN ARITHMETIC LOGIC CIRCUIT}
산술 로직 데이터 처리 회로는 광범위한 애플리케이션을 위해서 설계되었으며 실제로 모든 산업에서 사용되어 왔다. 무엇보다도, 이 애플리케이션은 프로그램된 컴퓨터 장치, 개별 로직 회로 및 반프로그램가능한 로직 구성 요소(semi-programmable logic component)를 사용하여 구현되는 애플리케이션을 포함한다. 다양한 이유로 인해서, 이들 애플리케이션 중 수 많은 것들이 비디오 데이터를 처리하는 것과 관련되어 있으며 최소의 시간으로 특정의 처리 동작을 완료하는 것을 요구하고 있다. 몇몇 애플리케이션은 상대적으로 간단한 산술 계산을 위해서 통상적으로 할당되는 것과 동일한 최소의 시간 프레임으로 복잡한 산술 계산을 수행할 수 있는 고속 계산 엔진을 필요로 한다.
비디오 데이터 처리는 상대적으로 복잡한 계산을 요구하는 수 많은 애플리케이션 중 한 실례이다. 이들 비디오 데이터 처리 애플리케이션 중 수 많은 것들이 계속적으로 증가하는 속도로 계속적으로 복잡해지는 수학 기능을 수행할 수 있는 신호 처리 회로를 요구하고 있다. 불행하게도, 시간 소비형 데이터경로 산술 계산을 필요로 하는 보다 복잡한 수학 연산을 따라서 디지털 데이터를 처리하면서 높은 데이터 처리 속도를 성취하는 것은 서로 상충되는 사항이다.
다양한 비디오 데이터 필터가 비디오 데이터를 실시간으로 압축 및 해제하는 것과 같은 특정화된 비디오 신호 처리 기술에서 사용되고 있다. "다상(polyphase)" 필터로서 알려진 타입의 특정화된 비디오 데이터 필터는 몇몇 애플리케이션에서 유용하다. 비디오 처리 애플리케이션에서, 다상 필터는 때때로 디스플레이를 리프레시(refresh)하는 데 사용되는 수평 라인과 수직 라인을 표현하기 위해 저장된 데이터를 조작함으로써 픽셀의 크기를 재조절하는 데 사용된다. 이러한 애플리케이션에서, 출력 픽셀의 수 및 입력 픽셀의 수의 비율은 줌 계수(zoom-factor)로서 규정되며, 범용 필터링의 경우에, 출력 픽셀의 수는 입력 픽셀의 수와 동일하다. 이러한 크기 재조절 동작은 또한 줌 계수가 1 보다 클 때 확대 또는 업 샘플링으로서 알려져 있으며 이와 다른 상황에서는 크기 재조절 동작은 압축 또는 다운 샘플링으로서 알려져 있다. 통상적으로, 고정된 줌을 제공하기 위해서 화상의 크기를 재조절(스케일링 업 또는 다운)하는 경우에, 다상 필터는 처리되고 있는 픽셀의 위치 또는 위상의 함수로 규정되는 자신의 계수로 구현된다.
높은 정확도의 비디오 애플리케이션에서 크기 재조절을 위해서, 다상 필터링은 상기 정확도를 성취하는 데 요구되는 수학 동작을 수용하는 보다 고유한 아키텍쳐로 구현된다. 통상적으로, 이러한 다상 필터링 타입은 "다상 트랜스포즈된(polyphase-transposed)" 필터링으로서 지칭되는 형태로 구현된다. 보다 통상적인 비디오 애플리케이션에서, 다상 필터링은 FIR(finite-impulse-response) 필터링과 같은 범용 필터링에서 보다 통상적인 계산 아키텍쳐를 사용하는 다상 직접 필터(polyphase direct filter)로서 구현된다. 그러나, 요구된 속도로 데이터경로 산술 계산을 처리하는 주문형 로직 회로를 사용하는 방식은 구현 및 입증에 있어서 시간이 많이 소모되어 비용이 들게 된다. 이러한 기능을 제공하는 데 사용되는 집적 회로를 설계, 제조 및 유지하는 데 있어서 상당한 비용이 든다. 통상적인 또는 라이브러리 로직 회로를 사용하는 것은 구현 및 입증에 있어서 용이하기 때문에 비용이 덜 들지만 용이한 "오프 더 셀프(off-the-shelf)" 동작에서 사용될 때에 필요한 동작 속도를 성취하지 못한다.
데이터 처리 필터와 연관되어 요구된 수학은 통상적으로 일련의 기본 산술 연산을 통해서 성취된다. 이러한 일련의 계산은 비디오 디스플레이의 각 픽셀에 대해서 반복된다. 계산형 데이터경로 설계에서 파이프라인 스테이지(a pipeline stage)의 길이는 통상적으로 목표 클록 싸이클 내에서 성취될 수 있는 산술 연산의 최대 개수에 의해서 결정되며, 상기 목표 클록 싸이클은 비디오 디스플레이를 지원하기 위해 실제 시간 단위 당 처리되어야 하는 픽셀의 개수로부터 결정된다. 보다 높은 차수의 수학적 연산을 구현하는 기본적으로 반복되는 기본 산술 계산에서의 효율성은 반복을 통해서 상당한 전체적인 처리 성능 개선을 형성한다.
따라서, 데이터 처리량을 증가시키고 목표 클록 싸이클 내에서 데이터경로 계산을 완료할 수 있는 통상적인 또는 라이브러리 기능성 블록을 사용하여 비디오 처리 필터 아키텍쳐를 개발할 필요가 있다.
발명의 개요
본 발명의 목적은 상술된 문제를 처리할 수 있으며 산술 계산을 구현하기 위해 필요한 시간을 감소시키는 데이터 처리 회로를 제공하는 것이다. 본 발명은 다수의 구현 및 애플리케이션으로 예시되며 이들은 이하에서 요약된다.
일 예시적인 실시예에서, 본 발명은 일련의 하위 산술 연산 및 로직 연산으로서 기본적인 산술 연산(가령, 가산 및/또는 감산)을 구현하는 산술 연산형 회로를 제공한다.
본 발명은 여러 가지 상이한 타입의 필터링 애플리케이션에서 사용될 수 있으며 비디오 필터링 애플리케이션 및 상대적으로 신속한 시간에 상대적으로 큰 이진수를 감산 및 가산할 수 있는 데이터 처리 회로로부터 이점을 취할 수 있는 다른 애플리케이션에서 특히 유용하다.
본 발명의 하나의 예시적인 일반적인 회로 장치에서, 이진수 산술 연산은 각 이진수의 부분에 대한 산술 연산과 입력된 이진수의 다른 부분을 포함하는 논리 연산의 결합으로써 구현된다. 이 회로 장치는 N 비트의 제 1 이진 오퍼랜드 및 M 비트의 제 2 이진 오퍼랜드를 가산하며 여기서 N은 M보다 크거나 같다. 이 회로 장치는 멀티플렉서 회로에 결합된 가산기를 포함한다. 제 1 이진 오퍼랜드 및 제2 이진 오퍼랜드의 최하위 비트를 나타내는 세트가 함께 가산되어 최하위 비트 부분 합 및 캐리아웃(carryout)을 생성한다. 4-1 디멀티플렉서 회로 또는 다른 유사하게 기능하는 데이터 전송 회로와 같은 로직 회로는 제 1 이진 오퍼랜드의 최상위 비트를 나타내는 세트 또는 제 1 이진 오퍼랜드의 최상위 비트를 나타내는 세트의 오프셋 중 하나를 전송함으로써 최상위 비트 부분 합을 그의 출력으로서 생성한다. 이 데이터 전송 회로는 선택 데이터에 응답하는데 이 선택 데이터는 제 1 이진 오퍼랜드의 최하위 비트를 나타내는 세트의 최상위 비트의 함수이다.
하나 이상의 특정한 예시적인 실시예에서, 상기 회로 장치는 M 비트 가산기를 포함하며 멀티플렉서 회로는 M 비트 가산기 캐리아웃 및 제 1 오퍼랜드의 M 번째 비트에 응답하여 N - M 최상위 비트 부분 합을 선택한다.
다른 특정한 예시적인 실시예에서, 각 오퍼랜드는 그의 각각의 최상위 비트로서 부호 비트(sign bit)를 포함하며 멀티플렉서 회로는 제 1 오퍼랜드의 N - M 최상위 비트, 1 만큼 증분된 제 1 오퍼랜드의 N - M 최상위 비트 또는 1 만큼 감분된 제 1 오퍼랜드의 N - M 최상위 비트 중 하나를 선택한다.
다른 특정한 예시적인 실시예에서, 오퍼랜드는 부호화되지 않으며 즉 N-M = 1이며, 멀티플렉서 회로는 XOR 로직을 구현한다.
다른 특정 실시예에서, 상술된 방식들은 스케일링 및 다상 필터링과 같은 다양한 필터링 애플리케이션을 위해서 픽셀 데이터 디지털 필터의 일부로서 구현될 수 있다.
다른 측면 및 장점은 본 발명의 특정 예시적인 실시예와 연관된다.
본 발명의 개요는 본 발명의 각 설명된 실시예 또는 모든 구현을 기술하는 것은 아니다. 다음의 도면 및 발명의 상세한 설명 부분이 상기 실시예들을 보다 구체적으로 예시한다.
본 발명은 본 발명의 다양한 실시예에 대한 다음의 상세한 설명을 참조하면 보다 완벽하게 이해될 것이며 이들 실시예들은 다음의 첨부 도면과 연관된다.
본 발명은 디지털 데이터 처리 분야에 관한 것이며, 특히 시간 감지 디지털 처리 애플리케이션에서의 복잡한 데이터경로 산술 계산을 위한 처리 시간을 감소시키는 방법에 관한 것이다.
도 1은 본 발명에 따른 예시적인 데이터 처리 회로의 블록도,
도 2는 본 발명에 따른 재구성가능한 디지털 필터를 위한 예시적인 기능성 데이터경로 유닛의 일반적인 블록도,
도 3은 본 발명에 따른 파노라마 모드(a panoramic mode)로 동작하는 다상 직접형 필터의 줌 계산(a zoom computation)을 위한 데이터경로를 통한 예시적인 데이터 조작 흐름도,
도 4는 본 발명에 따른 디지털 필터 내부에서 24 비트 가산을 가속화하는 선택 로직의 블록도,
도 5a는 본 발명에 따른 디지털 필터 내부에서 25 비트 가산을 가속화하는 선택 로직의 블록도,
도 5b는 본 발명에 따른 디지털 필터의 25 비트 가산에서 중간의 캐리아웃을 결정하는 선택 로직의 블록도,
도 5c는 본 발명에 따른 디지털 필터 내부에서 4 비트 가산을 가속화하는 선택 로직의 블록도.
본 발명은 다양한 수정 및 변경으로 보정가능하며, 본 발명의 특정 실시예가 도면에서 예시적으로 도시되며 이제 상세하게 설명될 것이다. 그러나, 본 발명은 이러한 특정 실시예로만 한정되는 것이 아니다. 이와 반대로, 첨부된 청구 범위에 의해 규정된 본 발명의 사상 및 범위 내에서 다양한 수정 및 변경이 가능하다.
본 발명은 여러 가지 상이한 타입의 필터링 애플리케이션에서 사용될 수 있으며 비디오 필터링 애플리케이션 및 상대적으로 신속한 시간에 상대적으로 큰 이진수를 감산 및 가산할 수 있는 데이터 처리 회로로부터 이점을 취할 수 있는 다른 애플리케이션에서 특히 유용하다. 본 발명의 다양한 측면이 이들 애플리케이션을 사용하는 실시예들의 상세한 설명을 통해서 이해될 것이다.
긴 이진수와 연관된 산술 연산은 결과를 생성하기 위해서 다수의 클록 싸이클을 필요로 한다. 본 발명의 한 예시적인 회로 장치에서, 이진수 산술 연산은 각 이진수의 부분에 대한 산술 연산과 입력된 이진수의 다른 부분을 포함하는 논리 연산의 결합으로써 구현된다. 이러한 산술 연산을 수행하기 위해서 필요한 시간을 줄임으로써, 가령 다수의 클록 싸이클에서 하나의 클록 싸이클로 줄임으로써, 데이터 처리량이 크게 증가된다. 이와 달리, 처리량을 희생시키지 않으면서 계산량이 단위 클록 주기 당 증가된다.
본 발명의 제 1 실시예에서, 회로 장치는 N 비트의 제 1 이진 오퍼랜드와 M비트의 제 2 이진 오퍼랜드를 가산하는데 여기서 N은 M보다 크거가 같다. 이 회로 장치는 멀티플렉서 회로에 접속된 가산기를 포함한다. 제 1 이진 오퍼랜드 및 제 2 이진 오퍼랜드의 최하위 비트를 나타내는 세트가 함께 가산되어 최하위 비트 부분 합 및 캐리아웃을 생성한다. 4-1 디멀티플렉서 회로 또는 다른 유사하게 기능하는 데이터 전송 회로와 같은 로직 회로는 제 1 이진 오퍼랜드의 최상위 비트를 나타내는 세트 또는 제 1 이진 오퍼랜드의 최상위 비트를 나타내는 세트의 오프셋 중 하나를 전송함으로써 최상위 비트 부분 합을 그의 출력으로서 생성한다. 이 데이터 전송 회로는 선택 데이터에 응답하는데 이 선택 데이터는 제 1 이진 오퍼랜드의 최하위 비트를 나타내는 세트의 최상위 비트의 함수이다. 상기 회로 장치는 M 비트 가산기를 포함하며 멀티플렉서 회로는 M 비트 가산기 캐리아웃 및 제 1 오퍼랜드의 M 번째 비트에 응답하여 N - M (N 마이너스 M) 최상위 비트 부분 합을 선택한다.
본 발명의 다른 측면은 상술된 측면의 변형을 포함한다. 이 측면에서, 각 오퍼랜드는 그의 각각의 최상위 비트로서 부호 비트를 포함하며 멀티플렉서 회로는 제 1 오퍼랜드의 N - M 최상위 비트, 1 만큼 증분된 제 1 오퍼랜드의 N - M 최상위 비트 또는 1 만큼 감분된 제 1 오퍼랜드의 N - M 최상위 비트 중 어느 하나를 선택한다. 다른 측면에서, 오퍼랜드는 부호화되지 않는데 즉 N - M = 1이며 멀티플렉서 회로는 XOR 게이트와 같은 로직 회로를 사용하여 구현된다.
본 발명의 다른 중요한 측면 및 애플리케이션이 디지털 필터링 회로(100)에 의해서 도 1에 설명되어 있다. 데이터경로 유닛(102)은 결합형 로직회로(110a,110b)의 파이프라인된 캐스캐이드이며 가산, 감산, 승산과 같은 산술 연산 및/또는 AND, OR, NOT, MULTIPLEX, SHIFT와 같은 논리적 연산을 포함한다. 각 결합형 로직 유닛 이후에, 파이프라인된 레지스터(112a,112b)가 이전에 실행한 결합형 로직 유닛의 결과를 다음의 결합형 로직 회로에 제공한다. 데이터경로(102)는 제어/모드 프로세서(120)에 의해서 제어되는데 여기서 데이터는 메모리(130)를 통해 제공되어 파이프라인된 데이터경로 유닛(102)에 의해서 처리되어 전송된다. 동작 속도는 무엇보다도 가령 클록 싸이클 시간에 의존하며 이 클록 싸이클 시간은 임의의 두 개의 파이프라인 스테이지들 간의 로직의 양(amount of logic)에 의존한다. 파이프라인 레지스터들 간의 로직의 양이 적을 수록 클록 속도는 더 신속해지며 이로써 처리량이 증가된다. 그러나, 로직을 너무 얇게 분포시키게 되면 다수의 파이프 스테이지가 필요하며 이로써 초기 레이턴시가 매우 길어질 것이다.
한 특정 예시적인 애플리케이션인 도 2는 파노마라 이미지 줌(panoramic image zoom) 기능을 구현할 시에 복잡한 수학적 스케일링 계산을 수행하는 데 사용되는 미디어 프로세서를 위한 본 발명에 따른 수평 필터(200)를 설명한다. 줌 계수는 비디오 화상이 스케일링되고 있는 방식을 결정한다. 1 보다 작은 줌 값은 이미지 압축을 나타내며 1 보다 큰 줌 값은 이미지 확대를 나타낸다. 비디오 이미지를 다시 스케일링하기 위해서, 비디오 이미지의 출력 픽셀이 생성되어야 하는지의 여부를 정확한 시간에 결정하기 위해서는 알고리즘이 사용되며 여기서 출력 픽셀은 소정의 특성을 갖는다.
다상 직접 필터링 모드로 동작하는 비디오 필터(200)는 비디오 이미지의 압축 또는 확대를 위해서 사용된다. 압축 모드에서, 필터는 반복적인 클록 싸이클에 따라서 픽셀 입력 경로(210)로부터의 일련의 입력 픽셀 각각을 연속적으로 소비한다(가령, 시프트 인(shift-in)하고, 적합한 필터 평균화 계수(filter equation coefficient)로 승산하고 축적한다). 출력 픽셀의 생성은 특정 콘디션(condition)의 평가(evaluation)에 따라서 결정되며 이 콘디션은 기능성 유닛 데이터경로(220) 내에서 일련의 계산을 통해서 평가된다. 이 콘디션 평가는 필터링 모드 및 비디오 이미지가 확대되어야 하는지 압축되어야 하는지의 여부에 의존한다. 이 콘디션 평가로부터, 출력 픽셀은 픽셀 출력 경로(240)를 따라서 주기적으로 생성된다. 이 콘디션 평가는 각 클록 싸이클 마다 발생하며 클록 신호는 클록 경로(230)를 통해서 필터에서 수신된다. 스케일링 동작은 스케일링 파라미터에 의해서 규정되며 이 스케일링 파라미터에 의해 규정된 초기 스케일링 변수 설정 사항이 메모리(120)로부터 데이터 인터페이스(122)를 통해서 필터로 입력된다.
입력 픽셀 위치 포인터 "pos(n)"는 입력 픽셀 마다 1 회 갱신되어 입력 이미지에 대한 비디오 이미지 처리의 현재의 위치를 추적한다. 일 예시적인 구현에 따라서, 압축 동작 동안 pon(n)을 규정하는 식은 다음과 같다.
pos(0) = 0,
pos(n+1) = pos(n) + z(n+1) = z(1) + z(2) + ... + z(n+1),
여기서, z(n)은 픽셀 x(n)에서 줌 계수(zoom factor)이다. 현재의 픽셀의 위치는 현재의 줌 계수에 의해서 수정된 마지막 픽셀의 위치이다. 변수 pos(n)은출력 픽셀에 대한 x(n)의 픽셀 위치를 나타낸다. 픽셀 x(n)은 y(최하부(pos(n)))과 y(최상부(pos(n))) 간에 위치한다.
확대 모드에서, 필터는 자신이 소비한 픽셀보다 많은 출력 픽셀을 생성하지만 이 출력 픽셀의 생성은 상기와 마찬가지로 특정 콘디션 평가에 따라서 결정된다. 확대 모드에서, 픽셀 위치 포인터 pos(n)은 출력 픽셀 생성에 대한 비디오 이미지 처리의 현재의 위치를 추적한다. pos(n)을 규정하는 식은 다상 직접 필터의 경우에 소비된 입력 픽셀과 생성된 출력 픽셀 간의 관계를 결정하는데 있어서 인버스 줌(inverse zoom)을 사용한다. 포인터 변수 pos(n)은 다음과 같이 출력 픽셀 마다 1 회 갱신된다.
pos(0) = 0,
pos(n+1) = pos(n) + iz(n+1) = iz(1) + iz(2) + ... + iz(n+1),
여기서, iz(n)은 픽셀 y(n)에서 줌 계수(zoom factor)의 역수이다. 현재의 픽셀의 위치는 현재의 인버스 줌 계수에 의해서 수정된 마지막 픽셀의 위치이다. 변수 pos(n)은 출력 픽셀에 대한 y(n)의 픽셀 위치를 나타낸다. 픽셀 y(n)은 x(최하부(pos(n)))과 x(최상부(pos(n))) 간에 위치한다.
일정한 줌 기능을 구현하기 위해서, 줌 값은 일정하다. 가령, 균일한 압축은 일정한 z(n)을 통해서 구현되며 균일한 확대는 일정한 iz(n)에 의해서 성취된다. 줌 값 z(n) 및 iz(n)은 줌이 변수인 경우에는 일정하지 않는다. 오직 다상 직접 필터링 모드에서만 사용되는 파노라마 줌(panoramic zoom)은 연속적으로 변하는 iz(n)을 통해서 구현된다. 인버스 줌 값은 일 실시예에서 2 차항식에 따라서변하며 상기 2 차항식의 계수들은 제어 레지스터 내부로 프로그램된다.
출력 픽셀 생성을 결정하기 위해서 평가되는 콘디션은 함수 pos(n)으로부터 유도된다. 이 함수 pos(n)은 일 실시예에서 정수 부분과 분수 부분을 포함한다. 이 콘디션은 pos(n)의 정수 부분에 대한 변경과 연관된다.
줌 값에 의존하는 상술된 "콘디션(condition)"의 평가는 통상적으로 스케일링 필터 기능에 대해서 처리 속도를 떨어뜨리는 병목 지점이며 긴 비트 폭에 걸친 정확한 산술 연산은 pos(n) 및 궁극적으로는 상기 "콘디션"의 평가 시에 수행된다. 처리 작업 부하가 클수록 시간 소모가 커지며 이 경우에는 가령 파노라마 모드에서처럼 줌 값이 변하게 되는데 이는 줌 변수가 각 클록 싸이클에서 연속적으로 변하기 때문이다.
효율성 측면에서 각 클록 싸이클에서 상기 "콘디션"을 평가하는 것이 바람직하다. 다수의 클록 싸이클에 걸쳐서 특정하게 복잡한 "콘디션" 계산 또는 "콘디션" 평가를 포함하는 일련의 긴 계산을 연장시키는 것은 상기 콘디션 계산 시에는 어떠한 에러도 유발하지 않는다. 그러나, 이로써 다른 필터 하드웨어가 통상적으로 유휴 상태가 되는데 즉 상기 연장된 콘디션 평가 계산이 완료되기를 대기하면서 의미있는 동작을 수행하지 않게 된다. 각 픽셀에서의 이러한 지연은 픽셀 처리 속도를 크게 감소시키며 간접적으로는 실시간으로 보다 높은 픽셀 밀도를 지원하는 능력도 감소시킨다.
파노라마 모드로 동작하는 다상 직접 필터는 다음과 같이 규정된 입력 파라미터를 갖는다.
(a) HSRC_ZOOM은 줌 값의 역수, 즉 iz이다. HSRC_ZOOM은 16 비트 무부호형 입력 정량(16 bit unsigned input quantity)이며 최상위의 4 개의 비트는 정수 부분을 나타내며 최하위의 12 개의 비트는 분수 부분을 나타낸다. HSRC_ZOOM은 입력 이미지가 스케일링되는 방식을 결정하기 위해서 지정된다. 분수 부분을 나타내는 12 개의 비트 중 최상위 6 개의 비트는 위상을 결정하며 이로써 필터링 계수의 세트를 결정한다.
(b) HSRC_DZOOM은 부호형 16 비트 입력 값이며 파노라마 모드에서 줌이 연속적으로 변하는 방식을 기술하는 2 차항식의 일부이다.
(c) HSRC_DDZOOM은 무부호형 8 비트 입력 값이며 파노라마 모드에서 줌이 연속적으로 변하는 방식을 기술하는 2 차항식의 다른 일부이다.
상기 "콘디션"은 각 클록 싸이클에서 평가되며 상기 콘디션은 중간의 줌 변수 계산들의 캐스캐이드(cascade)로부터 유도된다. 중간의 줌 변수는 다음과 같이 상술된 입력 파라미터를 사용하여 스케일링 동작의 시작 시에 초기화된다.
zoom[23:0] ≤{8{0},HSRC_ZOOM[15:0]},
dzoom[15:0] ≤HSRC_DZOOM[15:0],
ddzoom[7:0] ≤HSRC_DDZOOM[7:0],
pos[24:0] ≤0.
여기서 사용된 표기법은 이진수 변수 명칭, 그 다음에 [] 안의 최상위 비트 위치 및 최하위 비트 위치가 오며 이 최상위 비트 위치와 최하위 비트 위치는 콜론 : 으로 분리된다. [N] 앞에 위치하는 이진수 명칭은 명칭된 이진 변수의 N 번째비트를 나타내는데 가령 dzoom[15]는 이진 변수 dzoom의 15 번째 비트를 나타낸다. 표기법 {x,y}는 제 1의 괄호안의 이진값 x와 제 2의 괄호 안의 값 y의 연결 연산(concatenation operation)을 나타낸다. 표기법 8{x}는 8 개의 x의 연결을 나타내는데 가령 8{0}은 이진수 00000000을 나타낸다. 변수 pos[x:y]는 정수 부분과 분수 부분을 갖는 픽셀 위치 카운터이며 비트[24:20]는 정수 부분이며 비트[19:0]는 분수 부분이다.
초기화 후 각 클록 싸이클에서 계산이 수행되어 상술된 변수들을 상기 "콘디션" 변수 sval[x:y]와 함께 갱신한다. 이 변수들은 다음과 같이 시간의 함수로서 표현된다.
dzoom[15:0](t) = dzoom[15:0](t-1) - {8{0},ddzoom[7:0]},
zoom[23:0](t) = zoom[23:0](t-1) + {8{dzoom[15]},dzoom[15:0]}(t),
pos[24:0](t) = pos[24:0](t-1) + {{0},zoom[23:0]}(t),
sval[4:0](t) = pos[24:20](t) - pos[24:20](t-1).
변수 pos[x:y]는 픽셀의 현재의 위치에서 위상을 추적한다. 다시 말하자면, pos[x:y]는 최상위 비트부터 최하위 비트까지 하나의 부호 비트, 4 개이 정수 표현 비트, 분수 부분을 나타내는 나머지 비트를 포함한다. pos[x:y]가 각 클록 싸이클 마다 평가되기 때문에 변수 sval[4:0]는 sval[4:0]의 값과 동일한 "콘디션"을 결정하며 상기 "콘디션"은 pos[x:y]의 정수 부분에 대해 변경된다. "콘디션"(sval[4:0]의 값)은 이어서 출력 픽셀이 소비된 입력 픽셀에 대해서 생성되는 시간을 결정한다.
상술한 4 개의 변수 계산은 필터링 동작에 통합되어 각 클록 싸이클 마다 완료된다. 또한, 상기 등식들은 클록 싸이클이 크지 않다면 단일 클록 싸이클로 완료될 다수의 산술 연산을 포함한다. 본 발명의 일 실시예에서, 회로 장치는 전체 계산 시간을 최소화하기 위해서 필터링 연산들의 상술된 세트를 위한 해결 시간을 감소시킨다.
상술된 시간 의존 변수 함수는 다음과 같이 시간 "t"에 대해서 표시될 수 있다.
등식 A : dzoomn[15:0] = dzoom[15:0] - {8{0},ddzoom[7:0]},
등식 B : zoomn[23:0] = zoom[23:0] + {8{dzoomn[15]},dzoomn[15:0]},
등식 C : posn[24:0] = pos[24:0] + {{0},zoomn[23:0]},
등식 D : sval[4:0] = posn[24:20] - pos[24:20].
여기서, 변수 명칭에 첨부된 "n"은 "새로운(new)" 변수 또는 현재의 클록 싸이클의 변수 값(즉, 시간 "t"에서의 변수 값)을 의미하며 "n"이 없는 변수는 이전의 클록 싸이클, 또는 마지막 클록 싸이클에 대해서 결정된 변수 값을 의미한다.
등식 A-D에 의해 표현된 비트 조작이 도 3에 도시된다. 등식 A의 경우, 시간 "t"에서 dzoom의 새로운 이진 값(dzoomn)(310)은 dzoom의 마지막 값(즉, 이전 클록 싸이클 또는 최종 클록 싸이클에서의 값)(312)에서 8 개의 상위 제로 비트(316)와 연결된 ddzoom 변수의 현재의 값(314)을 뺀 값과 동일하다. 등식 B의 경우, 시간 "t"에서 zoom의 새로운 이진 값(zoomn)(330)은 zoom의 마지막 값(즉, 이전 클록 싸이클 또는 최종 클록 싸이클에서의 값)(332)과 8 개의 상위비트(334)와 연결된 dzoom 변수의 현재의 값(310)을 더한 값과 동일하며, 여기서 상기 8 개의 상위 비트 각각은 새로운 dzoom 변수(즉, dzoomn의 비트 수 15 또는 dzoomn[15])의 최상위 비트와 동일한 값을 갖는다. 이로써, dzoomn은 8 개의 선행하는 1 또는 8 개의 선행하는 0과 연결된다. 등식 C의 경우에, 시간 t에서 위치 카운터 pos(즉, 위치 변수)의 새로운 이진값(350)은 위치의 최종 값(352)(즉, 이전의 클록 싸이클 또는 최종 클록 싸이클에서의 값)에서 제로의 최상위 비트(354)에 연결된 zoom 변수의 현재의 값(330)을 뺀 값과 동일하다. 마지막으로, 등식 D의 경우에, 시간 t에서의 "콘디션" 변수 sval의 새로운 이진 값(370)은 위치 변수의 현재의 값의 정수 부분(372)(즉, 이전의 클록 싸이클 또는 최종 클록 싸이클에서의 값)(비트 20 내지 24)에서 위치 변수의 정수 부분(비트 20 내지 24)의 마지막 값(374)을 뺀 값과 동일하다.
분명하게는, "콘디션" 변수 sval[4:0]의 평가는 일련의 캐스캐이딩된 이진 산술 계산들의 마지막 부분이다. 가령, 등식 B를 계산하기 위해서 24 비트 가산기를 사용하고 그 다음으로 등식 C를 계산하기 위해서 비표준형 25 비트 가산기를 사용하며 이어서 콘디션 값을 계산하기 위해서 4 비트 가산기를 사용함으로써 통상적인 이진 함수 연산자를 통해서 각 등식을 바로 계산하는 것은 시간의 차원에서 효율적이지 않다. 다수의 클록 싸이클 계산 또는 충분한 지속 기간을 갖는 단일 클록 싸이클이 필요하다.
본 발명의 일 측면에 따라서, 긴 이진 값들은 여러 부분으로 분할되며 이 부분들은 계산 속도를 증가시키도록 조작된다. 등식 A는 dzoom의 새로운 값(즉,dzoomn)을 계산하기 위해서 16 비트 이진 가산기를 사용하여 평가된다. 등식 B의 계산은 15 번째 비트에서 분할되며 이후에 연결되는 두 개의 부분으로 개별적으로 평가된다. 등식 B의 결과는 다음과 같이 상술된 개별적인 연산의 결과인 비트들의 연결으로서 등식 B1으로 표시된다.
등식 B1 : zoomn[23:0] = {zoomn[23:16],zoomn[15:0]}
위의 연결에서 각 부분은 개별적으로 평가되지만 zoomn[23:16]의 평가는 캐리아웃 C15를 고려해야 하며 이 캐리아웃은 zoomn[15:0]의 평가로부터 생성된 것이다. 도 3에서 참조 부호(366)로 표시된 캐리아웃 C15는 zoomn[15]의 값을 결정하여 생성된 캐리아웃이며 보다 완벽하게 말하자면 zoomn[15:0]의 값을 결정하여 생성된 캐리아웃이다. 캐리 아웃 C15는 일 실시예에서 zoom[15:0]의 입력 및 dzoom[15:0]의 입력을 갖는 16 비트 가산기(도시되지 않음)로부터 유도된다. 이렇게 가산기 캐리아웃을 사용하게 되면 본 발명의 속도가 증가되는데 그 이유는 가산기 캐리아웃이 가산기의 합이 안정화되고 이용가능하게 되기 이전의 몇 개의 게이트 지연에 있어서 (이하에서 기술될 로직 회로에서) 더 사용되도록 가용될 수 있기 때문이다. 이로써, 등식 B를 사용하면,
{C15,zoomn[15:0]} = zoom[15:0] + dzoomn[15:0] 이 성립된다.
여기서, 등식 A를 사용하여 zoomn[15:0]을 치환시키면,
{C15,zoomn[15:0]} = zoom[15:0] + (dzoom[15:0] - {8{0},ddzoom[7:0]})이 성립된다. 이 변수 ddzoom은 각 클록 싸이클마다 갱신되지 않으며 이로써 상수로 일정하게 유지되며 그 값은 그의 초기화 값과 동일하다. 이로써 상술된 식은 다음과 같이 등식 B2로서 표현될 수 있다.
{C15,zoomn[15:0]} = zoom[15:0] + dzoom[15:0] - {8{0},HSRC_DDZOOM}
등식 B를 사용하면, 등식 B1의 연결부의 제 1 부분은 다음과 같이 B3로서 표현될 수 있다.
zoomn[23:16] = zoom[23:16] + 8{dzoomn[15]} + C15,
여기서, 이진 표현법 "8{dzoomn[15]}"은 dzoomn[15]의 값에 의존하는 8 개의 1 또는 8 개의 0의 연결부이다. 이러한 특성은 이와 달리 등식 D1으로서 다음과 같이 표현될 수 있다.
8{dzoomn[15]} = dzoomn[15]?11111111:00000000 = dzoomn[15]?8'hff:8'b0,
여기서, "8'hff"는 "ff" 16 진법에 대한 8 개의 디지트 이진수이며 "8'b0"은 8 개의 디지트 이진 제로이다. 임의의 N 비트 수 A에 대해서,
D2 : A + 11111111 = A + 8'hff = A - 1,
D3 : A + 00000000 = A + 8'b0 = A 임을 알게 되고,
등식 D1 내지 D3을 사용하여 치환하면, 등식 B3은 다음과 같이 등식 B4로서 표현될 수 있다.
zoomn[23:16] = zoom[23:16] + (dzoomn[15]?8'hff:8'b0) + C15
= (dzoomn[15] ? zoom[23:16] : zoom[23:16] - 1) + C15
= dzoomn[15]?(C15?zoom[23:16] : zoom[23:16] - 1)
(C15?zoom[23:16] + 1 : zoom[23:16])
도 4는 위의 등식 B4를 구현하는 회로 장치(400)의 일 실례를 도시한다.새로운 "zoom" 변수의 상위 8 개 비트는 C15 및 dzoomn[15]에 대한 각각의 값에 의존하는, zoom[23:16], zoom[23:16] + 1 및 zoom[23:16] -1 중 하나가 되도록 선택된다. 각각의 가능한 선택은 "zoom" 값의 이전 값으로부터 유도된다. 도 3의 이전의 "zoom"은 도 4에서 참조 부호(332)로 표시된다. 이전의 "zoom" 변수의 상위 8 개의 비트(즉, zoom[23:16])(410)는 4x1 멀티플렉서(원 핫 코딩(one-hot coding)는 필수적인 것이 아니기 때문에 설명을 생략함)(mux)(420) 내부로 하나의 선택가능한 입력(412)으로서 제공된다. zoom[23:16]은 감분기(430) 및 증분기(440)에 제공되어 여기서 각기 zoom[23:16] - 1 및 zoom[23:16] + 1를 쉽고 신속하게 구현한다. 증분기(440)의 출력은 zoom[23:16] + 1이며 이는 멀티플렉서(420) 내부로 다른 선택가능한 입력(414)으로서 제공된다. 감분기(430)의 출력은 zoom[23:16] - 1이며 이는 멀티플렉서(420) 내부로 제 3의 선택가능한 입력(416)으로서 제공된다. 이러한 증분 및 감분 동작은 도시된 바와 같이 병렬로 시간 효율적으로 수행된다. 멀티플렉서(420)로의 제 4 입력(418)은 현재의 구현에서는 사용되지 않는다. 이미 이용가능한 현재의 dzoom의 16 개의 비트(즉, dzoomn[15])는 제 1 멀티플렉서 선택값(422)으로서 사용되며 캐리아웃 C15는 제 2 멀티플렉서 선택값(424)으로서 사용된다. 멀티플렉서(420)의 출력(426)은 zoom의 상위 8 개의 비트의 현재의 값(즉, zoomn[23:16])이다. 다음의 표는 회로 장치(400)에 대한 선택 로직을 도시한다.
위에서 개시된 본 발명의 예시적인 구현에서, 24 비트 이진 가산(등식 B)은 (a) 오퍼랜드 분할 단계, (b) 16 비트 가산기를 사용하여 각 가수(addend)의 보다 하위의 비트 부분을 가산하는 단계와, (c) 멀티플렉서 기반 선택의 선택 로직으로서 가산기 오퍼랜드들 중 하나의 최상위 비트와 함께 16 비트 가산기로부터의 캐리아웃(합이 안정화되기 이전에 가용함)을 사용하여 보다 긴 최초의 오퍼랜드의 상위의 비트 부분 또는 이의 오프셋(가령, 오퍼랜드들 중 하나가 1 인 경우에 그 부분에 대한 8 비트 가산/감산)을 선택하는 단계를 포함한다.
상술된 방법 및 회로 장치는 일반적으로 N 비트 이진 오퍼랜드와 M 비트 이진 오퍼랜드의 가산에 적용될 수 있으며 여기서 N은 M보다 크거나 같다. 각 오퍼랜드의 최상위 비트는 부호 비트이다. M 비트 이진 오퍼랜드의 길이는 확장된 오퍼랜드의 길이가 N 비트를 가질 때까지 최상위 (부호) 비트를 복제함으로써 확장될 수 있다. 오퍼랜드는 두 개의 부분, 즉 하위 M 개의 비트와 상위 N - M 개의 비트로 분할된다. M 비트 가산으로부터의 캐리아웃은 최초의 N 비트 오퍼랜드의 M 번째 비트와 함께 로직 회로(가령, 4x1 멀티플렉서)에 의해서 사용되어 최상위 N - M 개의 비트를 선택하는데 이 최상위 N - M 개의 비트는 다음 중 하나이다.
1. 최초의 N 비트 오퍼랜드의 N - M 개의 최상위 비트,
2. 최초의 N 비트 오퍼랜드 + 1 의 N - M 개의 최상위 비트,
3. 최초의 N 비트 오퍼랜드 - 1 의 N - M 개의 최상위 비트.
감분된 선택값 및 증분된 선택값은 N - M 비트 가산기/감산기를 통해서 유도되며 여기서 한 오퍼랜드는 최초의 N 비트 오퍼랜드의 N - M 최상위 비트이며 다른 오퍼랜드는 1이다. 로직 회로로부터 유도된 결과들은 최상위 비트로서 M 비트 가산의 결과들에 연결된다(concatenated).
본 발명의 다른 특정한 예시적인 실시예에서, 오퍼랜드들은 동일한 길이(N)를 가지지만 오퍼랜드들 중 적어도 하나는 그의 최상위 비트로서 다수의 동일 부호 확장 비트를 포함한다. 오퍼랜드 각각은 동일한 비트 위치에서 최상뷔 비트 부분과 최하위 비트 부분으로 분할되며 이로써 오퍼랜드들 중 하나의 오퍼랜드의 M 비트 최하위 비트 부분은 오직 상기 부호 확장 비트만을 포함하게 된다. 이후에, 상기 최하위 부분과 최상위 부분은 상술된 바와 같이 처리된다. 본 발명의 본 특정 실시예의 방법은 일반적으로 그의 최상위 비트 부분 전체가 모두 동일하도록 하나의 오퍼랜드가 분할될 수 있는 경우에 사용될 수 있다.
본 발명의 회로 장치의 다른 예시적인 실례에서, N 비트 이진 오퍼랜드와 M 비트 이진 오퍼랜드가 가산된다. 이 오퍼랜드들은 무부호형 이진수이다. 가수(addend)는 동일한 비트 위치에서 최상위 비트 부분과 최하위 비트 부분으로 분할된다. 최하위 비트 부분은 가산기를 사용하여 가산되어 최하부 비트 부분 합을 결정한다. 최상위 비트 부분은 최상위 비트 부분 합을 선택하는 로직 회로에의해서 처리되며 이러한 처리는 각 가수의 최상위 비트 부분을 합산하는 가산기를 사용하여 처리하는데 필요한 시간보다 적은 시간으로 수행된다. 본 발명의 일 실례에서, 로직 회로(가령, 멀티플렉서, XOR 게이트, 멀티플렉싱 회로 구현 XOR 로직)가 선택 데이터에 응답하여 최상위 비트 부분 합을 선택한다. 이 로직 회로는 다수의 사전 결정된 부분 합 중 하나를 선택하는데 상기 다수의 사전결정된 부분 합에 대한 각각의 가능한 선택은 가수들 중 한 적어도 하나의 알려진 특성, 가령 가수의 최상위 비트 부분들 중 적어도 하나가 모두 1이 되거나 모두 0이 되는 위치와 같은 특성으로부터 사전 결정되며, 이러한 가능한 선택들의 세트는 다른 가수의 다른 최상위 비트 부분의 함수로서 사전결정될 수 있다.
본 발명의 회로 장치의 다른 예시적인 실시예에서, N 비트 이진 오퍼랜드와 M 비트 이진 오퍼랜드가 가산되는데 여기서 N - M은 1이다. 이 오퍼랜드들은 무부호형 이진수이다. M 비트 이진 오퍼랜드의 길이는 제로 값의 최상위 비트를 가정하면서 확장된다. 오퍼랜드들은 하위 M 비트와 상위 N - M 비트로 분할된다. M 비트 가산기는 하위 비트 부분을 가산하는 데 사용된다. M 비트 가산으로부터의 캐리아웃은 최초의 N 비트 오퍼랜드의 M 번째 비트와 함께 로직 회로(XOR 게이트, XOR 기능을 구현하는 멀티플렉서)에 의해서 사용되어 N 비트 가산 결과 중 하나가 되는 최상위 비트를 선택한다.
본 발명의 회로 장치의 다른 예시적인 실시예에서, N 비트 이진 오퍼랜드와 M 비트 이진 오퍼랜드가 가산되는데 여기서 N - M은 1이다. 이 오퍼랜드들은 무부호형 이진수이다. M 비트 이진 오퍼랜드의 길이는 1 값의 최상위 비트를 가정하면서 확장된다. 오퍼랜드들은 하위 M 비트와 상위 N - M 비트로 분할된다. M 비트 가산기는 하위 비트 부분을 가산하는 데 사용된다. M 비트 가산으로부터의 반전된 캐리아웃(inverted carryout)은 최초의 N 비트 오퍼랜드의 M 번째 비트와 함께 로직 회로(XOR 게이트, XOR 기능을 구현하는 멀티플렉서)에 의해서 사용되어 N 비트 가산 결과 중 하나가 되는 최상위 비트를 선택한다.
한 예시적인 애플리케이션에서, 상기 등식 C에 따른 무부호형 오퍼랜드의 25 비트 가산은 부분적으로는 도 5a의 회로 장치(500)에 의해서 구현된다. 등식 C는 다음과 같이 표현된다.
posn[24:0] = pos[24:0] + {{0},zoomn[23:0]}
25 비트 위치 변수를 반복적으로 계산하기 위해서 25 비트 가산기를 사용하는 것은 비용이 많이 드는데 그 이유는 25 비트 가산이 통상적으로 비표준 기능이기 때문이다. 여기에서도, 오퍼랜드는 두 개의 부분으로 분할되며 각 부분은 개별적으로 평가된다. 각 오퍼랜드의 최하위 비트 부분은 합산 경로보다 신속한 캐리아웃 경로를 갖는 가산기를 사용하여 함께 가산되어 최하위 비트 부분 합을 생성한다. 로직 회로(505)는 최상위 비트 부분 합을 최상위 비트 부분 합을 선택하는 데 사용되며 각각의 선택값은 가산기로부터의 캐리아웃의 함수로서의 오퍼랜드 중 하나의 최상위 비트 부분 또는 이의 오프셋이다. XOR 로직 회로가 등식 C를 구현하는데 있어서 사용된다.
8의 배수인 폭을 갖는 가산기는 쉽게 이용가능한 라이브러리 함수이며 가령 24 비트 가산기이다. 등식 C는 24 번째 비트에서 평가를 위해서 분할될 때에 다음과 같이 표현된다.
posn[24:0] = posn[24] + posn[23:0],
여기서, 가산기를 통한 posn[23:0]의 계산은 캐리아웃 C3을 생성한다. 따라서, 등식 C는 다음과 같이 등식 C1 및 C2로 구성된다.
C1 : {C23,posn[23:0]} = pos[23:0] + zoomn[23:0],
C2 : posn[24] = pos[24]^C23,
여기서 연산자 ^ 은 위치 변수의 최종 계산 결과의 이미 이용가능한 25 번째 비트(510) 및 24 비트 최하위 비트 부분 합을 결정하는 24 비트 가산의 캐리아웃 C23(520)을 사용하는 논리적 XOR 연산을 나타낸다. 도 3은 이들 선택 데이터 부분에 대한 각각의 소스를 도시한다. 캐리아웃 C23은 합산량이 이후에 사용되기에 충분하게 안정화되기 이전의 대략적으로 2 게이트 지연 시에 최적화된 캐리 경로를 통해서 24 비트 가산기로부터 이용가능하다.
디지털 필터링 실례 애플리케이션을 위한 마지막 등식 D는 다음과 같다.
sval[4:0] = posn[24:20] - pos[24:20]
등식 C로부터, posn[24:20]는 다음과 같이 등식 E1으로서 표현될 수 있다.
posn[24:20] = pos[24:20] + {0,zoomn[23:20]} + C19,
여기서 C19(표준 라이브러리 가산기로부터 가용될 수 없음)가 단일 비트 zoomn[19]와 posn[19]를 가산함으로써 생성된다.
등식 E1를 등식 D에 대입하면,
sval[4:0] = (pos[24:20] + {0,zoomn[23:20]} + C19) - pos[24;20]
= zoomn[23:20] + C19
= C19?zoomn[23:20] + 1 : zoomn[23:20]
"콘디션" 변수 sval[4:0]은 C19 값에 의존하는 zoomn[23:20] + 1 또는 zoomn[23:20]이다. zoomn[23:20]은 이미 이용가능하며 등식 B의 결과의 4 개의 최상위 비트이므로, zoomn[23:20]의 선택값 또는 증분값(다른 오퍼랜드가 1인 경우에 4 비트 가산기 또는 증분기를 통해서 zoomn[23:20]을 사용하여 사전 계산됨)은 중간의 캐리아웃 C19 값으로 변한다.
중간의 캐리아웃 C19는 중간의 캐리아웃을 외부에서 가져오지 않는 통상적인 24 비트 가산기에서는 쉽게 이용될 수 없다. 임의의 두 개의 오퍼랜드 이진 가산의 경우에, 합산 결과의 M 번째 비트는 (제 1 오퍼랜드의 M 번째 비트) + (제 2 오퍼랜드의 M 번째 비트) + (합산 결과의 하위 비트를 계산하는데 있어서 생성되는 임의의 캐리아웃)의 합과 동일하다. 가령, 등식 C로부터 다음과 같은 등식 E2가 생성된다.
posn[20] = pos[20] + zoomn[20] + C19
캐리 C19는 등식 E2를 따라서 다른 세 개의 변수의 특정 값에 대한 posn[20]의 값을 결정하는 데 사용되는 다음의 표로부터 "가역 처리"된다(reverse-engineered).
위 표로부터, 다음과 같은 등식 E3는 자명하다.
C19 = pos[20]^zoomn[20]^posn[20]
도 5b는 등식 E3을 구현하는 예시적인 회로 장치(550)를 도시한다. 8x1 멀티플렉서(560)는 세 개의 선택 단자를 포함한다. 제 1 선택 단자(562)는 pos[20]을 수신하며, 제 2 선택 단자(564)는 zoomn[20]을 수신하고, 제 3 선택 단자(566)는 posn[20]를 수신한다. 멀티플렉서 입력부(1,2,4,7)는 로직 "1"로 결합되어 멀티플렉서 입력부(0,3,5,6)는 로직 "0"으로 결합된다. 멀티플렉서 출력 단자(568)는 위의 표에 따라서 C19를 생성한다.
도 5c는 C19에 응답하여 선택 로직을 구현하는 예시적인 회로 장치(570)를 도시한다. 이 회로 장치(570)는 도 5b의 멀티플렉서(560)로부터 C19를 수신하는 단일 선택 입력 단자(582)를 갖는 2x1 멀티플렉서(580)를 포함한다. 멀티플렉서(580)는 제 1 입력 단자(584)로 향하는 zoomn[23:20] 또는 제 2 입력 단자(586)로 향하는 zoomn[23:20]의 오프셋(가령, zoomn[23:20] + 1)을 선택한다. 오프셋은 zoomn[23:20]에 대해 연산하는 증분기(590)로부터 유도된다. 이와 다른회로 장치에서, 회로 장치(550,570)가 결합되어 단일 멀티플렉서 회로를 생성하며 zoomn[23:20]인 제 1 입력 신호와 zoomn[23:20]의 오프셋(가령, zoomn[23:20] + 1)인 제 2 입력 신호를 수신한다. 이 입력 중 하나는 회로 장치(550)의 선택 로직에 의해서 선택된다.
따라서, 등식 D를 계산하기 위한 4 비트 가산은 등식 C를 풀기 이전에 해결될 수 있다. zoomn[23:20]의 값은 등식 B의 구현 완료 이전에 이용가능하며 posn[20]의 값은 상술된 방법에 의해서 등식 C를 구현하는데 있어서 유도된 중간값이다. 멀티플렉서 선택 로직에 가장 늦게 도달하는 신호 posn[20]가 이전의 등식으로부터 유도될지라도, posn[20] 신호는 이전의 등식에 대한 완벽한 결과가 도출되기 이전에 이용가능하게 된다.
따라서, 본 발명의 다양한 실시예들이 실현되어 가령 비디오 신호 처리, 암호화 및 다른 컴퓨터 구현형 제어 애플리케이션에서 일련의 부호 및 무부호 이진 산술 계산에서 보다 신속한 가산(addition)을 제공할 수 있다. 일반적으로, 본 발명의 회로 장치 및 방법은 ALU가 사용될 수 있는 경우에는 언제든지 이용될 수 있다. 위의 다양한 실시예들은 본 발명을 한정하기 위한 것이 아니라 예시적으로 설명하기 위한 것이다. 상술된 본 발명의 설명을 기초로 하여, 본 기술 분야의 당업자는 상술된 예시적인 실시예를 엄격하게 따르지 않으면서 본 발명의 다양한 수정 및 변경을 구현할 수 있다. 이러한 수정 및 변경은 다음의 청구 범위에서 제안되는 본 발명의 사상 및 범위를 떠나지 않는다.
새로운 측면으로, 제 1 이진 N 비트 오퍼랜드와 제 2 이진 M 비트 오퍼랜드를 가산하는 회로 장치(N은 M보다 크거나 같음)는, 상기 제 1 및 제 2 오퍼랜드의 최하위 비트를 나타내는 세트를 가산하여 최하위 비트 부분 합 및 캐리아웃을 생성하는 단계와, 선택 데이터에 응답하여 상기 제 1 이진 오퍼랜드의 최상위 비트를 나타내는 세트와 상기 제 1 이진 오퍼랜드의 최상위 비트를 나타내는 세트의 오프셋 중 어느 하나를 전송함으로써 최상위 비트 부분 합을 출력하는 단계━상기 선택 데이터는 상기 제 1 이진 오퍼랜드의 최하위 비트를 나타내는 세트의 최상위 비트의 함수임━를 포함한다.
특정 회로 장치 실시예에서, N과 M은 동일하며, 제 2 이진 오퍼랜드의 최상위 비트는 제로이며, 멀티플렉서 회로는 배타적 논리합 게이트로서 동작하고, 상기 선택 데이터는 제 1 이진 오퍼랜드의 최상위 비트 및 가산기로부터의 캐리아웃이다.
이 캐리아웃은 최하위 비트 부분 합산 이전에 가산기에서 이용가능하다.
다른 특정 회로 장치 실시예에서, 오퍼랜드는 무부호형 이진수이며 멀티플렉서 회로는 배타적 논리합 게이트로서 동작하고, 선택 데이터는 제 1 이진 오퍼랜드의 최상위 비트 및 가산기로부터의 캐리아웃이다.
다른 특정 회로 장치 실시예에서, 오퍼랜드는 무부호형 이진수이다.

Claims (10)

  1. N 비트의 제 1 이진 오퍼랜드와 M 비트의 제 2 이진 오퍼랜드를 가산하는 회로 장치━상기 N은 상기 M보다 크거나 같음━에 있어서,
    상기 제 1 이진 오퍼랜드의 최하위 비트를 나타내는 세트와 상기 제 2 이진 오퍼랜드의 최하위 비트를 나타내는 세트를 서로 가산하여 최하위 비트 부분 합 및 캐리아웃(carryout)을 생성하는 가산기와,
    상기 가산기에 접속되어, 선택 데이터에 응답하여, 상기 제 1 이진 오퍼랜드의 최상위 비트를 나타내는 세트 또는 상기 제 1 이진 오퍼랜드의 최상위 비트를 나타내는 세트의 오프셋 중 하나를 전송함으로써 최상위 비트 부분 합을 출력하는 멀티플렉서 회로━상기 선택 데이터는 상기 제 1 이진 오퍼랜드의 최하위 비트를 나타내는 세트의 최상위 비트의 함수임━를 포함하는
    오퍼랜드 가산 회로 장치.
  2. 제 1 항에 있어서,
    상기 가산기는 M 비트 가산기이며,
    상기 제 1 이진 오퍼랜드의 최하위 비트를 나타내는 세트와 상기 제 2 이진 오퍼랜드의 최하위 비트를 나타내는 세트 각각은 M 비트의 길이를 가지며,
    상기 선택 데이터는 상기 M 비트 가산기로부터의 캐리아웃 및 상기 제 1 이진 오퍼랜드의 M 번째 비트를 포함하는
    오퍼랜드 가산 회로 장치.
  3. 제 2 항에 있어서,
    N - M 비트 최상위 비트 부분 합은 상기 제 1 오퍼랜드의 N - M 최상위 비트, 1 만큼 증분된 상기 제 1 오퍼랜드의 N - M 최상위 비트 또는 1 만큼 감분된 상기 제 1 오퍼랜드의 N - M 최상위 비트 중 하나인
    오퍼랜드 가산 회로 장치.
  4. 제 1 항에 있어서,
    상기 제 1 이진 오퍼랜드의 최상위 비트를 나타내는 세트의 오프셋은 제 1의 증분된 오프셋 및 제 2의 감분된 오프셋을 포함하는
    오퍼랜드 가산 회로 장치.
  5. 제 4 항에 있어서,
    상기 제 1의 증분된 오프셋은 1 만큼 증분된 상기 제 1 이진 오퍼랜드의 최상위 비트를 나타내는 세트이며,
    상기 제 2의 감분된 오프셋은 1 만큼 감분된 상기 제 1 이진 오퍼랜드의 최상위 비트를 나타내는 세트인
    오퍼랜드 가산 회로 장치.
  6. 제 1 항에 있어서,
    상기 선택 데이터는 상기 제 1 이진 오퍼랜드의 최하위 비트를 나타내는 세트의 최상위 비트 및 상기 가산기로부터의 캐리아웃을 포함하는
    오퍼랜드 가산 회로 장치.
  7. 제 6 항에 있어서,
    상기 캐리아웃은 상기 최하위 비트 부분 합 이전에 상기 가산기에서 이용가능한
    오퍼랜드 가산 회로 장치.
  8. 제 1 항에 있어서,
    N - M 은 1 이며,
    상기 멀티플렉서 회로는 배타적 논리합 게이트(an exclusive-or gate)로서동작하고,
    상기 선택 데이터는 상기 제 1 이진 오퍼랜드의 최상위 비트 및 상기 가산기로부터의 캐리아웃을 포함하는
    오퍼랜드 가산 회로 장치.
  9. N 비트의 제 1 이진 오퍼랜드와 M 비트의 제 2 이진 오퍼랜드를 가산하는 방법━상기 N은 상기 M보다 크거나 같음━에 있어서,
    상기 제 1 이진 오퍼랜드의 최하위 비트를 나타내는 세트와 상기 제 2 이진 오퍼랜드의 최하위 비트를 나타내는 세트를 서로 가산하여 최하위 비트 부분 합 및 캐리아웃을 생성하는 단계와,
    상기 가산기에 접속되어, 선택 데이터에 응답하여, 상기 제 1 이진 오퍼랜드의 최상위 비트를 나타내는 세트 또는 상기 제 1 이진 오퍼랜드의 최상위 비트를 나타내는 세트의 오프셋 중 하나를 전송함으로써 최상위 비트 부분 합을 출력하는 단계━상기 선택 데이터는 상기 제 1 이진 오퍼랜드의 최하위 비트를 나타내는 세트의 최상위 비트의 함수임━를 포함하는
    오퍼랜드 가산 방법.
  10. N 개의 비트의 제 1 이진 오퍼랜드의 M 개의 최상위 비트와 N 개의 비트의제 2 이진 오퍼랜드의 M 개의 최상위 비트를 가산하는 컴퓨터 구현형 장치에 있어서,
    상기 제 1 이진 오퍼랜드의 최하위 비트를 나타내는 세트와 상기 제 2 이진 오퍼랜드의 최하위 비트를 나타내는 세트를 서로 가산하여 N - M + 1 비트 부분 합을 생성하는 가산기와,
    상기 가산기에 접속되어, 제 1 선택 데이터 세트에 응답하여, 상기 가산기의 (N - M) 번째 비트 내부 캐리 비트를 나타내는 출력을 생성하는 제 1 멀티플렉서 회로━상기 제 1 선택 데이터 세트는 상기 제 1 이진 오퍼랜드 및 상기 제 2 이진 오퍼랜드의 각각의 (N - M + 1) 번째 비트 및 상기 부분 합의 (N - M + 1) 번째 비트를 포함함━와,
    상기 제 1 멀티플렉서 회로에 접속되어, 상기 제 1 멀티플렉서 회로의 출력에 응답하여, 상기 제 2 이진 오퍼랜드의 최상위 비트를 나타내는 세트와 상기 제 2 이진 오퍼랜드의 최상위 비트를 나타내는 세트의 오프셋 중 하나를 전송함으로써 최상위 비트 부분 합을 출력하는 제 2 멀티플렉서 회로를 포함하는
    오퍼랜드 가산 컴퓨터 구현형 장치.
KR10-2004-7007019A 2001-11-08 2002-10-30 오퍼랜드 가산 방법 및 회로 장치 및 컴퓨터 구현형 장치 KR20040063143A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/005,551 2001-11-08
US10/005,551 US20030088602A1 (en) 2001-11-08 2001-11-08 High-speed computation in arithmetic logic circuit
PCT/IB2002/004568 WO2003040859A2 (en) 2001-11-08 2002-10-30 High-speed computation in arithmetic logic circuit

Publications (1)

Publication Number Publication Date
KR20040063143A true KR20040063143A (ko) 2004-07-12

Family

ID=21716430

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-7007019A KR20040063143A (ko) 2001-11-08 2002-10-30 오퍼랜드 가산 방법 및 회로 장치 및 컴퓨터 구현형 장치

Country Status (8)

Country Link
US (1) US20030088602A1 (ko)
EP (1) EP1446713B1 (ko)
JP (1) JP2005508541A (ko)
KR (1) KR20040063143A (ko)
AT (1) ATE322715T1 (ko)
AU (1) AU2002343144A1 (ko)
DE (1) DE60210494T2 (ko)
WO (1) WO2003040859A2 (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030103166A1 (en) * 2001-11-21 2003-06-05 Macinnis Alexander G. Method and apparatus for vertical compression and de-compression of progressive video data
US7475104B2 (en) * 2005-02-09 2009-01-06 International Business Machines Corporation System and method for providing a double adder for decimal floating point operations
US8885510B2 (en) 2012-10-09 2014-11-11 Netspeed Systems Heterogeneous channel capacities in an interconnect
US9471726B2 (en) 2013-07-25 2016-10-18 Netspeed Systems System level simulation in network on chip architecture
US9473388B2 (en) 2013-08-07 2016-10-18 Netspeed Systems Supporting multicast in NOC interconnect
US9158882B2 (en) * 2013-12-19 2015-10-13 Netspeed Systems Automatic pipelining of NoC channels to meet timing and/or performance
US9699079B2 (en) 2013-12-30 2017-07-04 Netspeed Systems Streaming bridge design with host interfaces and network on chip (NoC) layers
US9473415B2 (en) 2014-02-20 2016-10-18 Netspeed Systems QoS in a system with end-to-end flow control and QoS aware buffer allocation
US9742630B2 (en) 2014-09-22 2017-08-22 Netspeed Systems Configurable router for a network on chip (NoC)
US9571341B1 (en) 2014-10-01 2017-02-14 Netspeed Systems Clock gating for system-on-chip elements
US9660942B2 (en) 2015-02-03 2017-05-23 Netspeed Systems Automatic buffer sizing for optimal network-on-chip design
US9444702B1 (en) 2015-02-06 2016-09-13 Netspeed Systems System and method for visualization of NoC performance based on simulation output
US9568970B1 (en) 2015-02-12 2017-02-14 Netspeed Systems, Inc. Hardware and software enabled implementation of power profile management instructions in system on chip
US9928204B2 (en) 2015-02-12 2018-03-27 Netspeed Systems, Inc. Transaction expansion for NoC simulation and NoC design
US10050843B2 (en) 2015-02-18 2018-08-14 Netspeed Systems Generation of network-on-chip layout based on user specified topological constraints
US10348563B2 (en) 2015-02-18 2019-07-09 Netspeed Systems, Inc. System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology
US9864728B2 (en) 2015-05-29 2018-01-09 Netspeed Systems, Inc. Automatic generation of physically aware aggregation/distribution networks
US9825809B2 (en) 2015-05-29 2017-11-21 Netspeed Systems Dynamically configuring store-and-forward channels and cut-through channels in a network-on-chip
US10218580B2 (en) 2015-06-18 2019-02-26 Netspeed Systems Generating physically aware network-on-chip design from a physical system-on-chip specification
US10452124B2 (en) 2016-09-12 2019-10-22 Netspeed Systems, Inc. Systems and methods for facilitating low power on a network-on-chip
US20180159786A1 (en) 2016-12-02 2018-06-07 Netspeed Systems, Inc. Interface virtualization and fast path for network on chip
US10313269B2 (en) 2016-12-26 2019-06-04 Netspeed Systems, Inc. System and method for network on chip construction through machine learning
US10063496B2 (en) 2017-01-10 2018-08-28 Netspeed Systems Inc. Buffer sizing of a NoC through machine learning
US10084725B2 (en) 2017-01-11 2018-09-25 Netspeed Systems, Inc. Extracting features from a NoC for machine learning construction
US10469337B2 (en) 2017-02-01 2019-11-05 Netspeed Systems, Inc. Cost management against requirements for the generation of a NoC
US10298485B2 (en) 2017-02-06 2019-05-21 Netspeed Systems, Inc. Systems and methods for NoC construction
US10983910B2 (en) 2018-02-22 2021-04-20 Netspeed Systems, Inc. Bandwidth weighting mechanism based network-on-chip (NoC) configuration
US10896476B2 (en) 2018-02-22 2021-01-19 Netspeed Systems, Inc. Repository of integration description of hardware intellectual property for NoC construction and SoC integration
US10547514B2 (en) 2018-02-22 2020-01-28 Netspeed Systems, Inc. Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US11144457B2 (en) 2018-02-22 2021-10-12 Netspeed Systems, Inc. Enhanced page locality in network-on-chip (NoC) architectures
US11023377B2 (en) 2018-02-23 2021-06-01 Netspeed Systems, Inc. Application mapping on hardened network-on-chip (NoC) of field-programmable gate array (FPGA)
US11176302B2 (en) 2018-02-23 2021-11-16 Netspeed Systems, Inc. System on chip (SoC) builder

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4203157A (en) * 1978-09-05 1980-05-13 Motorola, Inc. Carry anticipator circuit and method
BR8602717A (pt) * 1985-09-11 1987-04-14 Sperry Corp Aparelho para efetuar adicao de binarios
US5418736A (en) * 1994-03-11 1995-05-23 Nexgen, Inc. Optimized binary adders and comparators for inputs having different widths
US5504698A (en) * 1994-05-17 1996-04-02 Silicon Graphics, Inc. Compact dual function adder
US6260055B1 (en) * 1997-10-15 2001-07-10 Kabushiki Kaisha Toshiba Data split parallel shifter and parallel adder/subtractor
US6065034A (en) * 1998-04-08 2000-05-16 Advanced Micro Devices, Inc. Circuit and method employing an adder for sign extending operands
EP0955576B1 (en) * 1998-05-08 2003-08-13 STMicroelectronics S.r.l. High-speed digital accumulator with wide dynamic range

Also Published As

Publication number Publication date
EP1446713A2 (en) 2004-08-18
US20030088602A1 (en) 2003-05-08
ATE322715T1 (de) 2006-04-15
WO2003040859A2 (en) 2003-05-15
EP1446713B1 (en) 2006-04-05
DE60210494D1 (de) 2006-05-18
DE60210494T2 (de) 2006-11-30
WO2003040859A3 (en) 2003-11-27
JP2005508541A (ja) 2005-03-31
AU2002343144A1 (en) 2003-05-19

Similar Documents

Publication Publication Date Title
KR20040063143A (ko) 오퍼랜드 가산 방법 및 회로 장치 및 컴퓨터 구현형 장치
EP0847551B1 (en) A set of instructions for operating on packed data
US7395304B2 (en) Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic
US6370559B1 (en) Method and apparatus for performing N bit by 2*N−1 bit signed multiplications
US7424505B2 (en) Method and apparatus for performing multiply-add operations on packed data
KR100284799B1 (ko) 시프트 수단을 이용한 지수 회로 및 사용 방법
US7257609B1 (en) Multiplier and shift device using signed digit representation
JPH07210369A (ja) 並列加算および平均演算を行うための回路およびその方法
KR100744216B1 (ko) 계산 장치 및 방법과 컴퓨터 프로그램 저장 매체
WO1999040508A1 (en) Fast adder/subtractor for signed floating point numbers
US5867413A (en) Fast method of floating-point multiplication and accumulation
US5931892A (en) Enhanced adaptive filtering technique
JP3537378B2 (ja) 加算器および集積回路
US5898603A (en) Method and apparatus for approximating a sigmoidal response using digital circuitry
US6963895B1 (en) Floating point pipeline method and circuit for fast inverse square root calculations
US5710730A (en) Divide to integer
JP3579087B2 (ja) 演算器およびマイクロプロセッサ
US6772186B1 (en) Multimedia multiply-adder
CN110506255B (zh) 节能型可变功率加法器及其使用方法
EP1504338A1 (en) "emod" a fast modulus calculation for computer systems
Hass Synthesizing optimal fixed-point arithmetic for embedded signal processing
JP4243277B2 (ja) データ処理装置
RU2799035C1 (ru) Конвейерный сумматор по модулю
KR0176883B1 (ko) 복소수 승산기
JPH02114324A (ja) 乗算器

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid