KR20220074965A - 곱셈기 및 연산자 회로 - Google Patents

곱셈기 및 연산자 회로 Download PDF

Info

Publication number
KR20220074965A
KR20220074965A KR1020227015465A KR20227015465A KR20220074965A KR 20220074965 A KR20220074965 A KR 20220074965A KR 1020227015465 A KR1020227015465 A KR 1020227015465A KR 20227015465 A KR20227015465 A KR 20227015465A KR 20220074965 A KR20220074965 A KR 20220074965A
Authority
KR
South Korea
Prior art keywords
transistor
coupled
bit
node
inversion
Prior art date
Application number
KR1020227015465A
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 KR20220074965A publication Critical patent/KR20220074965A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5334Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3066Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction by means of a mask or a bit-map
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/31Design entry, e.g. editors specifically adapted for circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • 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/501Half or full adders, i.e. basic adder cells for one denomination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6011Encoder aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Geometry (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)

Abstract

곱셈기 및 연산자 회로가 제공된다. 곱셈기는 M 비트의 제1 값과 N 비트의 제2 값의 곱셈을 구현하도록 구성되고, 인코더들의 P개의 그룹과 반전 압축기들의 W개의 층을 포함한다. 인코더들의 P개의 그룹의 각각의 그룹은 N개의 인코더를 포함하고, 인코더들의 각각의 그룹은 비-반전 인코딩 연산자들 또는 반전 인코딩 연산자들을 이용함으로써 제2 값에서의 비트들의 일부, 및 인코더들의 각각의 그룹에 대응하는 그룹 선택 신호 및 심볼 제어 입력 신호를 인코딩하여 하나의 부분 곱을 획득하도록 구성된다. 그룹 선택 신호 및 심볼 제어 입력 신호는 제1 값에서의 비트들의 일부에 기반하여 생성되고, 인코더들의 P개의 그룹은 인코딩을 수행하여 P개의 부분 곱을 획득한다. 반전 압축기들의 W개의 층은 반전 압축 연산자들을 이용함으로써 P개의 부분 곱을 압축하여 2개의 누산된 값을 획득하도록 구성되고, 2개의 누산된 값의 합은 제1 값과 제2 값의 곱이다.

Description

곱셈기 및 연산자 회로
본 출원은 전자 기술 분야에 관한 것으로, 특히 곱셈기(multiplier) 및 연산자(operator) 회로에 관한 것이다.
인공 지능(artificial intelligence, AI) 기술들의 지속적인 개발 및 성숙으로, AI 기술들은 서버들 및 단말기들과 같은 통신 디바이스들에서 점차 대중화되고 있다. AI 기술들은 통신 디바이스들 내의 중앙 처리 유닛(central processing unit, CPU), 신경망 처리 유닛(neural-network processing unit, NPU), 그래픽 처리 유닛(graphics processing unit, GPU), 또는 디지털 신호 프로세서(digital signal processor, DSP)와 같은 프로세서의 컴퓨팅 능력에 대한 높은 요건을 갖는다. 프로세서의 코어 컴퓨팅 유닛으로서, 곱셈기는 점점 더 중요한 역할을 한다.
기존의 곱셈기의 아키텍처는 표준 인코더 및 표준 가산기에 기반하여 설계된다. 도 1에 도시된 바와 같이, 특정 설계 구현은 다음과 같은 3개의 단계로 요약될 수 있다: (1) Radix-4 Booth 알고리즘을 이용하여 Radix-4 Booth 인코더에서 제1 값 및 제2 값을 인코딩함으로써, 부분 곱들을 획득하는 단계; (2) Wallace 트리를 이용하여 부분 곱들을 압축하는 단계; 및 (3) 압축을 통해 획득된 2개의 부분 곱을 합산하여, 곱셈 연산 결과를 획득하는 단계. 도 1은 제1 값 및 제2 값 둘 다가 16 비트 이진 숫자들(binary digits)이고, 곱셈 연산 결과가 32 비트 이진 숫자인 예를 도시하며, 여기서 a[15:0]은 제1 값을 표시하고, b[15:0]은 제2 값을 표시하고, y[31:0]은 곱셈 연산 결과를 표시한다. 그러나, 많은 표준 인코더들 및 표준 가산기들이 Radix-4 Booth 알고리즘 및 Wallace 트리에 기반하여 구현되는 전술한 곱셈기에서 이용된다. 표준 인코더 및 표준 가산기에서는, 많은 양의 금속 산화물 반도체(metal-oxide-semiconductor, MOS) 트랜지스터들이 존재하고, 이러한 트랜지스터들의 면적들이 크다. 그 결과, 곱셈기의 면적이 크다. 다시 말해서, 기존의 곱셈기의 설계 구현은 복잡하다. 따라서, 구현하기에 더 쉬운 곱셈기를 설계하는 것이 기대된다.
본 출원은 곱셈기 및 연산자 회로를 제공하여, 곱셈기들의 구현 어려움을 감소시킨다. 전술한 목적들을 달성하기 위해, 본 출원에서는 다음의 기술적 해결책들이 이용된다.
제1 양태에 따르면, M 비트(bits)의 제1 값과 N 비트의 제2 값의 곱셈을 구현하도록 구성된 곱셈기가 제공되고, 여기서 M과 N은 1보다 큰 정수들이다. 곱셈기는 인코더들의 P개의 그룹과 반전 압축기들의 W개의 층을 포함한다. 인코더들의 P개의 그룹의 각각의 그룹은 N개의 인코더를 포함하고, W는 양의 정수이고, P는 1보다 큰 정수이다. 인코더들의 각각의 그룹은 비-반전 인코딩 연산자들 또는 반전 인코딩 연산자들을 이용함으로써 제2 값에서의 비트들의 일부, 및 인코더들의 각각의 그룹에 대응하는 그룹 선택 신호 및 심볼 제어 입력 신호를 인코딩하여 하나의 부분 곱을 획득하도록 구성된다. 그룹 선택 신호와 심볼 제어 입력 신호는 제1 값에서의 비트들의 일부에 기반하여 생성되고, 인코더들의 P개의 그룹은 인코딩을 수행하여 P개의 부분 곱을 획득한다. 반전 압축기들의 W개의 층은 반전 압축 연산자들을 이용함으로써 P개의 부분 곱을 압축하여 2개의 누산된 값을 획득하도록 구성되고, 2개의 누산된 값의 합은 제1 값과 제2 값의 곱이다. 전술한 기술적 해결책에서, 인코더들의 P개의 그룹은 비-반전 인코딩 연산자들 또는 반전 인코딩 연산자들을 이용하여 인코딩을 수행하고, 반전 압축기들의 W개의 층은 반전 압축 연산자들을 이용하여 압축을 수행한다. 이 구현 해결책은 간단하다. 예를 들어, 이 해결책은 작은 면적과 낮은 전력 소비의 이점을 갖고, 따라서 곱셈기는 작은 면적과 낮은 전력 소비를 갖는다.
제1 양태의 가능한 구현에서, N개의 인코더의 각각의 인코더는 제2 값에서의 제1 비트 및 제2 비트에 대응하고, 그룹 선택 신호는 제1 신호 및 제2 신호를 포함한다. 각각의 인코더는 비-반전 인코딩 연산자 또는 반전 인코딩 연산자를 이용함으로써 제1 비트, 제2 비트, 그룹 선택 신호, 및 심볼 제어 입력 신호를 인코딩하여, 하나의 부분 곱에서 하나의 출력 비트를 획득하도록 구체적으로 구성된다. 제1 비트 및 제2 비트는 제2 값에서의 2개의 인접 비트, 또는 제2 값에서의 동일한 비트일 수 있다. 전술한 가능한 구현에서, 인코더의 인코딩 방식이 제공되고, 인코딩 방식의 구현 해결책은 간단하다. 예를 들어, 인코더의 면적이 감소될 수 있다.
제1 양태의 가능한 구현에서, 인코더가 비-반전 인코딩 연산자를 이용할 때, 인코더는 비-반전 인코더이고, 다음과 같은 인코딩 연산을 수행하도록 구체적으로 구성된다: 제1 신호 및 제1 비트 둘 다가 1이거나, 또는 제2 신호 및 제2 비트 둘 다가 1인 경우, 인코더에 의해 획득된 출력 비트는 심볼 제어 입력 신호의 반전이다. 제1 신호 및 제1 비트 중 적어도 하나가 0이고, 제2 신호 및 제2 비트 중 적어도 하나가 0인 경우, 인코더에 의해 획득된 출력 비트는 심볼 제어 입력 신호이다. 전술한 가능한 구현에서, 비-반전 인코더가 제공되고, 비-반전 인코더의 구현 해결책은 간단하고, 예를 들어, 작은 면적 및 낮은 전력 소비이다.
제1 양태의 가능한 구현에서, 인코더가 반전 인코딩 연산자를 이용할 때, 인코더는 반전 인코더이고, 다음과 같은 인코딩 연산을 수행하도록 구체적으로 구성된다: 제1 신호 및 제1 비트 둘 다가 1이거나, 또는 제2 신호 및 제2 비트 둘 다가 1인 경우, 인코더에 의해 획득된 출력 비트는 심볼 제어 입력 신호이다. 제1 신호 및 제1 비트 중 적어도 하나가 0이고, 제2 신호 및 제2 비트 중 적어도 하나가 0인 경우, 인코더에 의해 획득된 출력 비트는 심볼 제어 입력 신호의 반전이다. 전술한 가능한 구현에서, 반전 인코더가 제공되고, 반전 인코더의 구현 해결책은 간단하고, 예를 들어, 작은 면적 및 낮은 전력 소비이다.
제1 양태의 가능한 구현에서, W는 1이고, 반전 압축기들의 W개의 층은 반전 압축기들의 첫번째 층을 포함한다. 반전 압축기들의 첫번째 층은, 각각의 자리 가중치(digit weight)에 대응하는 남아 있는 비트들의 양이 3 미만일 때까지 반전 압축 연산자들을 낮은 자리 가중치로부터 높은 자리 가중치로 순차적으로 이용함으로써 P개의 부분 곱의 행렬에서의 각각의 자리 가중치를 압축하여 제1 압축된 행렬을 획득하도록 구성된다. 제1 압축된 행렬은 2개의 행을 포함하고, 각각의 행은 하나의 누산된 값에 대응한다. 각각의 자리 가중치에 대한 압축은 자리 가중치에 대한 매 3 비트에 대해 수행되고, P개의 부분 곱의 행렬에서, 각각의 행은 하나의 부분 곱을 포함하고, 각각의 열은 P개의 부분 곱에서 동일한 자리 가중치에 대응하는 복수의 비트를 포함한다. 전술한 가능한 구현에서, 제공된 반전 압축기는 높은 압축 효율을 갖는다.
제1 양태의 가능한 구현에서, W는 1보다 큰 정수이고, 반전 압축기들의 W개의 층은 반전 압축기들의 첫번째 층 내지 반전 압축기들의 W번째 층을 포함한다. 반전 압축기들의 첫번째 층은, 각각의 자리 가중치에 대응하는 남아 있는 비트들의 양이 3 미만일 때까지 반전 압축 연산자들을 낮은 자리 가중치로부터 높은 자리 가중치로 순차적으로 이용함으로써 P개의 부분 곱의 행렬에서의 각각의 자리 가중치를 압축하여 제1 압축된 행렬을 획득하도록 구성된다. 반전 압축기들의 i번째 층은, 각각의 자리 가중치에 대응하는 남아 있는 비트들의 양이 3 미만일 때까지 반전 압축 연산자들을 낮은 자리 가중치로부터 높은 자리 가중치로 순차적으로 이용함으로써 (i-1)번째 압축된 행렬에서의 각각의 자리 가중치를 압축하여 i번째 압축된 행렬을 획득하도록 구성되고, i의 값은 2 내지 W의 범위이다. W번째 압축된 행렬은 2개의 행을 포함하고, 각각의 행은 하나의 누산된 값에 대응한다. 반전 압축기들의 각각의 층에 의한 각각의 자리 가중치에 대한 압축은 자리 가중치에 대한 3 비트에 대해 수행된다. P개의 부분 곱의 행렬에서, 각각의 행은 하나의 부분 곱을 포함하고, 각각의 열은 P개의 부분 곱에서 동일한 자리 가중치에 대응하는 복수의 비트를 포함한다. 전술한 가능한 구현에서, 반전 압축기들의 제공된 W개의 층은 높은 압축 효율을 갖는다.
제1 양태의 가능한 구현에서, 각각의 자리 가중치에 대한 매 3 비트에 대해, 각각의 반전 압축기는 다음과 같은 압축을 수행하도록 구체적으로 구성된다: 3 비트가 모두 0이면, 출력 캐리 비트는 1이고, 현재 출력 합 비트는 1이다. 대안적으로, 3 비트가 모두 1이면, 출력 캐리 비트는 0이고, 현재 출력 합 비트는 0이다. 대안적으로, 3 비트 중 하나가 1이고 다른 2개의 비트가 0이면, 출력 캐리 비트는 1이고, 현재 출력 합 비트는 0이다. 대안적으로, 3 비트 중 2개가 1이고 다른 비트가 0이면, 출력 캐리 비트는 0이고, 현재 출력 합 비트는 1이다. 전술한 가능한 구현은 반전 압축기의 간단하고 효과적인 압축 방식을 제공한다.
제1 양태의 가능한 구현에서, 동일한 자리 가중치에 대응하는 인코더들에 의해 이용되는 인코딩 연산자들의 위상들은 반전 압축기에 의해 출력되는 현재 출력 합 비트 또는 출력 캐리 비트의 위상과 관련된다. 동일한 자리 가중치에 대응하는 인코더는 인코딩을 수행하여 동일한 자리 가중치에 대응하는 출력 비트를 획득하는 인코더이고, 동일한 자리 가중치에 대응하는 반전 압축기는 동일한 자리 가중치에 대한 3 비트를 압축하는 반전 압축기이다. 전술한 가능한 구현은 인코더들에 의해 이용되는 인코딩 연산자들의 위상들을 결정하는 빠르고 효과적인 방식을 제공한다.
제1 양태의 가능한 구현에서, 곱셈기는 반전 압축기들의 W개의 층에서 하나 이상의 반전 압축기에 의해 출력되는 현재 출력 합 비트와 출력 캐리 비트의 위상들을 반전시키거나, 하나 이상의 반전 압축기에 입력되는 3 비트 중 적어도 하나의 비트의 위상을 반전시키도록 구성된 하나 이상의 인버터를 추가로 포함한다. 전술한 가능한 구현은 압축 결과의 정확도를 보장하고, 반전 압축기들의 W개의 층의 압축 효율을 개선할 수 있다.
제1 양태의 가능한 구현에서, 곱셈기는 제1 값을 수신하고, 제1 값에서의 비트들의 일부에 기반하여 그룹 선택 신호 및 심볼 제어 입력 신호를 생성하도록 구성된 프리코더를 추가로 포함한다.
제1 양태의 가능한 구현에서, 곱셈기는 2개의 누산된 값을 수신하고, 2개의 누산된 값을 합산하여 곱을 획득하도록 구성된 가산기를 추가로 포함한다.
제2 양태에 따르면, 연산자 회로가 제공되며, 이 연산자 회로는 제1 트랜지스터, 제2 트랜지스터, 제3 트랜지스터, 제4 트랜지스터, 제5 트랜지스터, 제6 트랜지스터, 제7 트랜지스터, 제8 트랜지스터, 제9 트랜지스터, 제10 트랜지스터, 제11 트랜지스터, 제12 트랜지스터, 제13 트랜지스터, 제14 트랜지스터, 및 제15 트랜지스터를 포함한다. 제1 트랜지스터 및 제2 트랜지스터는 전원 단자와 제1 노드 사이에 병렬로 결합되고, 제3 트랜지스터 및 제4 트랜지스터는 제1 노드와 제2 노드 사이에 병렬로 결합되고, 제5 트랜지스터 및 제7 트랜지스터는 제2 노드와 접지 단자 사이에 직렬로 결합되고, 제6 트랜지스터 및 제8 트랜지스터는 제2 노드와 접지 단자 사이에 직렬로 결합된다. 제3 트랜지스터 및 제5 트랜지스터의 제어 단자들은 제1 입력을 수신하도록 구성되고, 제1 트랜지스터 및 제6 트랜지스터의 제어 단자들은 제2 입력을 수신하도록 구성되고, 제4 트랜지스터 및 제7 트랜지스터의 제어 단자들은 제3 입력을 수신하도록 구성되고, 제2 트랜지스터 및 제8 트랜지스터의 제어 단자들은 제4 입력을 수신하도록 구성된다. 제9 트랜지스터는 제5 입력의 반전과 출력 단자 사이에 결합되고, 제9 트랜지스터의 제어 단자는 제2 노드에 결합된다. 제10 트랜지스터는 제2 노드와 출력 단자 사이에 결합되고, 제10 트랜지스터의 제어 단자는 제5 입력의 반전에 결합된다. 제11 트랜지스터 및 제13 트랜지스터는 출력 단자와 접지 단자 사이에 직렬로 결합된다. 제11 트랜지스터의 제어 단자는 제2 노드에 결합된다. 제13 트랜지스터의 제어 단자는 제5 입력의 반전을 수신하도록 구성된다. 제12 트랜지스터는 출력 단자와 제2 노드 사이에 결합되고, 제12 트랜지스터의 제어 단자는 제5 입력을 수신하도록 구성된다. 제14 트랜지스터 및 제15 트랜지스터는 전원 단자와 접지 단자 사이에 직렬로 결합되고, 제14 트랜지스터와 제15 트랜지스터 사이의 직렬 결합된 노드는 제5 입력의 반전에 결합된다. 제14 트랜지스터 및 제15 트랜지스터의 제어 단자들은 제5 입력을 수신하도록 구성된다. 전술한 기술적 해결책에서, 비-반전 인코딩 연산자 회로가 제공된다. 비-반전 인코딩 연산자 회로는 소량의 트랜지스터들을 갖고, 작은 면적을 점유하며, 구현하기에 간단하다. 따라서, 연산자 회로가 곱셈기에 적용될 때 곱셈기의 면적이 감소될 수 있다.
제2 양태의 가능한 구현에서, 제1 트랜지스터, 제2 트랜지스터, 제3 트랜지스터, 제4 트랜지스터, 제9 트랜지스터, 제10 트랜지스터, 및 제14 트랜지스터는 P형 MOS(PMOS) 트랜지스터들이다. 제5 트랜지스터, 제6 트랜지스터, 제7 트랜지스터, 제8 트랜지스터, 제11 트랜지스터, 제12 트랜지스터, 제13 트랜지스터, 및 제15 트랜지스터는 N형 MOS(NMOS) 트랜지스터들이다. 전술한 가능한 구현에서, 제공된 연산자 회로가 데이터를 인코딩할 때 트랜지스터의 토글 레이트가 작다. 따라서, 연산자 회로가 곱셈기에 적용될 때 곱셈기의 전력 소비가 감소될 수 있다.
제3 양태에 따르면, 연산자 회로가 제공되며, 이 연산자 회로는 제1 트랜지스터, 제2 트랜지스터, 제3 트랜지스터, 제4 트랜지스터, 제5 트랜지스터, 제6 트랜지스터, 제7 트랜지스터, 제8 트랜지스터, 제9 트랜지스터, 제10 트랜지스터, 제11 트랜지스터, 제12 트랜지스터, 제13 트랜지스터, 제14 트랜지스터, 및 제15 트랜지스터를 포함한다. 제1 트랜지스터 및 제2 트랜지스터는 전원 단자와 제1 노드 사이에 병렬로 결합되고, 제3 트랜지스터 및 제4 트랜지스터는 제1 노드와 제2 노드 사이에 병렬로 결합되고, 제5 트랜지스터 및 제7 트랜지스터는 제2 노드와 접지 단자 사이에 직렬로 결합되고, 제6 트랜지스터 및 제8 트랜지스터는 제2 노드와 접지 단자 사이에 직렬로 결합된다. 제3 트랜지스터 및 제5 트랜지스터의 제어 단자들은 제1 입력을 수신하도록 구성되고, 제1 트랜지스터 및 제6 트랜지스터의 제어 단자들은 제2 입력을 수신하도록 구성되고, 제4 트랜지스터 및 제7 트랜지스터의 제어 단자들은 제3 입력을 수신하도록 구성되고, 제2 트랜지스터 및 제8 트랜지스터의 제어 단자들은 제4 입력을 수신하도록 구성된다. 제9 트랜지스터 및 제10 트랜지스터는 전원 단자와 출력 단자 사이에 직렬로 결합되고, 제9 트랜지스터의 제어 단자는 제5 입력의 반전에 결합되고, 제10 트랜지스터의 제어 단자는 제2 노드에 결합된다. 제11 트랜지스터는 제2 노드와 출력 단자 사이에 결합되고, 제11 트랜지스터의 제어 단자는 제5 입력에 결합된다. 제12 트랜지스터는 출력 단자와 제5 입력의 반전 사이에 결합되고, 제12 트랜지스터의 제어 단자는 제2 노드에 결합된다. 제13 트랜지스터는 출력 단자와 제2 노드 사이에 결합되고, 제13 트랜지스터의 제어 단자는 제5 입력의 반전에 결합된다. 제14 트랜지스터 및 제15 트랜지스터는 전원 단자와 접지 단자 사이에 직렬로 결합되고, 제14 트랜지스터와 제15 트랜지스터 사이의 직렬 결합된 노드는 제5 입력의 반전에 결합된다. 제14 트랜지스터 및 제15 트랜지스터의 제어 단자들은 제5 입력을 수신하도록 구성된다. 전술한 기술적 해결책에서, 반전 인코딩 연산자 회로가 제공된다. 반전 인코딩 연산자 회로는 소량의 트랜지스터들을 갖고, 작은 면적을 점유하며, 구현하기에 간단하다. 따라서, 연산자 회로가 곱셈기에 적용될 때 곱셈기의 면적이 감소될 수 있다.
제3 양태의 가능한 구현에서, 제1 트랜지스터, 제2 트랜지스터, 제3 트랜지스터, 제4 트랜지스터, 제9 트랜지스터, 제10 트랜지스터, 제11 트랜지스터, 및 제14 트랜지스터는 PMOS 트랜지스터들이다. 제5 트랜지스터, 제6 트랜지스터, 제7 트랜지스터, 제8 트랜지스터, 제12 트랜지스터, 제13 트랜지스터, 및 제15 트랜지스터는 NMOS 트랜지스터들이다. 전술한 가능한 구현에서, 제공된 연산자 회로가 데이터를 인코딩할 때 트랜지스터의 토글 레이트가 작다. 따라서, 연산자 회로가 곱셈기에 적용될 때 곱셈기의 전력 소비가 감소될 수 있다.
제4 양태에 따르면, 연산자 회로가 제공되며, 이 연산자 회로는 제1 트랜지스터, 제2 트랜지스터, 제3 트랜지스터, 제4 트랜지스터, 제5 트랜지스터, 제6 트랜지스터, 제7 트랜지스터, 제8 트랜지스터, 제9 트랜지스터, 제10 트랜지스터, 제11 트랜지스터, 제12 트랜지스터, 제13 트랜지스터, 제14 트랜지스터, 제15 트랜지스터, 제16 트랜지스터, 제17 트랜지스터, 제18 트랜지스터, 제19 트랜지스터, 제20 트랜지스터, 제21 트랜지스터, 및 제22 트랜지스터를 포함한다. 제1 트랜지스터 및 제2 트랜지스터는 전원 단자와 제1 노드 사이에 병렬로 결합되고, 제3 트랜지스터는 제1 노드와 제1 출력 단자 사이에 결합되고, 제4 트랜지스터는 제1 출력 단자와 제2 노드 사이에 결합된다. 제5 트랜지스터 및 제6 트랜지스터는 제2 노드와 접지 단자 사이에 병렬로 결합되고, 제7 트랜지스터는 전원 단자와 제3 노드 사이에 결합되고, 제8 트랜지스터는 제3 노드와 제1 출력 단자 사이에 결합되고, 제9 트랜지스터는 제1 출력 단자와 제4 노드 사이에 결합된다. 제10 트랜지스터는 제4 노드와 접지 단자 사이에 결합되고, 제11 트랜지스터 및 제12 트랜지스터는 제3 노드와 제2 출력 단자 사이에 직렬로 결합되고, 제13 트랜지스터 및 제14 트랜지스터는 제2 출력 단자와 제4 노드 사이에 직렬로 결합된다. 제15 트랜지스터, 제16 트랜지스터, 및 제17 트랜지스터는 전원 단자와 제5 노드 사이에 병렬로 결합되고, 제18 트랜지스터는 제5 노드와 제2 출력 단자 사이에 결합되고, 제19 트랜지스터는 제2 출력 단자와 제6 노드 사이에 결합되고, 제20 트랜지스터, 제21 트랜지스터, 및 제22 트랜지스터는 제6 노드와 접지 단자 사이에 병렬로 결합된다. 제3 트랜지스터, 제4 트랜지스터, 제12 트랜지스터, 제13 트랜지스터, 제15 트랜지스터, 및 제20 트랜지스터의 제어 단자들은 제1 입력을 수신하도록 구성된다. 제1 트랜지스터, 제5 트랜지스터, 제7 트랜지스터, 제10 트랜지스터, 제16 트랜지스터, 및 제21 트랜지스터의 제어 단자들은 제2 입력을 수신하도록 구성된다. 제2 트랜지스터, 제6 트랜지스터, 제8 트랜지스터, 제9 트랜지스터, 제11 트랜지스터, 제14 트랜지스터, 제17 트랜지스터, 및 제22 트랜지스터의 제어 단자들은 제3 입력을 수신하도록 구성된다. 제18 트랜지스터 및 제19 트랜지스터의 제어 단자들은 제1 출력 단자에 결합된다. 전술한 기술적 해결책에서, 반전 압축 연산자 회로가 제공된다. 반전 압축 연산자 회로는 소량의 트랜지스터들을 갖고, 작은 면적을 점유하며, 구현하기에 간단하다. 따라서, 연산자 회로가 곱셈기에 적용될 때 곱셈기의 면적이 감소될 수 있다.
제4 양태의 가능한 구현에서, 제1 트랜지스터, 제2 트랜지스터, 제3 트랜지스터, 제7 트랜지스터, 제8 트랜지스터, 제11 트랜지스터, 제12 트랜지스터, 제15 트랜지스터, 제16 트랜지스터, 제17 트랜지스터, 및 제18 트랜지스터는 PMOS 트랜지스터들이다. 제4 트랜지스터, 제5 트랜지스터, 제6 트랜지스터, 제9 트랜지스터, 제10 트랜지스터, 제13 트랜지스터, 제14 트랜지스터, 제19 트랜지스터, 제20 트랜지스터, 제21 트랜지스터, 및 제22 트랜지스터는 NMOS 트랜지스터들이다. 전술한 가능한 구현에서, 제공된 연산자 회로가 데이터를 압축할 때 트랜지스터의 토글 레이트가 작다. 따라서, 연산자 회로가 곱셈기에 적용될 때 곱셈기의 전력 소비가 감소될 수 있다.
제5 양태에 따르면, 곱셈기 또는 연산자 회로를 포함하는 프로세서가 제공된다. 곱셈기는 제1 양태 또는 제1 양태의 가능한 구현들 중 어느 하나에서 제공되는 곱셈기이고, 연산자 회로는 제2 양태 내지 제4 양태 또는 제2 양태 내지 제4 양태의 가능한 구현들 중 어느 하나에서 제공되는 연산자 회로이다. 임의적으로, 프로세서는 신경망 처리 유닛을 포함한다.
제6 양태에 따르면, 곱셈기 또는 연산자 회로를 포함하는 칩이 제공된다. 곱셈기는 제1 양태 또는 제1 양태의 가능한 구현들 중 어느 하나에서 제공되는 곱셈기이고, 연산자 회로는 제2 양태 내지 제4 양태 또는 제2 양태 내지 제4 양태의 가능한 구현들 중 어느 하나에서 제공되는 연산자 회로이다.
위에서 제공된 임의의 프로세서 또는 칩은 위에서 제공된 곱셈기 또는 연산자 회로를 포함한다는 점이 이해될 수 있다. 따라서, 프로세서 또는 칩에 의해 달성될 수 있는 유익한 효과들에 대해서는, 위에서 제공된 곱셈기 또는 연산자 회로의 유익한 효과들을 참조한다. 상세들은 본 명세서에서 다시 설명되지 않는다.
도 1은 종래 기술에 따른 곱셈기의 아키텍처의 도면이다.
도 2는 본 출원의 실시예에 따른 통신 디바이스의 구조의 개략도이다.
도 3은 본 출원의 실시예에 따른 곱셈기의 구조의 개략도이다.
도 4는 본 출원의 실시예에 따른 비-반전 인코더의 논리 블록도이다.
도 5는 본 출원의 실시예에 따른 반전 인코더의 논리 블록도이다.
도 6의 (a) 내지 도 6의 (d)는 본 출원의 실시예에 따른 반전 압축기들의 W개의 층의 압축 예의 도면이다.
도 7은 본 출원의 실시예에 따른 반전 압축기의 논리 블록도이다.
도 8a 내지 도 8f는 본 출원의 실시예에 따른 프리코더들 및 인코더들의 예시적인 도면이다.
도 9는 본 출원의 실시예에 따른 반전 압축기들의 W개의 층의 다른 압축 예의 도면이다.
도 10은 본 출원의 실시예에 따른 비-반전 인코더의 회로도이다.
도 11은 본 출원의 실시예에 따른 반전 인코더의 회로도이다.
도 12는 본 출원의 실시예에 따른 반전 압축기의 회로도이다.
본 출원에서, "적어도 하나"는 하나 이상을 의미하고, "복수의"는 2개 이상을 의미한다. "및/또는"이라는 용어는 연관된 객체들을 설명하기 위한 연관 관계를 기술하고 3개의 관계가 존재할 수 있다는 것을 나타낸다. 예를 들어, A 및/또는 B는 다음의 경우들을 나타낼 수 있다: A만이 존재하고, A와 B 둘 다가 존재하고, B만이 존재하며, 여기서 A와 B는 단수 또는 복수일 수 있다. 이하의 항목들(부분들) 중 적어도 하나 또는 그 유사한 표현은 단일 항목(부분) 또는 복수의 항목들(부분들)의 임의의 조합을 포함하여 이러한 항목들의 임의의 조합을 나타낸다. 예를 들어, a, b 또는 c 중 적어도 하나의 (부분)은 a; b; c; a와 b; a와 c; b와 c; 또는 a, b 및 c를 나타낼 수 있고, 여기서 a, b 및 c는 단수 또는 복수일 수 있다. 또한, 본 출원의 실시예들에서, "제1" 및 "제2"와 같은 단어들은 기본적으로 유사한 명칭들, 기능들 또는 목적들을 갖는 객체들을 구별하는데 사용된다. 본 기술분야의 통상의 기술자는 "제1" 및 "제2"와 같은 단어들이 수량 또는 실행 순서를 제한하지 않는다는 것을 이해할 수 있다. "결합"이라는 용어는 유선 또는 접속 단부를 통한 직접 접속 또는 다른 디바이스를 통한 간접 접속을 포함하는 전기적 접속을 나타내는데 사용된다. 따라서, "결합"은 넓은 의미에서 전자 통신 접속으로서 간주되어야 한다.
도 2는 본 출원의 실시예에 따른 통신 디바이스의 구조의 개략도이다. 통신 디바이스는 단말기, 서버 등일 수 있다. 도 2에 도시된 바와 같이, 통신 디바이스는 메모리(201), 프로세서(202), 통신 인터페이스(203), 및 버스(204)를 포함할 수 있다. 메모리(201), 프로세서(202), 및 통신 인터페이스(203)는 버스(204)를 통해 서로 접속된다. 메모리(201)는 데이터, 소프트웨어 프로그램, 및 모듈을 저장하도록 구성되고, 프로그램 저장 영역 및 데이터 저장 영역을 주로 포함한다. 프로그램 저장 영역은 운영 체제, 적어도 하나의 기능을 위해 요구되는 애플리케이션 프로그램 등을 저장할 수 있다. 데이터 저장 영역은 디바이스가 이용되는 동안 생성되는 데이터 등을 저장할 수 있다. 프로세서(202)는 통신 디바이스의 동작을 제어 및 관리하도록, 예를 들어, 메모리(201)에 저장된 소프트웨어 프로그램 및/또는 모듈을 구동 또는 실행함으로써 그리고 메모리(201)에 저장된 데이터를 호출함으로써 디바이스의 다양한 기능들을 수행하고 데이터를 처리하도록 구성된다. 통신 인터페이스(203)는 디바이스의 통신을 지원하도록 구성된다.
프로세서(202)는 중앙 처리 유닛(Central Processing Unit, CPU), 네트워크 처리 유닛(Network Processing Unit, NPU), 그래픽 처리 유닛(Graphics Processing Unit, GPU), 디지털 신호 프로세서(Digital Signal Processor, DSP), 범용 프로세서 등을 포함하지만, 이들로 제한되지 않는다. 프로세서(202)는 하나 이상의 곱셈기를 포함하고, 예를 들어, 곱셈기 행렬을 포함한다. 곱셈기는 프로세서(202)에서 곱셈 연산을 구현하는 구성요소이다.
버스(204)는 주변 구성요소 상호접속(Peripheral Component Interconnect, PCI) 버스, 확장된 산업 표준 아키텍처(Extended Industry Standard Architecture, EISA) 버스 등일 수 있다. 버스는 어드레스 버스, 데이터 버스, 제어 버스 등으로 분류될 수 있다. 표현의 편의상, 도 2에서 버스를 나타내기 위해 하나의 굵은 선만이 사용되지만, 이것은 하나의 버스 또는 하나의 유형의 버스만이 있다는 것을 의미하지는 않는다.
기술적 해결책들을 추가로 설명하기 위해, 도 3은 본 출원의 실시예에 따른 곱셈기의 구조의 개략도이다. 곱셈기는 M 비트의 제1 값과 N 비트의 제2 값의 곱셈을 구현하도록 구성되고, M과 N은 1보다 큰 정수들이다. 도 3을 참조한다. 곱셈기는 P개의 프리코더(301), 인코더들의 P개의 그룹(302), 반전 압축기들의 W개의 층(303), 및 가산기(304)를 포함한다. 인코더들의 P개의 그룹(302) 내의 인코더들의 각각의 그룹(3021)은 N개의 인코더를 포함하고, W는 양의 정수이며, P는 1보다 큰 정수이다. 종래의 설계와 비교하여, 곱셈기는 구현하기 쉽고, 이하에서 상세히 설명된다.
P개의 프리코더(301) 내의 각각의 프리코더(3011)는 제1 값에서의 비트들의 일부에 기반하여 그룹 선택 신호 및 심볼 제어 입력 신호를 생성하도록 구성되어, P개의 프리코더(301)는 이에 따라 P개의 그룹 선택 신호 및 P개의 심볼 제어 입력 신호를 생성한다. P개의 그룹 선택 신호 및 P개의 심볼 제어 입력 신호는 인코더들의 P개의 그룹과 일대일 대응한다. 즉, 하나의 그룹 선택 신호 및 하나의 심볼 제어 입력 신호가 인코더들의 하나의 그룹에 대응한다. 그룹 선택 신호는 제1 값에서의 2개 또는 3개의 인접 비트에 기반하여 생성될 수 있다. 심볼 제어 입력 신호는 제1 값에서의 1 비트일 수 있거나, 제1 값에서의 2개 또는 3개의 인접 비트에 기반하여 생성될 수 있다.
예를 들어, 제1 값이 4 비트 이진 숫자이고 a[3:0]으로 표시되고, P가 2와 동일한 경우, 2개의 프리코더가 a[3:0]에 기반하여 2개의 그룹 선택 신호 및 2개의 심볼 제어 입력 신호를 생성할 수 있다. 2개의 그룹 선택 신호에서, 제1 그룹 선택 신호는 a[0] 및 a[1]에 기반하여 생성될 수 있고, 제2 그룹 선택 신호는 a[1] 내지 a[3]에 기반하여 생성될 수 있다. 2개의 심볼 제어 입력 신호에서, 제1 심볼 제어 입력 신호는 a[1]일 수 있고, 제2 심볼 제어 입력 신호는 a[3]일 수 있다. a[i]는 a[3:0]에서 우측으로부터 좌측으로의 i번째 비트를 나타내고, i의 값은 0 내지 3의 범위에 있다.
인코더들의 각각의 그룹(3021)은 비-반전 인코딩 연산자들 또는 반전 인코딩 연산자들을 이용함으로써 제2 값, 및 인코더들의 그룹에 대응하는 그룹 선택 신호 및 심볼 제어 입력 신호를 인코딩하여 하나의 부분 곱을 획득하도록 구성된다. 인코더들의 P개의 그룹은 인코딩을 수행하여 P개의 부분 곱을 획득한다.
인코더들의 각각의 그룹(3021)은 N개의 인코더를 포함하고, N개의 인코더의 각각의 인코더는 제2 값에서의 제1 비트 및 제2 비트에 대응하고, 그룹 선택 신호는 제1 신호 및 제2 신호를 포함한다. 각각의 인코더는 비-반전 인코딩 연산자 또는 반전 인코딩 연산자를 이용함으로써 제1 비트, 제2 비트, 그룹 선택 신호, 및 심볼 제어 입력 신호를 인코딩하여, 하나의 부분 곱에서 하나의 출력 비트를 획득하도록 구체적으로 구성된다. 인코더들의 각각의 그룹(3021) 내의 N개의 인코더 각각은 인코딩을 수행하여 하나의 부분 곱에서 N개의 출력 비트를 획득하며, 즉, 부분 곱을 획득한다. 제1 비트 및 제2 비트는 제2 값에서의 2개의 인접 비트, 또는 제2 값에서의 동일한 비트일 수 있다. 이하의 실시예들은 이를 상세히 설명할 수 있다.
예를 들어, 제2 값이 3 비트 이진 숫자이고 b[2:0]으로 표시되고, N이 3과 동일한 경우, 인코더들의 각각의 그룹(3021)은 3개의 인코더를 포함한다. 3개의 인코더 중에서, 제1 인코더는 b[2:0]에서 2개의 인접 비트 b[0] 및 b[1]에 대응하고, 제2 인코더는 b[2:0]에서 2개의 인접 비트 b[1] 및 b[2]에 대응하고, 제3 인코더에 대응하는 제1 비트 및 제2 비트 둘 다는 b[2:0]에서 b[2]이고, 즉, 하나의 비트 b[2]만이 제1 비트 및 제2 비트 둘 다로서 마지막 제3 인코더에 입력된다. b[i]는 b[2:0]에서 우측으로부터 좌측으로의 i번째 비트를 나타낸다.
제1 값이 a[3:0]이고 제2 값이 b[2:0]인 전술한 예가 예시로서 이용된다: 제1 인코딩 그룹 내의 제1 인코더가 제2 값 b[2:0]에서의 2개의 인접 비트 b[0] 및 b[1]에 대응하고, 대응하는 그룹 선택 신호가 a[0] 및 a[1]에 기반하여 생성된 제1 그룹 선택 신호(A 및 B로 표시됨)이고, 대응하는 심볼 제어 입력 신호가 a[1]인 경우, 제1 인코더는 비-반전 인코딩 연산자 또는 반전 인코딩 연산자를 이용함으로써 b[0], b[1], A, B, 및 a[1]을 인코딩하여, 제1 부분 곱에서 하나의 출력 비트를 획득하도록 구체적으로 구성될 수 있다.
구체적으로는, 인코더가 비-반전 인코딩 연산자를 이용할 때, 인코더는 비-반전 인코더라고 할 수 있다. 인코더가 반전 인코딩 연산자를 이용할 때, 인코더는 반전 인코더라고 할 수 있다. 이하에서는 비-반전 인코더 및 반전 인코더를 상세히 개별적으로 설명한다.
비-반전 인코더는 다음과 같은 인코딩 연산을 수행하도록 구체적으로 구성된다: 제1 신호 및 제1 비트 둘 다가 1이거나, 제2 신호 및 제2 비트 둘 다가 1인 경우, 비-반전 인코더에 의해 획득된 출력 비트는 심볼 제어 입력 신호의 반전이다. 대안적으로, 제1 신호 및 제1 비트 중 적어도 하나가 0이고, 제2 신호 및 제2 비트 중 적어도 하나가 0인 경우, 비-반전 인코더에 의해 획득된 출력 비트는 심볼 제어 입력 신호이다.
도 4는 본 출원의 실시예에 따른 비-반전 인코더의 논리 블록도이다. 논리 블록도는 인코딩 게이팅 유닛, 반전 유닛 및 스위치 제어 유닛을 포함한다. 인코딩 게이팅 유닛의 기능은 A와 Sel_A가 둘 다 1인 경우 또는 B와 Sel_B가 둘 다 1인 경우 1을 출력하고, 그렇지 않은 경우 0을 출력하는 것이다. 반전 유닛의 기능은 인코딩 게이팅 유닛의 출력에 대해 반전을 수행하는 것이다. 스위치 제어 유닛의 기능은 반전 유닛의 출력이 1인 경우 S를 출력하거나, 또는 반전 유닛의 출력이 0인 경우 /S를 출력하는 것이다. 도 4에서, A는 제1 신호를 나타내고, B는 제2 신호를 나타내고, Sel_A는 제1 비트를 나타내고, Sel_B는 제2 비트를 나타내고, S는 심볼 제어 입력 신호를 나타내고, /S는 심볼 제어 입력 신호의 반전을 나타내고, OUT는 출력 비트를 나타낸다.
즉, 비-반전 인코더는 이하의 표 1에 도시된 논리표에 기반하여 인코딩을 구체적으로 수행할 수 있고, 여기서 표 1에서의 x는 "0" 또는 "1" 중 어느 하나를 나타내고, A, B, Sel_A, Sel_B, S, 및 OUT는 도 4에서의 A, B, Sel_A, Sel_B, S, 및 OUT와 일치한다.
<표 1>
Figure pct00001
반전 인코더는 다음과 같은 인코딩 연산을 수행하도록 구체적으로 구성된다: 제1 신호 및 제1 비트 둘 다가 1이거나, 제2 신호 및 제2 비트 둘 다가 1인 경우, 반전 인코더에 의해 획득된 출력 비트는 심볼 제어 입력 신호이다. 대안적으로, 제1 신호 및 제1 비트 중 적어도 하나가 0이고, 제2 신호 및 제2 비트 중 적어도 하나가 0인 경우, 반전 인코더에 의해 획득된 출력 비트는 심볼 제어 입력 신호의 반전이다.
도 5는 본 출원의 실시예에 따른 반전 인코더의 논리 블록도이다. 논리 블록도는 인코딩 게이팅 유닛, 반전 유닛, 및 스위치 제어 유닛을 포함한다. 인코딩 게이팅 유닛의 기능은 A와 Sel_A가 둘 다 1인 경우 또는 B와 Sel_B가 둘 다 1인 경우 1을 출력하는 것이고, 그렇지 않은 경우 0을 출력하는 것이다. 반전 유닛의 기능은 인코딩 게이팅 유닛의 출력에 대해 반전을 수행하는 것이다. 스위치 제어 유닛의 기능은 반전 유닛의 출력이 0인 경우 S를 출력하거나, 또는 반전 유닛의 출력이 1인 경우 /S를 출력하는 것이다. 도 5에서, A는 제1 신호를 나타내고, B는 제2 신호를 나타내고, Sel_A는 제1 비트를 나타내고, Sel_B는 제2 비트를 나타내고, S는 심볼 제어 입력 신호를 나타내고, /S는 심볼 제어 입력 신호의 반전을 나타내고, OUT는 출력 비트를 나타낸다.
즉, 반전 인코더는 이하의 표 2에 도시된 논리표에 기반하여 인코딩을 구체적으로 수행할 수 있고, 여기서 표 2에서의 x는 "0" 또는 "1" 중 어느 하나를 나타내고, A, B, Sel_A, Sel_B, S, 및 OUT는 도 5에서의 A, B, Sel_A, Sel_B, S, 및 OUT와 일치한다.
<표 2>
Figure pct00002
반전 압축기들의 W개의 층(303)은 반전 압축 연산자들을 이용함으로써 P개의 부분 곱을 압축하여 2개의 누산된 값을 획득하도록 구성된다.
구체적으로, W가 1일 때, 반전 압축기들의 W개의 층(303)은 반전 압축기들의 첫번째 층을 포함하고, 반전 압축기들의 첫번째 층은, 각각의 자리 가중치에 대응하는 남아 있는 비트들의 양이 3 미만일 때까지 반전 압축 연산자들을 낮은 자리 가중치로부터 높은 자리 가중치로 순차적으로 이용함으로써 P개의 부분 곱의 행렬에서의 각각의 자리 가중치를 압축하여, 2개의 행을 포함하는 제1 압축된 행렬을 획득하도록 구성되고, 각각의 행은 하나의 누산된 값에 대응한다. 구체적으로, W가 1보다 큰 정수일 때, 반전 압축기들의 W개의 층(303)은 반전 압축기들의 첫번째 층 내지 반전 압축기들의 W번째 층을 포함한다. 반전 압축기들의 첫번째 층은, 각각의 자리 가중치에 대응하는 남아 있는 비트들의 양이 3 미만일 때까지 반전 압축 연산자들을 낮은 자리 가중치로부터 높은 자리 가중치로 순차적으로 이용함으로써 P개의 부분 곱의 행렬에서의 각각의 자리 가중치를 압축하여 제1 압축된 행렬을 획득하도록 구성된다. 반전 압축기들의 i번째 층은, 각각의 자리 가중치에 대응하는 남아 있는 비트들의 양이 3 미만일 때까지 반전 압축 연산자들을 낮은 자리 가중치로부터 높은 자리 가중치로 순차적으로 이용함으로써 (i-1)번째 압축된 행렬에서의 각각의 자리 가중치를 압축하여 i번째 압축된 행렬을 획득하도록 구성되고, i의 값은 2 내지 W의 범위이다. W번째 압축된 행렬은 2개의 행을 포함하고, 각각의 행은 하나의 누산된 값에 대응한다.
반전 압축기들의 각각의 층에 의한 각각의 자리 가중치에 대한 압축은 자리 가중치에 대한 3 비트에 대해 수행되고, 반전 압축기들의 층에 의한 압축을 통해 획득되는 출력 캐리 비트 및 현재 합 비트는 압축되지 않는다. P개의 부분 곱의 행렬에서, 각각의 행은 하나의 부분 곱을 포함하고, 각각의 열은 P개의 부분 곱에서 동일한 자리 가중치에 대응하는 복수의 비트를 포함하고, 각각의 자리 가중치에 대한 압축은 자리 가중치에 대한 3 비트에 대해 수행된다. P개의 부분 곱의 행렬에서, 각각의 행은 하나의 부분 곱을 포함하고, 각각의 열은 P개의 부분 곱에서 동일한 자리 가중치에 대응하는 복수의 비트를 포함한다.
예를 들어, 인코더들의 P개의 그룹이 인코딩을 수행하여 8개의 부분 곱을 획득하고, 각각의 부분 곱이 16 비트를 포함한다고 가정된다. 이 경우에, 8개의 부분 곱의 행렬이 도 6의 (a)에 도시될 수 있고, 여기서 PP[1] 내지 PP[8]은 8개의 부분 곱을 나타내고, 20, 21, 21, ..., 및 232는 상이한 자리 가중치들을 나타낸다. 자리 가중치는 반전 압축기들의 W개의 층의 출력 결과에 대한 것이다. 십진법에서의 1 비트, 10 비트, 또는 100 비트와 유사하게, 자리 가중치는 출력 결과의 이진 값에서 1 비트를 나타내는데 이용된다. 예를 들어, 반전 압축기들의 W개의 층의 출력 결과가 32 비트 이진 값이면, 출력 결과는 32개의 자리 가중치를 포함한다. 자리 가중치와는 반대로, 비트는 0 또는 1에 대응하고, 이진 정보의 한 부분을 나타낸다. 한 자리 가중치는 반전 압축기들의 W개의 층의 출력 결과에서의 1 비트인 것으로 고려될 수 있다.
이해의 편의를 위해, 도 6의 (a)에서 변환된 도 6의 (b)에 도시된 바와 같이, 반전 압축기들의 W개의 층(303)의 각각의 층의 압축 프로세스를 예를 들어 설명한다. 구체적으로, 출력 결과는 32개의 자리 가중치를 포함하고, 반전 압축기들의 첫번째 층은 다음과 같이 구체적으로 구성된다: 매 3 비트마다 압축하고 행렬에서 24 내지 229의 각각의 자리 가중치에 대응하는 비트들에 대해 그 양이 3 미만인 비트들을 예비하고, 24 내지 229 이외의 다른 자리 가중치들에 대응하는 비트들에 대해 그 양이 3 미만인 비트들을 예비한다. 도 6의 (b)에서의 각각의 실선 직사각형 상자는 반전 압축기들의 첫번째 층에서의 하나의 반전 압축기를 나타내는데 이용될 수 있다. 반전 압축기들의 첫번째 층에 의한 압축을 통해 획득된 제1 압축된 행렬이 도 6의 (c)에 도시되어 있다. 이 도면에서,
Figure pct00003
는 반전 압축기들의 첫번째 층들에 의해 출력되는 현재 출력 합 비트를 나타내고,
Figure pct00004
는 반전 압축기들의 첫번째 층에 의해 출력되는 출력 캐리 비트를 나타낸다. 반전 압축기들의 두번째 층은 다음과 같이 구체적으로 구성된다: 매 3 비트마다 압축하고 제1 압축된 행렬에서 26 내지 223 및 226의 각각의 자리 가중치에 대응하는 비트들에 대해 그 양이 3 미만인 비트들을 예비하고, 26 내지 223 및 226 이외의 다른 자리 가중치들에 대응하는 비트들에 대해 그 양이 3 미만인 비트들을 예비한다. 도 6의 (c)에서의 각각의 직사각형 상자는 반전 압축기들의 두번째 층에서의 하나의 반전 압축기를 나타내는데 이용될 수 있다. 반전 압축기들의 두번째 층에 의한 압축을 통해 획득된 제2 압축된 행렬이 도 6의 (d)에 도시되어 있다. 이 도면에서,
Figure pct00005
는 반전 압축기들의 두번째 층에 의해 출력되는 현재 출력 합 비트를 나타내고,
Figure pct00006
는 반전 압축기들의 두번째 층에 의해 출력되는 출력 캐리 비트를 나타낸다. 반전 압축기들의 세번째 층 내지 반전 압축기들의 W번째 층의 후속 특정 압축 프로세스들은 반전 압축기들의 첫번째 층 및 반전 압축기들의 두번째 층의 특정 압축 프로세스들과 유사하다. 본 출원의 이 실시예에서의 상세들은 본 명세서에서 다시 설명되지 않는다.
각각의 자리 가중치에 대한 매 3 비트에 대해, 각각의 반전 압축기는 다음과 같은 압축을 수행하도록 구체적으로 구성된다: 3 비트가 모두 0이면, 출력 캐리 비트는 1이고, 현재 출력 합 비트는 1이고; 3 비트가 모두 1이면, 출력 캐리 비트는 0이고, 현재 출력 합 비트는 0이고; 3 비트 중 하나가 1이고 다른 2개의 비트가 0이면, 출력 캐리 비트는 1이고, 현재 출력 합 비트는 0이거나; 또는 3 비트 중 2개가 1이고 다른 비트가 0이면, 출력 캐리 비트는 0이고, 현재 출력 합 비트는 1이다.
출력 캐리 비트는 현재 압축된 자리 가중치의 다음 자리 가중치를 가리키는 출력 비트이고, 현재 출력 합 비트는 현재 압축된 자리 가중치의 압축을 통해 획득된 출력 비트이다. 예를 들어, 현재 압축된 자리 가중치는 25이고, 현재 압축된 자리 가중치의 다음 자리 가중치는 26인 것으로 가정된다. 25에 대한 3 비트가 모두 0이면, 25에 대한 압축을 통해 하나의 1이 생성되고, 26에 대해서는 하나의 1이 생성된다.
도 7은 본 출원의 실시예에 따른 반전 압축기의 논리 블록도이다. 논리 블록도는 반전 캐리 출력 유닛 및 반전 합 출력 유닛을 포함한다. 반전 캐리 출력 유닛의 기능은 다음과 같다: Ai, Bi, 및 Ci 중 적어도 2개가 유효하다면(1 또는 0이 유효할 수 있다면), 무효를 출력하고(1이 유효하다면, 0이 무효이거나; 또는 0이 유효하다면, 1이 무효이고); 그렇지 않으면 유효를 출력한다. 반전 합 출력 유닛의 기능은 다음과 같다: Ai, Bi 및 Ci 중 2개가 유효하거나 모두가 무효이면, 유효를 출력하고; 그렇지 않으면 무효를 출력한다. 반전 합 출력 유닛 내에 입력된 nCip1이 유효할 때, 이는 Ai, Bi, 및 Ci 중 2개가 유효한지 또는 Ai, Bi, 및 Ci 모두가 무효한지를 구분하는데 이용될 수 있다. 도 7에서의 Ai, Bi, 및 Ci는 3개의 입력 비트를 나타내고, nCip1은 출력 캐리 비트를 나타내고, nSi는 현재 출력 합 비트를 나타낸다. 즉, 반전 압축기들의 각각의 층은 이하의 표 3에 도시된 논리표에 기반하여 압축을 구체적으로 수행할 수 있고, 여기서, 표 3에서의 Ai, Bi, 및 Ci는 3개의 입력 비트를 나타내고, nCip1은 출력 캐리 비트를 나타내고, nSi는 현재 출력 합 비트를 나타낸다.
<표 3>
Figure pct00007
또한, 곱셈기는, 반전 압축기들의 W개의 층(303)에서 하나 이상의 반전 압축기에 의해 출력되는 현재 출력 합 비트와 출력 캐리 비트의 위상들을 반전시키거나, 하나 이상의 반전 압축기에 입력되는 3 비트 중 적어도 하나의 비트의 위상을 반전시키도록 구성된 하나 이상의 인버터를 추가로 포함할 수 있다.
반전 압축기들의 W개의 층(303)은 반전 압축기들의 복수의 층을 포함할 수 있고, 반전 압축기들의 복수의 층의 각각의 층은 적어도 하나의 반전 압축기를 포함할 수 있다. 각각의 반전 압축기의 출력 위상은 요건에 기반하여 설정될 수 있고, 각각의 반전 압축기의 출력 위상은 입력 위상과 반대이며, 이에 의해 각각의 반전 압축기의 입력 위상이 또한 설정된다.
반전 압축기의 출력 위상은 반전 압축기에 의해 출력되는 현재 출력 합 비트와 출력 캐리 비트의 위상들일 수 있고, 현재 출력 합 비트와 출력 캐리 비트의 위상들이 동일하다는 점, 즉, 둘 다 양 또는 음이라는 점에 유의해야 한다. 반전 압축기의 입력 위상은 반전 압축기에 입력되는 3 비트의 구성된 위상들일 수 있고, 3 비트의 구성된 위상들은 동일하며, 즉, 모두 양 또는 음이다.
반전 압축기들의 W개의 층(303) 내의 하나 이상의 반전 압축기의 출력 위상이 구성된 출력 위상과 상이할 때, 하나 이상의 인버터는 하나 이상의 반전 압축기에 의해 출력되는 현재 출력 합 비트와 출력 캐리 비트의 위상들을 반전시켜, 그 위상들이 구성된 출력 위상과 일치하게 되도록 구성된다. 유사하게, 하나 이상의 반전 압축기에 입력되는 3 비트 중 적어도 하나의 비트의 위상이 구성된 입력 위상과 상이할 때, 하나 이상의 인버터는 하나 이상의 반전 압축기에 입력되는 3 비트 중 적어도 하나의 비트의 위상을 반전시켜, 그 위상이 구성된 입력 위상과 일치하게 되도록 구성된다.
가능한 구현에서, 반전 압축기들의 각각의 층에 포함된 적어도 하나의 반전 압축기의 출력 위상은 다음과 같은 방식으로 설정될 수 있다: 반전 압축기들의 첫번째 층의 출력 위상이 설정될 때까지, 반전 압축기들의 마지막 층의 출력 위상이 양으로 설정되고, 반전 압축기들의 두번째 내지 마지막 층의 출력 위상이 음으로 설정되고, 반전 압축기들의 세번째 내지 마지막 층의 출력 위상이 양으로 설정되는 식이다. 본 명세서에서 반전 압축기들의 첫번째 층은 하향식 순서로 각각의 자리 가중치에 대응하는 복수의 비트를 압축하는 반전 압축기들의 최상위 층을 지칭할 수 있고, 반전 압축기들의 두번째 층은 반전 압축기들의 다음 상위 층을 지칭할 수 있고, 다른 것들에 대해서도 그런 식이다. 예를 들어, 반전 압축기들의 W개의 층(303)이 반전 압축기들의 4개의 층을 포함하는 경우, 출력 위상은 다음과 같은 방식으로 설정될 수 있다: 반전 압축기들의 네번째 층의 출력 위상은 양으로 설정되고, 반전 압축기들의 세번째 층의 출력 위상은 음으로 설정되고, 반전 압축기들의 두번째 층의 출력 위상은 양으로 설정되고, 반전 압축기들의 첫번째 층의 출력 위상은 음으로 설정된다.
임의적으로, 반전 압축기의 출력 위상이 구성된 출력 위상과 불일치하거나, 반전 압축기의 입력 위상이 구성된 입력 위상과 불일치할 때, 그리고 적어도 3개의 인버터가 구성된 출력 위상 및 구성된 입력 위상의 요건들을 충족시키기 위해 반전을 수행할 필요가 있을 때, 반전 압축기의 출력 위상의 설정은 요구되는 인버터들의 양을 감소시키도록 부분적으로 조정될 수 있다. 예를 들어, 반전 압축기의 설정된 출력 위상이 양일 때(이 경우, 반전 압축기의 입력 위상은 음임), 반전 압축기의 출력 위상이 양이고, 반전 압축기에 입력되는 3 비트의 위상들이 또한 양인 경우, 반전 압축기는 구성된 출력 위상 및 구성된 입력 위상의 요건들이 충족될 수 있도록 3 비트의 위상들을 반전시키는데 3개의 인버터를 필요로 한다. 이 경우, 반전 압축기의 출력 위상을 음으로 리셋함으로써(이 경우, 반전 압축기의 입력 위상은 양임), 반전 압축기는 구성된 출력 위상 및 구성된 입력 위상의 요건들이 충족될 수 있도록 2개의 출력 비트(즉, 현재 출력 합 비트 및 출력 캐리 비트)의 출력 위상들을 반전시키는데 2개의 인버터만을 필요로 한다.
또한, 인코더들의 P개의 그룹(302) 내의 적어도 하나의 인코더에 의해 이용되는 인코딩 연산자의 위상은, 반전 압축기들의 W개의 층(303) 내의 반전 압축기들의 적어도 하나의 층에 의해 출력되는 현재 출력 합 비트 또는 출력 캐리 비트의 위상과 관련된다. 임의적으로, 적어도 하나의 인코더 각각에 의해 이용되는 인코딩 연산자의 위상은 인코더에 접속된 반전 압축기의 입력 위상과 동일하게 설정된다. 각각의 인코더에 의해 이용되는 인코딩 연산자의 위상은 양 또는 음일 수 있다. 인코더에 의해 이용되는 인코딩 연산자의 위상이 양일 때(즉, 비-반전 인코딩 연산자가 이용될 때), 인코더는 비-반전 인코더일 수 있다. 인코더에 의해 이용되는 인코딩 연산자의 위상이 음일 때(즉, 반전 인코딩 연산자가 이용될 때), 인코더는 반전 인코더일 수 있다.
가산기(304)는 2개의 누산된 값을 수신하고, 2개의 누산된 값을 합산하여 곱을 획득하도록 구성된다. 반전 압축기들의 W개의 층(303)이 P개의 부분 곱을 압축하여 2개의 누산된 값을 획득한 후에, 반전 압축기들의 W개의 층(303)은 2개의 누산된 값을 가산기(304)에 전송할 수 있다. 2개의 누산된 값을 수신할 때, 가산기(304)는 2개의 누산된 값을 합산하여 제1 값과 제2 값의 곱을 획득한다.
이해의 편의를 위해, 이하에서는 제1 값이 a[10:0]이고 제2 값이 b[12:0]인 예를 이용하여 본 출원에서의 곱셈기를 설명한다. 도 8a 내지 도 8f에 도시된 바와 같이, 곱셈기는 6개의 프리코더, 6개의 인코더 그룹, 및 3개의 반전 압축기 층을 포함할 수 있다.
구체적으로, 제1 프리코더는 a[0] 및 a[1]에 기반하여 그룹 선택 신호들(S0 및 S1) 및 심볼 제어 입력 신호(a[1])를 생성하도록 구성된다. 제2 프리코더는 a[1], a[2], 및 a[3]에 기반하여 그룹 선택 신호들(S2 및 S3) 및 심볼 제어 입력 신호(a[3])를 생성하도록 구성된다. 제3 프리코더는 a[3], a[4], 및 a[5]에 기반하여 그룹 선택 신호들(S4 및 S5) 및 심볼 제어 입력 신호(a[5])를 생성하도록 구성된다. 제4 프리코더는 a[5], a[6], 및 a[7]에 기반하여 그룹 선택 신호들(S6 및 S7) 및 심볼 제어 입력 신호(a[7])를 생성하도록 구성된다. 제5 프리코더는 a[7], a[8], 및 a[9]에 기반하여 그룹 선택 신호들(S8 및 S9) 및 심볼 제어 입력 신호(a[9])를 생성하도록 구성된다. 제6 프리코더는 a[9] 및 a[10]에 기반하여 그룹 선택 신호(S10) 및 심볼 제어 입력 신호(S_11)를 생성하도록 구성된다. 이에 대응하여, 제1 그룹의 인코더들은 b[12:0], S0, S1, 및 a[1]을 인코딩하여 제1 부분 곱(PP[1])을 획득하도록 구성된다. 제2 그룹의 인코더들은 b[12:0], S2, S3, 및 a[3]을 인코딩하여 제2 부분 곱(PP[2])을 획득하도록 구성된다. 제3 그룹의 인코더들은 b[12:0], S4, S5, 및 a[5]를 인코딩하여 제3 부분 곱(PP[3])을 획득하도록 구성된다. 제4 그룹의 인코더들은 b[12:0], S6, S7, 및 a[7]을 인코딩하여 제4 부분 곱(PP[4])을 획득하도록 구성된다. 제5 그룹의 인코더들은 b[12:0], S8, S9, 및 a[9]를 인코딩하여 제5 부분 곱(PP[5])을 획득하도록 구성된다. 제6 그룹의 인코더들은 b[12:0], S10, 및 S_11을 인코딩하여 제6 부분 곱(PP[6])을 획득하도록 구성된다. 인코더들의 각각의 그룹 내의 각각의 인코더는 b[12:0]에서의 1 비트 또는 2 비트, 대응하는 그룹 선택 신호, 및 대응하는 심볼 제어 입력 신호를 인코딩하도록 개별적으로 구성된다. 상세들에 대해서는, 도 8a 내지 도 8f를 참조한다. 마지막으로, 6개의 부분 곱(PP[1] 내지 PP[6])에 대응하는 행렬이 도 9에 도시될 수 있다. 곱셈기 내의 반전 압축기들의 W개의 층(303)의 관련 설명들에 따르면, 도 9에 도시된 행렬은 반전 압축기들의 3개의 층에 의해 압축될 수 있다. 상세한 압축 프로세스는 도 6의 (a) 내지 도 6의 (d)에서의 관련 설명들과 유사하고, 본 출원의 이 실시예에서의 상세들은 본 명세서에서 다시 설명되지 않는다.
본 출원의 이 실시예에서 제공되는 곱셈기에서, P개의 프리코더는 상이한 구조들을 갖는 프리코더들을 포함할 수 있다. 예를 들어, 도 8a 내지 도 8f에서, 제1 프리코더는 NOT 게이트 및 AND 게이트를 포함하고, 제2 프리코더 내지 제5 프리코더는 각각 XOR 게이트, XNOR 게이트, 및 NOR 게이트를 포함하고, 제6 프리코더는 XOR 게이트 및 AND 게이트를 포함한다. 또한, 본 출원의 이 실시예에서, 제1 인코더는 동일한 그룹의 인코더들 내의 다른 인코더의 구조와 상이한 구조를 가질 수 있고, 상이한 그룹들에서의 인코더들의 구조들이 또한 상이할 수 있다. 예를 들어, 도 8a 내지 도 8e에서의 인코더들의 제1 그룹 내지 제5 그룹에서, 제1 인코더는 AND 게이트 및 XOR 게이트를 포함하고, 제2 인코더 내지 제13 인코더 각각은 비-반전 인코더 또는 반전 인코더이다. 도 8f에서의 인코더들의 제6 그룹 내의 각각의 인코더는 AND 게이트 및 XNOR 게이트를 포함한다.
도 8a 내지 도 8f에서의 PP[1]_i(i의 값은 1 내지 14의 범위임)는 제1 부분 곱 PP[1]에서 i번째 비트를 나타내고, A는 제1 신호를 나타내고, B는 제2 신호를 나타내고, Sel_A는 제1 비트를 나타내고, Sel_B는 제2 비트를 나타내고, S는 심볼 제어 입력 신호를 나타내고, OUT는 출력 비트를 나타낸다는 점에 유의해야 한다.
도 10은 본 출원의 실시예에 따른 비-반전 인코딩 연산자 회로의 구조의 개략도이다. 비-반전 인코딩 연산자 회로는 비-반전 인코더로도 지칭될 수 있다. 비-반전 인코더는 제1 트랜지스터(M1), 제2 트랜지스터(M2), 제3 트랜지스터(M3), 제4 트랜지스터(M4), 제5 트랜지스터(M5), 제6 트랜지스터(M6), 제7 트랜지스터(M7), 제8 트랜지스터(M8), 제9 트랜지스터(M9), 제10 트랜지스터(M10), 제11 트랜지스터(M11), 제12 트랜지스터(M12), 제13 트랜지스터(M13), 제14 트랜지스터(M14) 및 제15 트랜지스터(M15)를 포함한다.
제1 트랜지스터(M1) 및 제2 트랜지스터(M2)는 전원 단자와 제1 노드(①) 사이에 병렬로 결합되고, 제3 트랜지스터(M3) 및 제4 트랜지스터(M4)는 제1 노드(①)와 제2 노드(②) 사이에 병렬로 결합되고, 제5 트랜지스터(M5) 및 제7 트랜지스터(M7)는 제2 노드(②)와 접지 단자 사이에 직렬로 결합되고, 제6 트랜지스터(M6) 및 제8 트랜지스터(M8)는 제2 노드(②)와 접지 단자 사이에 직렬로 결합된다. 제3 트랜지스터(M3) 및 제5 트랜지스터(M5)의 제어 단자들은 제1 입력(A)을 수신하도록 구성되고, 제1 트랜지스터(M1) 및 제6 트랜지스터(M6)의 제어 단자들은 제2 입력(Sel_A)을 수신하도록 구성되고, 제4 트랜지스터(M4) 및 제7 트랜지스터(M7)의 제어 단자들은 제3 입력(B)을 수신하도록 구성되고, 제2 트랜지스터(M2) 및 제8 트랜지스터(M8)의 제어 단자들은 제4 입력(Sel_B)을 수신하도록 구성된다.
제9 트랜지스터(M9)는 제5 입력(S)의 반전(/S)과 출력 단자(OUT) 사이에 결합되고, 제9 트랜지스터(M9)의 제어 단자는 제2 노드(②)에 결합되고, 제2 노드(②)의 신호는 /Y이다. 제10 트랜지스터(M10)는 제2 노드(②)와 출력 단자(OUT) 사이에 결합되고, 제10 트랜지스터(M10)의 제어 단자는 제5 입력(S)의 반전(/S)에 결합된다. 제11 트랜지스터(M11) 및 제13 트랜지스터(M13)는 출력 단자(OUT)와 접지 단자 사이에 직렬로 결합된다. 제11 트랜지스터(M11)의 제어 단자는 제2 노드(②)에 결합된다. 제13 트랜지스터(M13)의 제어 단자는 제5 입력(S)의 반전(/S)을 수신하도록 구성된다. 제12 트랜지스터(M12)는 출력 단자(OUT)와 제2 노드(②) 사이에 결합되고, 제12 트랜지스터(M12)의 제어 단자는 제5 입력(S)을 수신하도록 구성된다. 제14 트랜지스터(M14) 및 제15 트랜지스터(M15)는 전원 단자와 접지 단자 사이에 직렬로 결합되고, 제14 트랜지스터(M14)와 제15 트랜지스터(M15) 사이의 직렬 결합된 노드는 제5 입력(S)의 반전(/S)에 결합된다. 제14 트랜지스터(M14) 및 제15 트랜지스터(M15)의 제어 단자들은 제5 입력(S)을 수신하도록 구성된다.
본 출원의 이 실시예에서, 제1 입력(A) 내지 제5 입력(S)은 각각, 곱셈기의 전술한 실시예에서의 비-반전 인코더의 관련 설명들에서의 제1 신호, 제1 비트, 제2 신호, 제2 비트, 및 심볼 제어 입력 신호일 수 있다.
임의적으로, 제1 트랜지스터(M1), 제2 트랜지스터(M2), 제3 트랜지스터(M3), 제4 트랜지스터(M4), 제9 트랜지스터(M9), 제10 트랜지스터(M10), 및 제14 트랜지스터(M14)는 PMOS 트랜지스터들이다. 제5 트랜지스터(M5), 제6 트랜지스터(M6), 제7 트랜지스터(M7), 제8 트랜지스터(M8), 제11 트랜지스터(M11), 제12 트랜지스터(M12), 제13 트랜지스터(M13), 및 제15 트랜지스터(M15)는 NMOS 트랜지스터들이다. 이에 대응하여, 제어 단자는 대응하는 PMOS 트랜지스터 또는 NMOS 트랜지스터의 게이트를 구체적으로 지칭할 수 있다.
전술한 예들에서의 제1 트랜지스터(M1) 내지 제15 트랜지스터(M15)는 MOS 트랜지스터들일 수 있거나, 양극성 접합 트랜지스터들로 대체될 수 있다는 점에 유의해야 한다. 도 10에 도시된 트랜지스터들의 유형들은 단지 예들이고, 본 출원의 실시예들에 대한 제한을 구성하지 않는다.
도 11은 본 출원의 실시예에 따른 반전 인코딩 연산자 회로의 구조의 개략도이다. 반전 인코딩 연산자 회로는 반전 인코더로도 지칭될 수 있다. 반전 인코더는 제1 트랜지스터(M1), 제2 트랜지스터(M2), 제3 트랜지스터(M3), 제4 트랜지스터(M4), 제5 트랜지스터(M5), 제6 트랜지스터(M6), 제7 트랜지스터(M7), 제8 트랜지스터(M8), 제9 트랜지스터(M9), 제10 트랜지스터(M10), 제11 트랜지스터(M11), 제12 트랜지스터(M12), 제13 트랜지스터(M13), 제14 트랜지스터(M14) 및 제15 트랜지스터(M15)를 포함한다.
제1 트랜지스터(M1) 및 제2 트랜지스터(M2)는 전원 단자와 제1 노드(①) 사이에 병렬로 결합되고, 제3 트랜지스터(M3) 및 제4 트랜지스터(M4)는 제1 노드(①)와 제2 노드(②) 사이에 병렬로 결합되고, 제5 트랜지스터(M5) 및 제7 트랜지스터(M7)는 제2 노드(②)와 접지 단자 사이에 직렬로 결합되고, 제6 트랜지스터(M6) 및 제8 트랜지스터(M8)는 제2 노드(②)와 접지 단자 사이에 직렬로 결합된다. 제3 트랜지스터(M3) 및 제5 트랜지스터(M5)의 제어 단자들은 제1 입력(A)을 수신하도록 구성되고, 제1 트랜지스터(M1) 및 제6 트랜지스터(M6)의 제어 단자들은 제2 입력(Sel_A)을 수신하도록 구성되고, 제4 트랜지스터(M4) 및 제7 트랜지스터(M7)의 제어 단자들은 제3 입력(B)을 수신하도록 구성되고, 제2 트랜지스터(M2) 및 제8 트랜지스터(M8)의 제어 단자들은 제4 입력(Sel_B)을 수신하도록 구성된다.
제9 트랜지스터(M9) 및 제10 트랜지스터(M10)는 전원 단자와 출력 단자(OUT) 사이에 직렬로 결합되고, 제9 트랜지스터(M9)의 제어 단자는 제5 입력(S)의 반전(/S)에 결합되고, 제10 트랜지스터(M10)의 제어 단자는 제2 노드(②)에 결합되고, 제2 노드(②)의 신호는 /Y이다. 제11 트랜지스터(M11)는 제2 노드(②)와 출력 단자(OUT) 사이에 결합되고, 제11 트랜지스터(M11)의 제어 단자는 제5 입력(S)에 결합된다. 제12 트랜지스터(M12)는 출력 단자(OUT)와 제5 입력(S)의 반전(/S) 사이에 결합되고, 제12 트랜지스터(M12)의 제어 단자는 제2 노드(②)에 결합된다. 제13 트랜지스터(M13)는 출력 단자(OUT)와 제2 노드(②) 사이에 결합되고, 제13 트랜지스터(M13)의 제어 단자는 제5 입력(S)의 반전(/S)에 결합된다. 제14 트랜지스터(M14) 및 제15 트랜지스터(M15)는 전원 단자와 접지 단자 사이에 직렬로 결합되고, 제14 트랜지스터(M14)와 제15 트랜지스터(M15) 사이의 직렬 결합된 노드는 제5 입력(S)의 반전(/S)에 결합된다. 제14 트랜지스터(M14) 및 제15 트랜지스터(M15)의 제어 단자들은 제5 입력(S)을 수신하도록 구성된다.
본 출원의 이 실시예에서, 제1 입력(A) 내지 제5 입력(S)은 각각, 곱셈기의 전술한 실시예에서의 반전 인코더의 관련 설명들에서의 제1 신호, 제1 비트, 제2 신호, 제2 비트, 및 심볼 제어 입력 신호일 수 있다.
임의적으로, 제1 트랜지스터(M1), 제2 트랜지스터(M2), 제3 트랜지스터(M3), 제4 트랜지스터(M4), 제9 트랜지스터(M9), 제10 트랜지스터(M10), 제11 트랜지스터(M11), 및 제14 트랜지스터(M14)는 PMOS 트랜지스터들이다. 제5 트랜지스터(M5), 제6 트랜지스터(M6), 제7 트랜지스터(M7), 제8 트랜지스터(M8), 제12 트랜지스터(M12), 제13 트랜지스터(M13), 및 제15 트랜지스터(M15)는 NMOS 트랜지스터들이다. 이에 대응하여, 제어 단자는 대응하는 PMOS 트랜지스터 또는 NMOS 트랜지스터의 게이트를 구체적으로 지칭할 수 있다.
전술한 예들에서의 제1 트랜지스터(M1) 내지 제15 트랜지스터(M15)는 MOS 트랜지스터들일 수 있거나, 양극성 접합 트랜지스터들로 대체될 수 있다는 점에 유의해야 한다. 도 11에 도시된 트랜지스터들의 유형들은 단지 예들이고, 본 출원의 실시예들에 대한 제한을 구성하지 않는다.
도 12는 본 출원의 실시예에 따른 반전 압축 연산자 회로의 구조의 개략도이다. 반전 압축 연산자 회로는 반전 압축기로도 지칭될 수 있다. 반전 압축기는 제1 트랜지스터(M1), 제2 트랜지스터(M2), 제3 트랜지스터(M3), 제4 트랜지스터(M4), 제5 트랜지스터(M5), 제6 트랜지스터(M6), 제7 트랜지스터(M7), 제8 트랜지스터(M8), 제9 트랜지스터(M9), 제10 트랜지스터(M10), 제11 트랜지스터(M11), 제12 트랜지스터(M12), 제13 트랜지스터(M13), 제14 트랜지스터(M14), 제15 트랜지스터(M15), 제16 트랜지스터(M16), 제17 트랜지스터(M17), 제18 트랜지스터(M18), 제19 트랜지스터(M19), 제20 트랜지스터(M20), 제21 트랜지스터(M21), 및 제22 트랜지스터(M22)를 포함한다.
제1 트랜지스터(M1) 및 제2 트랜지스터(M2)는 전원 단자와 제1 노드(①) 사이에 병렬로 결합되고, 제3 트랜지스터(M3)는 제1 노드(①)와 제1 출력 단자(nCip1) 사이에 결합되고, 제4 트랜지스터(M4)는 제1 출력 단자(nCip1)와 제2 노드(②) 사이에 결합된다. 제5 트랜지스터(M5) 및 제6 트랜지스터(M6)는 제2 노드(②)와 접지 단자 사이에 병렬로 결합되고, 제7 트랜지스터(M7)는 전원 단자와 제3 노드(③) 사이에 결합되고, 제8 트랜지스터(M8)는 제3 노드(③)와 제1 출력 단자(nCip1) 사이에 결합되고, 제9 트랜지스터(M9)는 제1 출력 단자(nCip1)와 제4 노드(④) 사이에 결합된다. 제10 트랜지스터(M10)는 제4 노드(④)와 접지 단자 사이에 결합되고, 제11 트랜지스터(M11) 및 제12 트랜지스터(M12)는 제3 노드(③)와 제2 출력 단자(nSi) 사이에 직렬로 결합되고, 제13 트랜지스터(M13) 및 제14 트랜지스터(M14)는 제2 출력 단자(nSi)와 제4 노드(④) 사이에 직렬로 결합된다. 제15 트랜지스터(M15), 제16 트랜지스터(M16), 및 제17 트랜지스터(M17)는 전원 단자와 제5 노드(⑤) 사이에 병렬로 결합되고, 제18 트랜지스터(M18)는 제5 노드(⑤)와 제2 출력 단자(nSi) 사이에 결합되고, 제19 트랜지스터(M19)는 제2 출력 단자(nSi)와 제6 노드(⑥) 사이에 결합되고, 제20 트랜지스터(M20), 제21 트랜지스터(M21), 및 제22 트랜지스터(M22)는 제6 노드(⑥)와 접지 단자 사이에 병렬로 결합된다.
제3 트랜지스터(M3), 제4 트랜지스터(M4), 제12 트랜지스터(M12), 제13 트랜지스터(M13), 제15 트랜지스터(M15), 및 제20 트랜지스터(M20)의 제어 단자들은 제1 입력(Ai)을 수신하도록 구성된다. 제1 트랜지스터(M1), 제5 트랜지스터(M5), 제7 트랜지스터(M7), 제10 트랜지스터(M10), 제16 트랜지스터(M16), 및 제21 트랜지스터(M21)의 제어 단자들은 제2 입력(Bi)을 수신하도록 구성된다. 제2 트랜지스터(M2), 제6 트랜지스터(M6), 제8 트랜지스터(M8), 제9 트랜지스터(M9), 제11 트랜지스터(M11), 제14 트랜지스터(M14), 제17 트랜지스터(M17), 및 제22 트랜지스터(M22)의 제어 단자들은 제3 입력(Ci)을 수신하도록 구성된다. 제18 트랜지스터(M18) 및 제19 트랜지스터(M19)의 제어 단자들은 제1 출력 단자(nCip1)에 결합된다.
본 출원의 이 실시예에서, 제1 입력(Ai), 제2 입력(Bi) 및 제3 입력(Ci)은 곱셈기의 전술한 실시예에서의 반전 압축기의 관련 설명들에서의 3 비트일 수 있다. 제1 출력 단자(nCip1)는 반전 압축기의 출력 캐리 비트를 출력하도록 구성되고, 제2 출력 단자(nSi)는 반전 압축기의 현재 출력 합 비트를 출력하도록 구성된다.
임의적으로, 제1 트랜지스터(M1), 제2 트랜지스터(M2), 제3 트랜지스터(M3), 제7 트랜지스터(M7), 제8 트랜지스터(M8), 제11 트랜지스터(M11), 제12 트랜지스터(M12), 제15 트랜지스터(M15), 제16 트랜지스터(M16), 제17 트랜지스터(M17), 및 제18 트랜지스터(M18)는 PMOS 트랜지스터들이다. 제4 트랜지스터(M4), 제5 트랜지스터(M5), 제6 트랜지스터(M6), 제9 트랜지스터(M9), 제10 트랜지스터(M10), 제13 트랜지스터(M13), 제14 트랜지스터(M14), 제19 트랜지스터(M19), 제20 트랜지스터(M20), 제21 트랜지스터(M21), 및 제22 트랜지스터(M22)는 NMOS 트랜지스터들이다. 이에 대응하여, 제어 단자는 대응하는 PMOS 트랜지스터 또는 NMOS 트랜지스터의 게이트를 구체적으로 지칭할 수 있다.
전술한 예들에서의 제1 트랜지스터(M1) 내지 제22 트랜지스터(M22)는 MOS 트랜지스터들일 수 있거나, 양극성 접합 트랜지스터들로 대체될 수 있다는 점에 유의해야 한다. 도 12에 도시된 트랜지스터들의 유형들은 단지 예들이고, 본 출원의 실시예들에 대한 제한을 구성하지 않는다.
본 출원의 이 실시예에서, 위에서 제공된 비-반전 인코더, 반전 인코더, 및 반전 압축기를 이용하는 곱셈기는 표준 인코더 및 표준 가산기를 이용하는 기존의 곱셈기와 비교된다. 상세들은 표 4 및 표 5에 도시된다. 본 출원의 실시예에서, 이 실시예는 다음과 같은 특정 파라미터 값들로 제한되지 않는다.
<표 4>
Figure pct00008
표 4로부터, 각각의 표준 인코더는 22개의 트랜지스터 양을 이용하고, 0.2736의 면적을 점유하고, 1.18의 면적 비율을 갖고, 각각의 비-반전 인코더 또는 반전 인코더는 15개의 트랜지스터 양을 이용하고, 0.23256의 면적을 점유하고, 1의 면적 비율을 갖는다는 것을 알 수 있다. 각각의 표준 가산기는 28개의 트랜지스터를 이용하고, 0.2736의 면적을 점유하고, 1.10의 면적 비율을 갖고, 각각의 반전 압축기는 24개의 트랜지스터를 이용하고, 0.24816의 면적을 점유하고, 1의 면적 비율을 갖는다. 따라서, 본 출원의 실시예들에서 제공되는 곱셈기의 면적이 더 작다.
<표 5>
Figure pct00009
표 5로부터, 표준 인코더는 매 1 비트의 데이터를 인코딩하기 위해 4번 토글링하고, 0.44522의 정적 전력 소비, 1.18의 정적 전력 소비율, 및 1.09의 동적 전력 소비율을 갖는다는 것을 알 수 있다. 비-반전 인코더 또는 반전 인코더는 매 1 비트의 데이터를 인코딩하기 위해 3번 토글링하고, 0.4084의 정적 전력 소비, 및 모두 1의 정적 전력 소비율과 동적 전력 소비율을 갖는다. 표준 가산기는 매 1 비트의 데이터를 압축하기 위해 4번 토글링하고, 0.57685의 정적 전력 소비, 1.10의 정적 전력 소비율, 및 1.80의 동적 전력 소비율을 갖는다. 반전 압축기는 매 1 비트의 데이터를 압축하기 위해 2번 토글링하고, 0.32122의 정적 전력 소비, 및 모두 1의 정적 전력 소비율과 동적 전력 소비율을 갖는다. 따라서, 본 출원의 실시예들에서 제공되는 곱셈기의 전력 소비가 더 낮다.
본 출원의 실시예들에서 제공되는 곱셈기 내의 인코더는 비-반전 인코딩 연산자 또는 반전 인코딩 연산자를 이용하여 인코딩을 수행하며, 즉, 곱셈기는 비-반전 인코더 또는 반전 인코더를 이용하여 인코딩을 수행한다. 또한, 압축기는 반전 압축기를 이용하여 압축을 수행한다. 곱셈기의 구현 해결책은 간단하다. 예를 들어, 곱셈기 내의 MOS 트랜지스터들의 양이 감소되어, 곱셈기의 면적을 감소시킬 수 있다. 또한, 대응하는 인코더 또는 압축기의 토글 횟수의 양은 곱셈기가 매 1 비트의 데이터를 인코딩하거나 압축할 때 작아서, 곱셈기의 전력 소비가 낮다.
마지막으로, 전술한 설명들은 본 출원의 실시예들의 특정 구현들에 불과하고, 본 출원의 보호 범위를 제한하도록 의도되지 않는다는 점에 유의해야 한다. 본 출원에 개시되는 기술적 범위 내의 임의의 변형 또는 대체는 본 출원의 보호 범위 내에 속할 것이다. 따라서, 본 출원의 보호 범위는 청구항들의 보호 범위에 따를 것이다.

Claims (17)

  1. M 비트의 제1 값과 N 비트의 제2 값의 곱셈을 구현하도록 구성된 곱셈기(multiplier)로서,
    M과 N은 1보다 큰 정수들이고, 상기 곱셈기는 인코더들의 P개의 그룹과 반전 압축기들의 W개의 층을 포함하고, 상기 인코더들의 P개의 그룹의 각각의 그룹은 N개의 인코더를 포함하고, W는 양의 정수이고, P는 1보다 큰 정수이고;
    상기 인코더들의 각각의 그룹은 비-반전 인코딩 연산자들(non-inversion encoding operators) 또는 반전 인코딩 연산자들을 이용함으로써 상기 제2 값에서의 비트들의 일부, 및 상기 인코더들의 각각의 그룹에 대응하는 그룹 선택 신호 및 심볼 제어 입력 신호를 인코딩하여 하나의 부분 곱을 획득하도록 구성되고, 상기 그룹 선택 신호 및 상기 심볼 제어 입력 신호는 상기 제1 값에서의 비트들의 일부에 기반하여 생성되고, 상기 인코더들의 P개의 그룹은 인코딩을 수행하여 P개의 부분 곱을 획득하고;
    상기 반전 압축기들의 W개의 층은 반전 압축 연산자들을 이용함으로써 상기 P개의 부분 곱을 압축하여 2개의 누산된 값을 획득하도록 구성되고, 상기 2개의 누산된 값의 합은 상기 제1 값과 상기 제2 값의 곱인, 곱셈기.
  2. 제1항에 있어서,
    상기 N개의 인코더의 각각의 인코더는 상기 제2 값에서의 제1 비트 및 제2 비트에 대응하고, 상기 그룹 선택 신호는 제1 신호 및 제2 신호를 포함하고, 상기 각각의 인코더는 상기 비-반전 인코딩 연산자 또는 상기 반전 인코딩 연산자를 이용함으로써 상기 제1 비트, 상기 제2 비트, 상기 그룹 선택 신호, 및 상기 심볼 제어 입력 신호를 인코딩하여, 하나의 부분 곱에서 하나의 출력 비트를 획득하도록 구체적으로 구성되는, 곱셈기.
  3. 제2항에 있어서,
    인코더가 비-반전 인코딩 연산자를 이용할 때, 상기 인코더는 비-반전 인코더이고,
    상기 제1 신호 및 상기 제1 비트 둘 다가 1이거나, 또는 상기 제2 신호 및 상기 제2 비트 둘 다가 1인 경우, 상기 인코더에 의해 획득된 상기 출력 비트는 상기 심볼 제어 입력 신호의 반전이거나, 또는
    상기 제1 신호 및 상기 제1 비트 중 적어도 하나가 0이고, 상기 제2 신호 및 상기 제2 비트 중 적어도 하나가 0인 경우, 상기 인코더에 의해 획득된 상기 출력 비트는 상기 심볼 제어 입력 신호인
    인코딩 연산을 수행하도록 구체적으로 구성되는, 곱셈기.
  4. 제2항에 있어서,
    인코더가 반전 인코딩 연산자를 이용할 때, 상기 인코더는 반전 인코더이고,
    상기 제1 신호 및 상기 제1 비트 둘 다가 1이거나, 또는 상기 제2 신호 및 상기 제2 비트 둘 다가 1인 경우, 상기 인코더에 의해 획득된 상기 출력 비트는 상기 심볼 제어 입력 신호이거나, 또는
    상기 제1 신호 및 상기 제1 비트 중 적어도 하나가 0이고, 상기 제2 신호 및 상기 제2 비트 중 적어도 하나가 0인 경우, 상기 인코더에 의해 획득된 상기 출력 비트는 상기 심볼 제어 입력 신호의 반전인
    인코딩 연산을 수행하도록 구체적으로 구성되는, 곱셈기.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    W는 1이고, 상기 반전 압축기들의 W개의 층은 반전 압축기들의 첫번째 층을 포함하고,
    상기 반전 압축기들의 첫번째 층은, 각각의 자리 가중치(digit weight)에 대응하는 남아 있는 비트들의 양이 3 미만일 때까지 상기 반전 압축 연산자들을 낮은 자리 가중치로부터 높은 자리 가중치로 순차적으로 이용함으로써 상기 P개의 부분 곱의 행렬에서의 각각의 자리 가중치를 압축하여, 2개의 행을 포함하는 제1 압축된 행렬을 획득하도록 구성되고, 각각의 행은 하나의 누산된 값에 대응하고,
    상기 각각의 자리 가중치에 대한 압축은 상기 자리 가중치에 대한 매 3 비트에 대해 수행되고, 상기 P개의 부분 곱의 행렬에서, 각각의 행은 하나의 부분 곱을 포함하고, 각각의 열은 상기 P개의 부분 곱에서 동일한 자리 가중치에 대응하는 복수의 비트를 포함하는, 곱셈기.
  6. 제1항 내지 제4항 중 어느 한 항에 있어서,
    W는 1보다 큰 정수이고, 상기 반전 압축기들의 W개의 층은 반전 압축기들의 첫번째 층 내지 반전 압축기들의 W번째 층을 포함하고,
    상기 반전 압축기들의 첫번째 층은, 각각의 자리 가중치에 대응하는 남아 있는 비트들의 양이 3 미만일 때까지 상기 반전 압축 연산자들을 낮은 자리 가중치로부터 높은 자리 가중치로 순차적으로 이용함으로써 상기 P개의 부분 곱의 행렬에서의 각각의 자리 가중치를 압축하여 제1 압축된 행렬을 획득하도록 구성되고,
    반전 압축기들의 i번째 층은, 각각의 자리 가중치에 대응하는 남아 있는 비트들의 양이 3 미만일 때까지 상기 반전 압축 연산자들을 낮은 자리 가중치로부터 높은 자리 가중치로 순차적으로 이용함으로써 (i-1)번째 압축된 행렬에서의 각각의 자리 가중치를 압축하여 i번째 압축된 행렬을 획득하도록 구성되고, i의 값은 2 내지 W의 범위이고,
    W번째 압축된 행렬은 2개의 행을 포함하고, 각각의 행은 하나의 누산된 값에 대응하고,
    반전 압축기들의 각각의 층에 의한 상기 각각의 자리 가중치에 대한 압축은 상기 자리 가중치에 대한 3 비트에 대해 수행되고, 상기 P개의 부분 곱의 행렬에서, 각각의 행은 하나의 부분 곱을 포함하고, 각각의 열은 상기 P개의 부분 곱에서 동일한 자리 가중치에 대응하는 복수의 비트를 포함하는, 곱셈기.
  7. 제5항 또는 제6항에 있어서,
    상기 각각의 자리 가중치에 대한 3 비트에 대해, 각각의 반전 압축기는,
    상기 3 비트가 모두 0이면, 출력 캐리 비트는 1이고, 현재 출력 합 비트는 1이고,
    상기 3 비트가 모두 1이면, 출력 캐리 비트는 0이고, 현재 출력 합 비트는 0이고,
    상기 3 비트 중 하나가 1이고 다른 2개의 비트가 0이면, 출력 캐리 비트는 1이고, 현재 출력 합 비트는 0이거나, 또는
    상기 3 비트 중 2개가 1이고 다른 비트가 0이면, 출력 캐리 비트는 0이고, 현재 출력 합 비트는 1인
    압축을 수행하도록 구체적으로 구성되는, 곱셈기.
  8. 제7항에 있어서,
    동일한 자리 가중치에 대응하는 인코더들에 의해 이용되는 인코딩 연산자들의 위상들은 상기 반전 압축기에 의해 출력되는 상기 현재 출력 합 비트 또는 상기 출력 캐리 비트의 위상과 관련되고,
    상기 동일한 자리 가중치에 대응하는 상기 인코더는 인코딩을 수행하여 상기 동일한 자리 가중치에 대응하는 출력 비트를 획득하는 인코더이고, 상기 동일한 자리 가중치에 대응하는 반전 압축기는 상기 동일한 자리 가중치에 대한 3 비트를 압축하는 반전 압축기인, 곱셈기.
  9. 제8항에 있어서,
    상기 곱셈기는, 상기 반전 압축기들의 W개의 층에서 하나 이상의 반전 압축기에 의해 출력되는 현재 출력 합 비트와 출력 캐리 비트의 위상들을 반전시키거나, 하나 이상의 반전 압축기에 입력되는 상기 3 비트 중 적어도 하나의 비트의 위상을 반전시키도록 구성된 하나 이상의 인버터를 더 포함하는, 곱셈기.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 곱셈기는, 상기 제1 값을 수신하고, 상기 제1 값에서의 비트들의 일부에 기반하여 상기 그룹 선택 신호 및 상기 심볼 제어 입력 신호를 생성하도록 구성된 프리코더를 더 포함하는, 곱셈기.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 곱셈기는, 상기 2개의 누산된 값을 수신하고, 상기 2개의 누산된 값을 합산하여 상기 곱을 획득하도록 구성된 가산기를 더 포함하는, 곱셈기.
  12. 연산자 회로로서,
    제1 트랜지스터, 제2 트랜지스터, 제3 트랜지스터, 제4 트랜지스터, 제5 트랜지스터, 제6 트랜지스터, 제7 트랜지스터, 제8 트랜지스터, 제9 트랜지스터, 제10 트랜지스터, 제11 트랜지스터, 제12 트랜지스터, 제13 트랜지스터, 제14 트랜지스터, 및 제15 트랜지스터를 포함하며,
    상기 제1 트랜지스터 및 상기 제2 트랜지스터는 전원 단자와 제1 노드 사이에 병렬로 결합되고;
    상기 제3 트랜지스터 및 상기 제4 트랜지스터는 상기 제1 노드와 제2 노드 사이에 병렬로 결합되고;
    상기 제5 트랜지스터 및 상기 제7 트랜지스터는 상기 제2 노드와 접지 단자 사이에 직렬로 결합되고;
    상기 제6 트랜지스터 및 상기 제8 트랜지스터는 상기 제2 노드와 상기 접지 단자 사이에 직렬로 결합되고;
    상기 제3 트랜지스터 및 상기 제5 트랜지스터의 제어 단자들은 제1 입력을 수신하도록 구성되고;
    상기 제1 트랜지스터 및 상기 제6 트랜지스터의 제어 단자들은 제2 입력을 수신하도록 구성되고;
    상기 제4 트랜지스터 및 상기 제7 트랜지스터의 제어 단자들은 제3 입력을 수신하도록 구성되고;
    상기 제2 트랜지스터 및 상기 제8 트랜지스터의 제어 단자들은 제4 입력을 수신하도록 구성되고;
    상기 제9 트랜지스터는 제5 입력의 반전과 출력 단자 사이에 결합되고, 상기 제9 트랜지스터의 제어 단자는 상기 제2 노드에 결합되고;
    상기 제10 트랜지스터는 상기 제2 노드와 상기 출력 단자 사이에 결합되고, 상기 제10 트랜지스터의 제어 단자는 상기 제5 입력의 반전에 결합되고;
    상기 제11 트랜지스터 및 상기 제13 트랜지스터는 상기 출력 단자와 상기 접지 단자 사이에 직렬로 결합되고;
    상기 제11 트랜지스터의 제어 단자는 상기 제2 노드에 결합되고;
    상기 제13 트랜지스터의 제어 단자는 상기 제5 입력의 반전을 수신하도록 구성되고;
    상기 제12 트랜지스터는 상기 출력 단자와 상기 제2 노드 사이에 결합되고, 상기 제12 트랜지스터의 제어 단자는 상기 제5 입력을 수신하도록 구성되고;
    상기 제14 트랜지스터 및 상기 제15 트랜지스터는 상기 전원 단자와 상기 접지 단자 사이에 직렬로 결합되고, 상기 제14 트랜지스터와 상기 제15 트랜지스터 사이의 직렬 결합된 노드는 상기 제5 입력의 반전에 결합되고;
    상기 제14 트랜지스터 및 상기 제15 트랜지스터의 제어 단자들은 상기 제5 입력을 수신하도록 구성되는, 연산자 회로.
  13. 제12항에 있어서,
    상기 제1 트랜지스터, 상기 제2 트랜지스터, 상기 제3 트랜지스터, 상기 제4 트랜지스터, 상기 제9 트랜지스터, 상기 제10 트랜지스터, 및 상기 제14 트랜지스터는 PMOS 트랜지스터들이고,
    상기 제5 트랜지스터, 상기 제6 트랜지스터, 상기 제7 트랜지스터, 상기 제8 트랜지스터, 상기 제11 트랜지스터, 상기 제12 트랜지스터, 상기 제13 트랜지스터, 및 상기 제15 트랜지스터는 NMOS 트랜지스터들인, 연산자 회로.
  14. 연산자 회로로서,
    제1 트랜지스터, 제2 트랜지스터, 제3 트랜지스터, 제4 트랜지스터, 제5 트랜지스터, 제6 트랜지스터, 제7 트랜지스터, 제8 트랜지스터, 제9 트랜지스터, 제10 트랜지스터, 제11 트랜지스터, 제12 트랜지스터, 제13 트랜지스터, 제14 트랜지스터, 및 제15 트랜지스터를 포함하며,
    상기 제1 트랜지스터 및 상기 제2 트랜지스터는 전원 단자와 제1 노드 사이에 병렬로 결합되고;
    상기 제3 트랜지스터 및 상기 제4 트랜지스터는 상기 제1 노드와 제2 노드 사이에 병렬로 결합되고;
    상기 제5 트랜지스터 및 상기 제7 트랜지스터는 상기 제2 노드와 접지 단자 사이에 직렬로 결합되고;
    상기 제6 트랜지스터 및 상기 제8 트랜지스터는 상기 제2 노드와 상기 접지 단자 사이에 직렬로 결합되고;
    상기 제3 트랜지스터 및 상기 제5 트랜지스터의 제어 단자들은 제1 입력을 수신하도록 구성되고;
    상기 제1 트랜지스터 및 상기 제6 트랜지스터의 제어 단자들은 제2 입력을 수신하도록 구성되고;
    상기 제4 트랜지스터 및 상기 제7 트랜지스터의 제어 단자들은 제3 입력을 수신하도록 구성되고;
    상기 제2 트랜지스터 및 상기 제8 트랜지스터의 제어 단자들은 제4 입력을 수신하도록 구성되고;
    상기 제9 트랜지스터 및 상기 제10 트랜지스터는 상기 전원 단자와 출력 단자 사이에 직렬로 결합되고, 상기 제9 트랜지스터의 제어 단자는 제5 입력의 반전에 결합되고, 상기 제10 트랜지스터의 제어 단자는 상기 제2 노드에 결합되고;
    상기 제11 트랜지스터는 상기 제2 노드와 상기 출력 단자 사이에 결합되고, 상기 제11 트랜지스터의 제어 단자는 상기 제5 입력에 결합되고;
    상기 제12 트랜지스터는 상기 출력 단자와 상기 제5 입력의 반전 사이에 결합되고, 상기 제12 트랜지스터의 제어 단자는 상기 제2 노드에 결합되고;
    상기 제13 트랜지스터는 상기 출력 단자와 상기 제2 노드 사이에 결합되고, 상기 제13 트랜지스터의 제어 단자는 상기 제5 입력의 반전에 결합되고;
    상기 제14 트랜지스터 및 상기 제15 트랜지스터는 상기 전원 단자와 상기 접지 단자 사이에 직렬로 결합되고, 상기 제14 트랜지스터와 상기 제15 트랜지스터 사이의 직렬 결합된 노드는 상기 제5 입력의 반전에 결합되고;
    상기 제14 트랜지스터 및 상기 제15 트랜지스터의 제어 단자들은 상기 제5 입력을 수신하도록 구성되는, 연산자 회로.
  15. 제14항에 있어서,
    상기 제1 트랜지스터, 상기 제2 트랜지스터, 상기 제3 트랜지스터, 상기 제4 트랜지스터, 상기 제9 트랜지스터, 상기 제10 트랜지스터, 상기 제11 트랜지스터, 및 상기 제14 트랜지스터는 PMOS 트랜지스터들이고,
    상기 제5 트랜지스터, 상기 제6 트랜지스터, 상기 제7 트랜지스터, 상기 제8 트랜지스터, 상기 제12 트랜지스터, 상기 제13 트랜지스터 및 상기 제15 트랜지스터는 NMOS 트랜지스터들인, 연산자 회로.
  16. 연산자 회로로서,
    제1 트랜지스터, 제2 트랜지스터, 제3 트랜지스터, 제4 트랜지스터, 제5 트랜지스터, 제6 트랜지스터, 제7 트랜지스터, 제8 트랜지스터, 제9 트랜지스터, 제10 트랜지스터, 제11 트랜지스터, 제12 트랜지스터, 제13 트랜지스터, 제14 트랜지스터, 제15 트랜지스터, 제16 트랜지스터, 제17 트랜지스터, 제18 트랜지스터, 제19 트랜지스터, 제20 트랜지스터, 제21 트랜지스터, 및 제22 트랜지스터를 포함하며,
    상기 제1 트랜지스터 및 상기 제2 트랜지스터는 전원 단자와 제1 노드 사이에 병렬로 결합되고;
    상기 제3 트랜지스터는 상기 제1 노드와 제1 출력 단자 사이에 결합되고;
    상기 제4 트랜지스터는 상기 제1 출력 단자와 제2 노드 사이에 결합되고;
    상기 제5 트랜지스터 및 상기 제6 트랜지스터는 상기 제2 노드와 접지 단자 사이에 병렬로 결합되고;
    상기 제7 트랜지스터는 상기 전원 단자와 제3 노드 사이에 결합되고;
    상기 제8 트랜지스터는 상기 제3 노드와 상기 제1 출력 단자 사이에 결합되고;
    상기 제9 트랜지스터는 상기 제1 출력 단자와 제4 노드 사이에 결합되고;
    상기 제10 트랜지스터는 상기 제4 노드와 상기 접지 단자 사이에 결합되고;
    상기 제11 트랜지스터 및 상기 제12 트랜지스터는 상기 제3 노드와 제2 출력 단자 사이에 직렬로 결합되고;
    상기 제13 트랜지스터 및 상기 제14 트랜지스터는 상기 제2 출력 단자와 상기 제4 노드 사이에 직렬로 결합되고;
    상기 제15 트랜지스터, 상기 제16 트랜지스터, 및 상기 제17 트랜지스터는 상기 전원 단자와 제5 노드 사이에 병렬로 결합되고;
    상기 제18 트랜지스터는 상기 제5 노드와 상기 제2 출력 단자 사이에 결합되고;
    상기 제19 트랜지스터는 상기 제2 출력 단자와 제6 노드 사이에 결합되고;
    상기 제20 트랜지스터, 상기 제21 트랜지스터, 및 상기 제22 트랜지스터는 상기 제6 노드와 상기 접지 단자 사이에 병렬로 결합되고;
    상기 제3 트랜지스터, 상기 제4 트랜지스터, 상기 제12 트랜지스터, 상기 제13 트랜지스터, 상기 제15 트랜지스터, 및 상기 제20 트랜지스터의 제어 단자들은 제1 입력을 수신하도록 구성되고;
    상기 제1 트랜지스터, 상기 제5 트랜지스터, 상기 제7 트랜지스터, 상기 제10 트랜지스터, 상기 제16 트랜지스터, 및 상기 제21 트랜지스터의 제어 단자들은 제2 입력을 수신하도록 구성되고;
    상기 제2 트랜지스터, 상기 제6 트랜지스터, 상기 제8 트랜지스터, 상기 제9 트랜지스터, 상기 제11 트랜지스터, 상기 제14 트랜지스터, 상기 제17 트랜지스터, 및 상기 제22 트랜지스터의 제어 단자들은 제3 입력을 수신하도록 구성되고;
    상기 제18 트랜지스터 및 상기 제19 트랜지스터의 제어 단자들은 상기 제1 출력 단자에 결합되는, 연산자 회로.
  17. 제16항에 있어서,
    상기 제1 트랜지스터, 상기 제2 트랜지스터, 상기 제3 트랜지스터, 상기 제7 트랜지스터, 상기 제8 트랜지스터, 상기 제11 트랜지스터, 상기 제12 트랜지스터, 상기 제15 트랜지스터, 상기 제16 트랜지스터, 상기 제17 트랜지스터, 및 상기 제18 트랜지스터는 PMOS 트랜지스터들이고,
    상기 제4 트랜지스터, 상기 제5 트랜지스터, 상기 제6 트랜지스터, 상기 제9 트랜지스터, 상기 제10 트랜지스터, 상기 제13 트랜지스터, 상기 제14 트랜지스터, 상기 제19 트랜지스터, 상기 제20 트랜지스터, 상기 제21 트랜지스터 및 상기 제22 트랜지스터는 NMOS 트랜지스터들인, 연산자 회로.
KR1020227015465A 2019-11-21 2019-11-21 곱셈기 및 연산자 회로 KR20220074965A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/119993 WO2021097765A1 (zh) 2019-11-21 2019-11-21 一种乘法器及算子电路

Publications (1)

Publication Number Publication Date
KR20220074965A true KR20220074965A (ko) 2022-06-03

Family

ID=75980379

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227015465A KR20220074965A (ko) 2019-11-21 2019-11-21 곱셈기 및 연산자 회로

Country Status (7)

Country Link
US (1) US11855661B2 (ko)
EP (1) EP4030277A4 (ko)
JP (1) JP7371255B2 (ko)
KR (1) KR20220074965A (ko)
CN (2) CN113227963B (ko)
BR (1) BR112022007427A2 (ko)
WO (1) WO2021097765A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4336346A1 (en) * 2021-08-10 2024-03-13 Huawei Technologies Co., Ltd. Multiplier

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL179619C (nl) * 1974-04-18 1987-05-18 Philips Nv Digitale signaalverwerkingsinrichting voor het realiseren van een vooraf bepaalde overdrachtskarakteristiek.
US4153938A (en) * 1977-08-18 1979-05-08 Monolithic Memories Inc. High speed combinatorial digital multiplier
US4730340A (en) * 1980-10-31 1988-03-08 Harris Corp. Programmable time invariant coherent spread symbol correlator
JP3153370B2 (ja) * 1993-01-14 2001-04-09 三菱電機株式会社 乗算装置
US6195392B1 (en) * 1998-06-30 2001-02-27 U.S. Philips Corporation Method and arrangement for generating program clock reference values (PCRS) in MPEG bitstreams
US6877022B1 (en) * 2001-02-16 2005-04-05 Texas Instruments Incorporated Booth encoding circuit for a multiplier of a multiply-accumulate module
JP4177125B2 (ja) 2003-01-22 2008-11-05 三菱電機株式会社 演算装置及び演算装置の演算方法
US7028068B1 (en) * 2003-02-04 2006-04-11 Advanced Micro Devices, Inc. Alternate phase dual compression-tree multiplier
US8064520B2 (en) * 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US8577026B2 (en) * 2010-12-29 2013-11-05 Ternarylogic Llc Methods and apparatus in alternate finite field based coders and decoders
US20110064214A1 (en) * 2003-09-09 2011-03-17 Ternarylogic Llc Methods and Apparatus in Alternate Finite Field Based Coders and Decoders
US20140055290A1 (en) * 2003-09-09 2014-02-27 Peter Lablans Methods and Apparatus in Alternate Finite Field Based Coders and Decoders
CN100405288C (zh) * 2004-05-27 2008-07-23 扬智科技股份有限公司 乘法器的符号延伸方法及结构
JP4988627B2 (ja) 2008-03-05 2012-08-01 ルネサスエレクトロニクス株式会社 フィルタ演算器及び動き補償装置
WO2009140142A1 (en) * 2008-05-12 2009-11-19 Sandbridge Technologies, Inc. Implementation of arbitrary galois field arithmetic on a programmable processor
US20150193203A1 (en) * 2014-01-07 2015-07-09 Nvidia Corporation Efficiency in a fused floating-point multiply-add unit
US10002219B2 (en) 2015-03-25 2018-06-19 Samsung Electronics Co., Ltd. Method for placing parallel multiplier
US9876488B2 (en) * 2015-11-02 2018-01-23 Mediatek Inc. Flip-flop circuit with data-driven clock
CN107977191B (zh) 2016-10-21 2021-07-27 中国科学院微电子研究所 一种低功耗并行乘法器
CN110058840B (zh) * 2019-03-27 2022-11-25 西安理工大学 一种基于4-Booth编码的低功耗乘法器

Also Published As

Publication number Publication date
WO2021097765A1 (zh) 2021-05-27
US11855661B2 (en) 2023-12-26
EP4030277A1 (en) 2022-07-20
BR112022007427A2 (pt) 2022-07-12
US20220294468A1 (en) 2022-09-15
EP4030277A4 (en) 2023-01-11
JP7371255B2 (ja) 2023-10-30
CN113946312A (zh) 2022-01-18
CN113227963B (zh) 2024-05-17
JP2023503119A (ja) 2023-01-26
CN113227963A (zh) 2021-08-06

Similar Documents

Publication Publication Date Title
CN107977191B (zh) 一种低功耗并行乘法器
CN110362293B (zh) 乘法器、数据处理方法、芯片及电子设备
CN110515587B (zh) 乘法器、数据处理方法、芯片及电子设备
US20220294468A1 (en) Multiplier and operator circuit
CN112764712B (zh) 一种高性能近似Booth乘法器及计算方法
CN111258633B (zh) 乘法器、数据处理方法、芯片及电子设备
CN111258544B (zh) 乘法器、数据处理方法、芯片及电子设备
WO2023004783A1 (zh) 一种累加器、乘法器及算子电路
CN209879493U (zh) 乘法器
Neeraja et al. Design of an area efficient braun multiplier using high speed parallel prefix adder in cadence
Kumar et al. Complex multiplier: implementation using efficient algorithms for signal processing application
CN111897513B (zh) 一种基于反向极性技术的乘法器及其代码生成方法
Shankar et al. Approximate Booth Multipliers using Compressors and Counter
CN110647307B (zh) 数据处理器、方法、芯片及电子设备
Bokade et al. CLA based 32-bit signed pipelined multiplier
US20060221724A1 (en) Data converter and a delay threshold comparator
CN111258545A (zh) 乘法器、数据处理方法、芯片及电子设备
CN113033799B (zh) 数据处理器、方法、装置及芯片
CN217034731U (zh) 选择控制器及运算电路及芯片
CN115857873B (zh) 乘法器、乘法计算方法、处理系统及存储介质
CN113031909B (zh) 数据处理器、方法、装置及芯片
JPH07160476A (ja) 部分積生成回路
Ghasemizadeh et al. A 1.6 GHz 16× 16-bit low-latency pipelined booth multiplier
KR100295646B1 (ko) 왈리스 트리를 이용한 곱셈방법
CN117908829A (zh) 4-2压缩加法器、4trit乘法器加法树以及6trit乘法器加法树

Legal Events

Date Code Title Description
A201 Request for examination