KR20210151265A - 비트-오더링된 이진-가중 곱셈기-누산기 - Google Patents

비트-오더링된 이진-가중 곱셈기-누산기 Download PDF

Info

Publication number
KR20210151265A
KR20210151265A KR1020217039984A KR20217039984A KR20210151265A KR 20210151265 A KR20210151265 A KR 20210151265A KR 1020217039984 A KR1020217039984 A KR 1020217039984A KR 20217039984 A KR20217039984 A KR 20217039984A KR 20210151265 A KR20210151265 A KR 20210151265A
Authority
KR
South Korea
Prior art keywords
vector
bit
analog
matrix
order
Prior art date
Application number
KR1020217039984A
Other languages
English (en)
Other versions
KR102598838B1 (ko
Inventor
쉬-화 옌
프랭크 쩬-웬 궈
프랭크 ?b-웬 궈
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 KR20210151265A publication Critical patent/KR20210151265A/ko
Application granted granted Critical
Publication of KR102598838B1 publication Critical patent/KR102598838B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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/491Computations with decimal numbers radix 12 or 20.
    • G06F7/4915Multiplying; Dividing
    • 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/491Computations with decimal numbers radix 12 or 20.
    • G06F7/498Computations with decimal numbers radix 12 or 20. using counter-type accumulators
    • G06F7/4983Multiplying; Dividing
    • G06F7/4985Multiplying; Dividing by successive additions or subtractions
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/66Digital/analogue converters
    • H03M1/74Simultaneous conversion
    • 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/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4828Negative resistance devices, e.g. tunnel diodes, gunn effect devices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/66Digital/analogue converters
    • H03M1/74Simultaneous conversion
    • H03M1/80Simultaneous conversion using weighted impedances
    • H03M1/802Simultaneous conversion using weighted impedances using capacitors, e.g. neuron-mos transistors, charge coupled devices
    • H03M1/804Simultaneous conversion using weighted impedances using capacitors, e.g. neuron-mos transistors, charge coupled devices with charge redistribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Analogue/Digital Conversion (AREA)
  • Complex Calculations (AREA)

Abstract

벡터-행렬 곱셈을 수행하기 위한 다양한 어레인지먼트들이 여기서 제공된다. 이진-인코딩된 값들을 포함하는 디지털 입력 벡터들은, 복수의 1-비트 DAC(digital to analog converter)들을 사용하여 복수의 아날로그 신호들로 변환될 수 있다. 아날로그 벡터 행렬 곱셈기를 사용하여, 벡터-행렬 곱셈 연산은 복수의 아날로그 신호들의 각각의 비트-오더에 대해 가중 행렬을 사용하여 수행될 수 있다. 각각의 수행된 벡터-행렬 곱셈 연산에 대해, 아날로그 벡터 행렬 곱셈기의 출력의 비트-오더링된 표시가 저장될 수 있다. 순차적으로 수행된 벡터-행렬 곱셈 연산의 비트-오더 가중 합산이 수행될 수 있다.

Description

비트-오더링된 이진-가중 곱셈기-누산기
[0001] 본 출원은, 2019년 5월 9일자로 출원된 미국 특허 출원 번호 제16/408,059호에 대한 우선권을 주장하며, 이로써 그 내용들은 모든 목적들을 위해 그 전체가 인용에 의해 포함된다.
[0002] 벡터-행렬 곱셈 연산은 벡터와 행렬의 곱(product)의 합으로서 정의될 수 있다. 구체적으로, 수학식 1은 곱이 합산되는 벡터-행렬 곱셈 연산을 정의하기 위해 사용될 수 있다.
Figure pct00001
수학식 1
[0003] 수학식 1에서, Xi는 (이진 비트들을 사용하여 전자 환경에서 표현될 수 있는) 값들로 구성된 입력 벡터이고, Wij는 행렬 가중 값들을 표현한다. Y는 곱 벡터를 합산함으로써 획득되는 출력 벡터이다. 이 함수는 다양한 신호 프로세싱, 이미지 프로세싱 및 인공 지능 애플리케이션들에서, 이를테면, 뉴럴-네트워크들의 사용에서 애플리케이션들을 갖는다.
[0004] 이 수학식을 수행하는 것은, 디지털 방식으로 수행될 때 상당한 양(amount)의 프로세싱 자원들 및/또는 에너지를 소모할 수 있다. 종래의 아날로그 컴포넌트리(componentry) 또는 디지털 및 아날로그 하이브리드 컴포넌트리는 비교적 많은 수의 클록 사이클들 및/또는 비교적 넓은 영역의 공간이 구현될 것을 요구할 수 있다.
[0005] 벡터-행렬 곱셈을 수행하기 위한 다양한 어레인지먼트(arrangement)들이 본원에서 제공된다. 이진-인코딩된 값(binary-encoded value)들을 포함하는 디지털 입력 벡터는, 복수의 1-비트 디지털-아날로그 변환기(DAC; digital to analog converter)들을 사용하여 복수의 아날로그 신호들로 변환될 수 있다. 아날로그 벡터 행렬 곱셈기를 사용하여, 벡터-행렬 곱셈 연산은 복수의 아날로그 신호들의 각각의 비트-오더(bit-order)에 대해 가중 행렬을 사용하여 수행될 수 있다. 각각의 수행된 벡터-행렬 곱셈 연산에 대해, 아날로그 벡터 행렬 곱셈기의 출력의 비트-오더링된 표시(bit-ordered indication)가 저장될 수 있다. 각각의 비트-오더에 대해 순차적으로 수행된 벡터-행렬 곱셈 연산의 비트-오더 가중 합산(bit-order weighted summation)이 수행될 수 있다.
[0006] 그러한 어레인지먼트들은 다음의 특징들 중 하나 이상을 포함할 수 있다: 각각의 비트-오더에 대해 가중 행렬을 사용하여 벡터-행렬 곱셈 연산을 수행하기 위한 클록 사이클들의 수는 입력 벡터의 이진-인코딩된 값들의 비트-오더들의 수와 동일할 수 있다. 비트-오더 가중 합산(bit-ordered weighted summation)은 아날로그 회로를 사용하여 수행될 수 있다. 비트-오더 가중 합산은 합산 회로에 의해 저장된 전하량에 기반하여 수행될 수 있다. 비트-오더 가중 합산은 단일 클록 사이클에서 수행될 수 있다. 비트-오더 가중 합산은 합산 회로에 의해 저장된 총 축적 전하(accumulated total charge)에 기반할 수 있다. 전압이 출력될 수 있으며, 여기서, 전압의 크기는 합산 값을 표시한다.
[0007] 다양한 실시예들의 성질 및 장점들에 대한 추가적인 이해는 다음의 도면들을 참조하여 실현될 수 있다. 첨부된 도면들에서, 유사한 컴포넌트들 또는 특징들은 동일한 참조 라벨을 가질 수 있다. 추가로, 동일한 타입의 다양한 컴포넌트들은, 참조 라벨 뒤에 대시(dash) 및 유사한 컴포넌트들 사이를 구별하는 제2 라벨에 의해 구별될 수 있다. 제1 참조 라벨만이 본 명세서에서 사용되는 경우, 설명은 제2 참조 라벨에 관계 없이 동일한 제1 참조 라벨을 갖는 유사한 컴포넌트들 중 임의의 컴포넌트에 적용가능하다.
[0008] 도 1은 벡터-행렬 곱셈기 회로의 실시예를 예시하며, 여기서, 벡터 곱셈은 비트-오더링된 이진 값들에 대한 아날로그 컴포넌트들을 사용하여 수행된다.
[0009] 도 2는 아날로그 벡터 행렬 곱셈기의 실시예를 예시한다.
[0010] 도 3은 아날로그 합산 회로의 실시예를 예시한다.
[0011] 도 4는 벡터-행렬 곱셈 연산을 수행하기 위한 방법의 실시예를 예시한다.
[0012] 본원에서 상세히 설명되는 실시예들은 종래의 아날로그 실시예들과 비교하여 더 짧은 시간량(예컨대, 더 적은 클록 사이클들) 동안 MAC(multiplier accumulator) 연산들이 수행될 수 있게 하며, 디지털 입력 신호들이 디코딩될 것을 요구하지 않는다. 오히려, 이진 인코딩된(또는 "비트-오더링된") 값들의 형태의 입력 벡터들이 수신될 수 있다. 그러한 값들은 통상적으로, LSB로부터 MSB로 또는 MSB로부터 LSB로(예컨대, 14의 값을 표현하는 "1110")로 배열되며, 그리고 아날로그 도메인에서 곱해진 다음, 아날로그 또는 디지털 도메인에서 합산될 수 있다. 본원에서 상세히 설명되는 어레인지먼트들은 이진 인코딩된 값들의 아날로그 변환들에 대해 직접적으로 수행되며, 입력 벡터들이 일련의 펄스들(예컨대, 14의 값을 표현하기 위한 14개의 펄스들)로 변환될 것을 요구하지 않는다. 이 컴퓨테이션은 종래의 아날로그 어레인지먼트들보다 상당히 더 빠르게 수행될 수 있다. 더 구체적으로, 벡터-행렬 곱셈을 수행하기 위한 연산 사이클들의 수는
Figure pct00002
배만큼 감소될 수 있다. 이 수학식에서, 분모에 표시된 추가의 2개의 사이클들은 구현에 의해 변할 수 있다. 예컨대, 본원에서 상세히 설명되는 실시예들은 8-비트 입력 벡터들에 대해 벡터-행렬 곱셈을 수행할 수 있고, 이는 종래의 아날로그 MAC 설계들과 비교해서 25.6배 가속될 수 있다.
[0013] 추가로, 본원에서 상세히 설명되는 어레인지먼트들은 종래의 아날로그 MAC 설계들에 비해 상당한 공간 절감(savings)을 가질 수 있다. 1 비트 디지털-아날로그 변환기(DAC; digital-to-analog converter)들을 사용함으로써, 병렬로 수신된 이진 값을 변환하는 멀티-비트 DAC들이 사용되는 경우보다 더 적은 영역이 필요할 수 있다. 구체적으로, 이진-인코딩된 입력 벡터들을 이진-인코딩된 아날로그 전압 값들로 병렬로 변환하기 위해 다수의 1 비트 DAC들이 사용될 수 있다. 예컨대, 4개의 비트 입력 벡터들의 경우, 1-비트 DAC로부터 이진-인코딩된 아날로그 전압 값을 출력하기 위해 4개의 클록 사이클들이 필요할 수 있다(LSB에 대해 하나의 사이클, 제2 LSB에 대해 하나의 사이클, 제2 MSB에 대해 하나의 사이클, MSB에 대해 하나의 사이클). 1-비트 DAC들의 수는 입력 벡터들의 수(수학식 1에서 Xi)에 의존할 수 있다.
[0014] 행렬 곱셈 연산들은 한 번에 입력 벡터의 값들의 각각의 비트-오더에 대해 순차적으로 수행될 수 있다. 각각의 1-비트 DAC의 병렬 출력은 벡터 행렬 곱셈기 회로의 가중 컴포넌트들에 입력될 수 있다. 벡터 행렬 곱셈기 회로는, Xi와 곱해지는, 수학식 1의 Wij 행렬에 대응하는 다양한 가중 컴포넌트들을 가질 수 있다. 벡터 행렬 곱셈기 회로는 입력 벡터들의 각각의 비트-오더에 대해 곱셈 연산들을 수행할 수 있다. 그러므로, 입력 벡터가 4 비트 길이의 값들을 포함하면, 벡터 행렬 곱셈기 회로는 시간 도메인에서 4개의 비트-오더들 각각에 대해 곱셈 연산들을 순차적으로 수행할 수 있다. 벡터 행렬 곱셈기 회로로부터의 출력은 합산 회로에 출력되는 (예컨대, 곱셈 결과를 표시하는 전류 또는 전기적 특성의 일부를 갖는) 순차적인 신호들일 수 있다.
[0015] 합산 회로는 행렬 곱셈 연산들이 수행된 후에 비트-오더 가중 합산을 수행하도록 기능할 수 있다. 합산 회로는 아날로그 또는 디지털 도메인에서 기능할 수 있다. 합산 회로는 벡터 행렬 곱셈 회로로부터 신호들을 수신하고, 적절한 비트-오더에 대해 가중되도록 하는 방식으로 각각의 행렬 곱셈 연산의 표시들을 저장하며, 출력 값 Y를 결정하기 위해 합산을 수행할 수 있다.
[0016] 도 1은 이진-인코딩된 입력들에 대해 아날로그 컴포넌트들을 사용하여 벡터 곱셈이 수행되는 회로(100)의 실시예를 예시한다. 회로(100)는 1-비트 DAC들(114); 아날로그 벡터 행렬 곱셈기(122); 및 합산 컴포넌트리(132)를 포함할 수 있다. 회로(100)는 3개의 섹션들로 분할되는 것으로 이해될 수 있다. 섹션(110)은 (입력 벡터를 표현하는) 이진-인코딩된 디지털 신호들을 수신하고, 이진-인코딩된 디지털 신호들을 이진-인코딩된 아날로그 신호들로 변환한다. 섹션(120)은 이진-인코딩된 아날로그 신호들을 수신하고, 이진-인코딩된 아날로그 신호들과 미리-정의된 행렬(예컨대, 가중 행렬) 간의 곱셈을 표시하는 이진-인코딩된 곱들을 출력한다. 섹션(130)은, 이진-인코딩된 곱들을 합산하고 이진-인코딩된 신호들의 비트-오더 가중을 고려하도록 비트-오더 가중 합산을 수행한다. 그러므로, 이진-인코딩된 입력 신호들의 각각의 비트의 적절한 비트-오더들은 합산이 적절하게 결정될 수 있도록 유지된다. 섹션(130)은 섹션(120)의 곱 출력들을 효율적으로 합산하기 위해 아날로그 컴포넌트리를 사용할 수 있다. 섹션(130)은 또한, 디지털 도메인에서 기능할 수 있다.
[0017] 구체적으로, 섹션(110)에서, 다수의 디지털 입력 신호들(112)이 병렬로 수신될 수 있다. 디지털 입력 신호들(112)은 이진-인코딩된 값들을 표현하고, 디지털 입력 신호들(112)의 각각의 디지털 입력 신호는 수학식 1의 벡터(Xi)의 값을 표현할 수 있다. 입력 신호들(112)의 이진 비트들은 전압 레벨들(예컨대, 1에 대해 하이(high), 제로에 대해 로우(low)), 펄스들(예컨대, 1에 대한 펄스, 제로에 대한 펄스 없음) 또는 시간(예컨대, 1에 대한 제1 지속기간의 펄스, 제로에 대한 제2 지속기간의 펄스)에 의해 표현될 수 있다. 예시된 바와 같이, 4개의 디지털 입력 신호들(112-1, 112-2, 112-3 및 112-4)이 병렬로 수신된다. 이들 입력 신호들 각각은 입력 벡터의 별개의 값을 수신한다. 다른 실시예들에서, 더 적거나 또는 더 많은 수들의 디지털 입력 신호들이 수신될 수 있다. 디지털 입력 신호들(112) 각각은 이진-인코딩될 수 있다. 그러므로, 회로의 디지털 부분의 각각의 클록-사이클에 대해, 특정 비트-오더에 대한 비트가 디지털 입력 신호들(112)로서 수신된다. 예컨대, 4 비트 이진 값이 각각의 디지털 입력 신호를 통해 입력되고 있다면, 이진 값들이 수신되고 아날로그 도메인으로 병렬로 변환되기 위해 4개의 클록 사이클들이 필요할 수 있다. 디지털 입력 신호들(112)은, 각각의 값의 비트-오더가 최하위 비트(LSB; least significant bit)로부터 최상위 비트(MSB; most significant bit)로, MSB로부터 LSB로, 또는 임의의 미리-정의된 패턴이 되도록 이진-인코딩될 수 있다.
[0018] 디지털 입력 신호들(112)은 1-비트 DAC들(114)에 입력될 수 있다. 여기서도, 예시된 바와 같이, 4개의 1-비트 DAC들(114)(114-1, 114-2, 114-3 및 114-4)이 존재한다. 다른 실시예들에서, 더 적거나 또는 더 많은 수들의 1-비트 DAC들(114)이 존재할 수 있다. 각각의 이진-인코딩된 디지털 입력 신호(112)에 대해 단일 1-비트 DAC가 존재할 수 있다. 1-비트 DAC들(114) 각각은 수신된 디지털 값을 표시하는 아날로그 신호를 출력할 수 있다. 그러므로, 이진-인코딩된 아날로그 신호들(116)(116-1, 116-2, 116-3, 116-4)은 디지털 입력 신호들(112)의 아날로그 번역(translation)들을 표현할 수 있다.
[0019] 섹션(120)에서, 아날로그 벡터 행렬 곱셈기(122)는 이진-인코딩된 아날로그 신호들(116)을 수신한다. 아날로그 벡터 행렬 곱셈기(122)는 입력 값들의 각각의 비트-오더에 대해 곱셈 연산들을 순차적으로 수행한다(예컨대, LSB들에 대해 제1 클록 사이클, 제2 LSB들에 대해 제2 클록 사이클, 제2 MSB에 대해 제3 클록 사이클 등). 그러므로, 수신된 이진-인코딩된 아날로그 신호들(116)의 각각의 비트-오더에 대해 별개의 곱셈 연산이 수행된다. 아날로그 벡터 행렬 곱셈기(122)의 가능한 실시예에 관한 추가적인 세부사항은 도 2와 관련하여 제공된다. 이진-인코딩된 곱셈 결과 신호(124)는 합산 컴포넌트리(132)에 출력될 수 있다.
[0020] 합산 컴포넌트리(132)는 비트-오더 가중 합산 기능성을 수행하는 것으로 이해될 수 있다. 합산 컴포넌트리(132)는 아날로그 벡터 행렬 곱셈기(122)에 의해 현재 평가되고 있는 비트들의 비트-오더를 적절하게 고려하고, 비트-오더가 고려되도록 출력들을 저장하며, 합산 함수를 수행한다. 본원에서 상세히 설명되는 바와 같이, 비트-오더 가중이 합산 컴포넌트리(132)에 의해 수행되어서, 벡터 행렬 곱셈 회로에 의해 평가될 때 입력 값들이 이진-인코딩된 상태로 유지될 수 있게 한다.
[0021] 합산 회로소자의 가능한 아날로그 실시예에서, 전하 축적 및 재분배는 수동 비트-오더 가중 합산을 수행하기 위해 사용될 수 있다. 이진-인코딩된 신호들이 아날로그 벡터 행렬 곱셈기(122)로부터 수신될 때, 합산 컴포넌트리(132)는 전하 축적을 사용하여 부분 합산들을 누산할 수 있다. 일단 모든 비트-오더들(예컨대, 4개의 비트 값들을 갖는 입력 벡터에 대한 4개의 비트-오더들)이 아날로그 벡터 행렬 곱셈기(122)에 의해 곱해졌고, 합산 컴포넌트리(132)가 이를테면 전하 축적을 사용하여 부분 합산들을 저장했다면, 전하는 재분배될 수 있으며, 최종 합산 값을 표현하는 전압이 출력될 수 있다. 합산 컴포넌트리(132)의 아날로그 구현의 가능한 실시예에 관한 추가적인 세부사항이 도 3에 제시된다.
[0022] 도 2는 아날로그로 변환된 입력 벡터의 단일 비트-오더를 평가하는 아날로그 벡터 행렬 곱셈기의 실시예(200)를 예시한다. 아날로그 벡터 행렬 곱셈기(201)는 도 1의 아날로그 벡터 행렬 곱셈기(122)의 실시예를 표현할 수 있다. 그러나, 실시예(200)는 단지 예일 뿐이라는 것이 이해되어야 한다. 도 2에서, 이진 벡터 입력(Xi)은 Wij와 곱해질 것이다. 아날로그 벡터 행렬 곱셈기(201)는 다수의 가중 엘리먼트들(202, 204, 206, 208, 210, 212, 214 및 216)을 포함할 수 있다. 각각의 가중 엘리먼트는 1-비트 DAC로부터 이진-인코딩된 아날로그 신호들(116) 중 한 이진-인코딩된 아날로그 신호를 수신할 수 있다. 이 예에서, 가중 엘리먼트는 자신이 수신한 이진-인코딩된 아날로그 신호의 전압 및 특정 가중 엘리먼트의 가중 값에 기반하여 전류를 출력할 수 있다. 예컨대, 각각의 가중 엘리먼트는 다양한 컨덕턴스들을 사용하여 구현될 수 있다. 가중 컴포넌트들의 컨덕턴스들을 변화시킴으로써, 입력 전압에 따른 전류 출력의 양이 변화될 수 있다. 예컨대, 전압이 1 V이고, 가중 블록의 컨덕턴스가 8
Figure pct00003
이면, 8 ㎂의 출력이 획득될 수 있다. 이 값은 추가로, 값의 비트-오더에 기반하여 가중될 수 있다. 그러므로, 최하위 비트에 대해, 곱셈기는 1이고, 제2 LSB에 대해, 곱셈기는 2인 식일 것이다. 일부 실시예들에서, 각각의 가중 엘리먼트에 의해 사용되는 가중들은 제조 시에 미리 결정되어 고정된다. 다른 실시예들에서, 각각의 가중 엘리먼트의 가중은 제조 후에 구성가능하고 실시예(200)의 사용 동안 재구성가능할 수 있다.
[0023] 각각의 가중 엘리먼트(202, 204, 206, 208, 210, 212, 214 및 216)의 출력은 전기적 특성, 이를테면, 전류일 수 있다. 동일한 전류 출력에 연결된 가중 엘리먼트들로부터 출력되는 전류들은 함께 합산될 수 있다. 그러므로, 전류 출력(220)은 가중 엘리먼트들(202, 204, 206 및 208)에 의해 출력되는 전류의 합들을 포함할 수 있고; 전류 출력(222)은 가중 엘리먼트들(210, 212, 214 및 216)에 의해 출력되는 전류의 합들을 포함할 수 있다.
[0024] 입력 벡터의 각각의 값의 단일 비트가 한 번에 평가된다(그리고 비트-오더는 아날로그 벡터 행렬 곱셈기(201)에 의해 고려되지 않는다). 예컨대, 4개의 4-비트 값들을 갖는 입력 벡터에 대해, 각각의 값의 MSB가 먼저 평가되고, 이후에 각각의 값의 제2 MSB, 이후에 제2 LSB, 그리고 마지막으로 각각의 값의 LSB가 평가될 수 있다(따라서, 1-비트 DAC들에 의해 출력된 이진-인코딩된 데이터의 4개의 클록 사이클들에 대응함). 다른 실시예들에서, 평가는 LSB로부터 MSB로 또는 미리 정의된 임의의 순서로 진행될 수 있다. 본 문서에서 나중에 상세히 설명되는 바와 같이, 아날로그 벡터 행렬 곱셈기(201)의 출력은, 벡터 행렬 곱셈기에 의해 곱셈 연산이 수행되고 있는 비트들의 비트-오더를 고려하기 위해 합산 회로소자에 의해 가중된다.
[0025] 가중 엘리먼트들의 열(column)들의 수는 임의적이며, 입력 벡터가 곱해지고 있는 가중 행렬에 기반할 수 있다. 그러므로, 실시예(200)에서 2개의 열들이 존재하지만, 다른 엘리먼트들에는 더 적은 수의 또는 더 많은 수의 열들이 존재할 수 있다. 가중 엘리먼트들의 행(row)들의 수는 입력 벡터에 존재하는 값들의 수에 대응할 수 있다. 예컨대, 수학식 2는 아날로그 벡터 행렬 곱셈기(201)에 의한 전류 출력을 표현할 수 있다:
Figure pct00004
수학식 2
[0026] 이 예를 계속하면, 전류 출력들(예컨대, 전류 출력들(220, 222))은 이진-인코딩된 곱셈 결과 신호(124)를 생성하도록 함께 연결될 수 있다. 합산 컴포넌트리(132)는 정확한 최종 합산을 획득하기 위해 각각의 비트-오더를 적절하게 가중하고, 저장한 다음 합산한다.
[0027] 도 3은 아날로그 합산 회로의 실시예(300)를 예시한다. 전압, 전류, 전하 또는 어떤 다른 전기적 특성의 형태일 수 있는 신호들을 축적 및 재분배하기 위해 다양한 상이한 타입들의 회로들이 사용될 수 있다는 것이 이해되어야 한다. 아날로그 합산 회로의 핵심 양상은 아날로그 합산 회로가 아날로그 벡터 행렬 곱셈기(201)의 수신된 출력들에 적절한 비트-가중을 적용했다는 것이다. 예컨대, 입력 벡터의 제2 LSB에 대응하는 출력이 아날로그 벡터 행렬 곱셈기(201)에 의해 출력될 때, 아날로그 합산 회로는 LSB 및 제3 LSB의 절반의 비트-가중의 2배인 비트-가중을 적용한다. 실시예(300)는 도 1의 합산 컴포넌트리(132)를 표현할 수 있다. 입력(301)은 아날로그 벡터 행렬 곱셈기로부터의 이진-인코딩된 곱셈 결과 신호(124)를 표현한다. 입력(301)은 감지 증폭기(310)에 공급된다. 감지 증폭기(310)는 감지 증폭기(310)에 의해 입력(301) 상에서 수신된 전류에 기반하여 전압을 출력한다. 구체적으로, 실시예(300)는 수동 전하 공유 및 재분배를 사용할 수 있다. 그러한 어레인지먼트는, 전력 소모를 감소시키고 출력 값에 대한 열 잡음의 영향을 감소시키는 것을 도울 수 있다.
[0028] 실시예(300)는 커패시터-스위치 어레이(302)를 포함한다. 커패시터들은 비트-오더 가중될 수 있는데, 이는 각각의 커패시터의 커패시턴스가 특정 비트-오더에 대해 가중된 전하량을 수동적으로 저장하도록 선택될 수 있음을 의미한다. 예로서, 4-비트 값을 출력하기 위해, 4개의 커패시터들이 존재한다. 커패시터(316-1)는 LSB에 대응하는 전하를 저장하기 위해 사용될 수 있다. 그러므로, 커패시터(316-1)는 C(여기서, C는 단위 값임)의 커패시턴스를 가질 수 있다. 커패시터(316-2)는 제2 LSB에 대응하는 전하를 저장하기 위해 사용될 수 있다. 그러므로, 커패시터(316-2)는 2C(이는 C와 같은 가중치의 2배를 표현하여서, 이진 비트-오더에서 제2 LSB에 대응함)의 커패시턴스를 가질 수 있다. 커패시터(316-3)는 제2 MSB에 대응하는 전하를 저장하기 위해 사용될 수 있다. 그러므로, 커패시터(316-3)는 4C의 커패시턴스를 가질 수 있다. 커패시터(316-4)는 MSB에 대응하는 전하를 저장하기 위해 사용될 수 있다. 그러므로, 커패시터(316-4)는 8C의 커패시턴스를 가질 수 있다. 각각의 커패시터는 비트-오더에 대응하는 커패시턴스를 가지며, 이 비트-오더에 대해, 이 커패시턴스는 아날로그 벡터 행렬 곱셈기의 출력을 표시하는 전하를 저장하는 데 사용될 것이다. 커패시턴스는 수학식 3에 따라 계산될 수 있으며, 여기서, C는 단위 값이고, N은 입력 벡터의 값들의 비트 수이다.
Figure pct00005
수학식 3
[0029] 디지털일 수 있고 섹션(110)과 동일한 클록과 연결될 수 있는 스위치 제어 로직(330)은 스위치들(312, 314-1, 314-2, 314-3, 314-4 및 314-5)이 개방되는지 또는 폐쇄되는지를 제어할 수 있다. 간략화를 위해, 도 3에서, 스위치 제어 로직(330)과 스위치들(312 및 314) 사이의 통신은 예시되지 않는다. 스위치 제어 로직(330)은 전용 로직 회로소자일 수 있거나, 또는 프로세싱 시스템의 일부로서 통합될 수 있다. 스위치 제어 로직(330)은 초기에 스위치들(314-1, 314-2, 314-3, 314-4 및 314-5)을 폐쇄할 수 있는 한편, 스위치(312)는 개방된다. 스위치(314-5)는 리셋으로서 기능하여서, 커패시터들(316-1, 316-2, 316-3 및 316-4)에 존재하는 전하가 접지(ground)(320)로 방전되게 할 수 있다.
[0030] 그 다음, 스위치 제어 로직(330)은, 아날로그 벡터 행렬 곱셈기(122)에 의해 평가되고 있는 현재 비트-오더와 연관된 커패시턴스를 갖는 커패시터가 이진-인코딩된 곱셈 결과 신호(124)에 연결되도록 스위치들을 제어할 수 있다. 스위치 제어 로직(330)은 스위치(312)를 폐쇄하고 스위치들(314-2, 314-3, 314-4 및 314-5)을 개방할 수 있다. 그러므로, 스위치(314-1)만이 폐쇄된 상태로 유지되어서, 커패시터(316-1)를 감지 증폭기(310)의 출력에 연결할 수 있다. 이 클록 사이클 동안, 아날로그 벡터 행렬 곱셈기(122)는 LSB에 대응하는 이진-인코딩된 곱셈 결과 신호를 출력하고 있을 수 있다. 다음 클록 사이클에 대해, 스위치 제어 로직(330)은, 스위치(312)를 폐쇄 상태로 유지하고 스위치(314-1)를 개방하며 스위치(314-2)를 폐쇄할 수 있다. 이 클록 사이클 동안, 아날로그 벡터 행렬 곱셈기(122)는 제2 LSB에 대응하는 이진-인코딩된 곱셈 결과 신호를 출력할 수 있다. 커패시터(316-1)의 커패시턴스의 2배를 갖는 커패시터(316-2)에 의해, 저장된 전하량에 적절한 비트 가중이 수동적으로 적용된다. 다음 클록 사이클에 대해, 스위치 제어 로직(330)은, 스위치(312)를 폐쇄 상태로 유지하고 스위치(314-2)를 개방하며 스위치(314-3)를 폐쇄할 수 있다. 이 클록 사이클 동안, 아날로그 벡터 행렬 곱셈기(122)는 제2 MSB에 대응하는 이진-인코딩된 곱셈 결과 신호를 출력할 수 있다. 커패시터(316-2)의 커패시턴스의 2배를 갖는 커패시터(316-3)에 의해, 저장된 전하량에 적절한 비트 가중이 수동적으로 적용된다. 다음 클록 사이클에 대해, 스위치 제어 로직(330)은, 스위치(312)를 폐쇄 상태로 유지하고 스위치(314-3)를 개방하며 스위치(314-4)를 폐쇄할 수 있다. 이 클록 사이클 동안, 아날로그 벡터 행렬 곱셈기(122)는 MSB에 대응하는 이진-인코딩된 곱셈 결과 신호를 출력할 수 있다. 커패시터(316-3)의 커패시턴스의 2배를 갖는 커패시터(316-4)에 의해, 저장된 전하량에 의해 적절한 비트 가중이 수동적으로 적용된다. 이 스테이지에서, 스위치드 커패시터-스위치 어레이(302)는 이진-인코딩된 곱셈 결과들을 비트-오더 가중된 커패시터들에 전하로서 별개로 저장한다.
[0031] 이 시점에서, 커패시터들(316-1, 216-2, 316-3 및 316-4) 각각은 커패시터들의 특정 비트-오더에 대응하는 전하량(Q)을 저장한다. 주어진 비트-오더(N)에 대해 특정 커패시터 상에 저장된 전하량은 수학식 4에 의해 정의될 수 있다.
Figure pct00006
수학식 4
[0032] 그러므로, 전하량은 커패시터의 커패시턴스에 감지 증폭기(310)에 의해 출력된 전압을 곱한 것과 동일하다. 수학식 3과 관련하여 상세히 설명된 바와 같이, 커패시턴스는 각각의 더 큰 비트-오더에 대해
Figure pct00007
의 팩터만큼 증가된다.
[0033] 다음 클록 사이클 동안, 스위치 제어 로직(330)은, 스위치(312)를 개방하고 스위치(314-5)를 개방된 상태로 유지하며 스위치들(314-1, 314-2, 314-3 및 314-4)을 폐쇄할 수 있다. 이 단계는 전하 재분배 단계로서 이해될 수 있다. 각각의 커패시터가 자신의 비트-오더에 대응하는 전하량을 저장하기 때문에, 전하 재분배 스테이지 동안, 각각의 개별적인 커패시터 내의 전하는 커패시터들(316-1, 316-2, 316-2 및 316-3) 사이에서 분배되고 최종 합산을 표시한다. 일단 재분배가 발생했다면, 합산은 커패시터들(316)의 최상부 플레이트들에서의 전압 값으로서 표현되며, 이는 합산 출력(134)을 통해 출력된다. 수학식 5는 각각의 커패시터에 저장된 전하에 기반하여 합산 출력(134)을 통해 출력될 전압 값을 표현한다:
Figure pct00008
수학식 5
[0034] 수학식 5에서, 각각의 커패시터의 전하는, 아날로그 벡터-행렬 곱셈의 최종 가중된 합을 표현하는 합산 출력(134)으로서 VOut에 커패시터의 연관된 비트-오더에 기반한 적절한 가중된 양을 기여한다.
[0035] 전체적으로, 입력 벡터가 4-비트 값들을 포함하는 경우에 대해, 합산 프로세스는 유효 합산 출력(134)이 출력될 때까지 6개의 클록 사이클들을 취할 수 있다. 더 일반적으로 말하면, 합산 프로세스는 리셋 클록 사이클, 재분배 클록 사이클, 및 값의 각각의 비트에 대한 클록 사이클을 요구할 수 있다.
[0036] 도 4는 4개의 커패시터들을 예시하지만, 이 실시예는 단지 예시적인 목적들을 위한 것임이 이해되어야 한다. 커패시터들의 수는 입력 벡터의 값들에 대한 상이한 수의 비트들을 수용하기 위해 증가 또는 감소될 수 있다. 대안적인 실시예에서, 차동(differential) 합산 회로소자는, 공통 모드 간섭이 합산 출력(134)으로부터 소거될 수 있도록 구현될 수 있다. 추가로, 다른 실시예들은 합산 출력(134)을 결정하기 위해 전하를 저장 및 합산하는 데 대안적인 수동 아날로그 컴포넌트들을 사용할 수 있다. 또 다른 실시예들에서, 합산 회로소자는 디지털 회로소자를 사용하여 구현될 수 있다.
[0037] 도 1 내지 도 3에 상세히 설명된 시스템들 및 회로들을 사용하여 다양한 방법들이 수행될 수 있다. 도 4는 벡터-행렬 곱셈 연산을 수행하기 위한 방법(400)의 실시예를 예시한다. 방법(400)은 도 1 내지 도 3의 회로들을 사용하여 또는 그러한 회로들의 대안적인 버전들을 이용하여 수행될 수 있다. 즉, 회로들의 특정 예들, 이를테면, 도 2 및 도 3의 회로들은 도 1의 회로 및 도 4의 방법이 어떻게 구현될 수 있는지에 대한 예들이라는 것이 이해되어야 한다. 일부 실시예들에서, 디지털 합산 회로가 사용될 수 있다.
[0038] 블록(410)에서, 이진-인코딩된 신호들의 비트-오더가 이진-인코딩된 아날로그 신호들로 변환될 수 있다. 이 함수를 수행하기 위해, 다수의 1-비트 DAC들이 병렬로 사용될 수 있다. 그러므로, 각각의 DAC는 주어진 비트-오더에 대해 디지털 신호를 아날로그 신호로 병렬로 변환할 수 있다. 각각의 DAC는 입력 벡터에 대한 특정 비트-오더를 표시하는 이진-인코딩된 디지털 신호를 수신할 수 있다. 각각의 벡터는 N 개의 비트들을 가질 수 있다. 그러므로, 1-비트 DAC들이 이진-인코딩된 디지털 신호들을 아날로그 신호들로 변환하는 데 N 개의 클록 사이클들이 걸릴 수 있다. 예컨대, 이진-인코딩된 디지털 신호가 "10011"이면, 이 이진-인코딩된 값(이는 가장 오른쪽의 디짓(digit)이 LSB인 것으로 가정하면 19의 값을 표현함)이 1-비트 DAC에 의해 출력되는 데 5개의 클록 사이클들이 걸릴 수 있다. 각각의 1-비트 DAC에 의해 출력되는 아날로그 전압은 각각의 1-비트 DAC에 제공되는 전력 전압에 의존할 수 있다.
[0039] 블록(420)에서, 수신된 이진-인코딩된 아날로그 신호들의 비트-오더에 대해 벡터 행렬 곱셈이 순차적으로 수행된다. 블록(420)은 1-비트 DAC들로부터 수신된 입력 벡터들의 특정 비트-오더에 대해 수행될 수 있다. 즉, 블록(420)은 먼저, 입력 벡터의 값들의 각각의 LSB에 대해 수행될 수 있다(그 다음, 블록(420)의 다음 반복(iteration) 동안, 제2 LSB가 평가될 수 있다). 통상적으로, 평가된 제1 비트는 입력 벡터의 값들의 MSB 또는 LSB일 것이다. 벡터 행렬 곱셈은 도 2의 실시예(200)와 유사한 회로에 의해 수행될 수 있다. 아날로그 곱셈 회로들의 다른 실시예들이 가능하다는 것이 이해되어야 한다. 벡터 행렬 곱셈 곱셈기(vector matrix multiplication multiplier)는 가중 컴포넌트들을 포함할 수 있고, 가중 컴포넌트들 각각은 아날로그 입력 값과 가중의 곱을 표시하는 가중된 전류량을 유발한다. 그러한 전류들 또는 어떤 다른 전기적 특성은 합산 회로소자에 출력될 수 있다.
[0040] 블록(430)에서, 벡터 행렬 곱셈기가 블록(420)에서 곱셈 함수들을 수행한 주어진 비트-오더에 대해, 벡터 행렬 곱셈기의 출력(전류 또는 전압의 형태일 수 있음)은 적절한 비트-오더 가중으로 저장될 수 있다. 수신된 신호의 표시는 아날로그 벡터 행렬 곱셈기에 의해 평가된 비트들의 비트-오더에 따라 가중되며, 그리고 저장된다. 예컨대, 아날로그 벡터 행렬 곱셈기에 의한 평가가 LSB로부터 MSB로 수행되면, 각각의 후속 비트에는 이전 비트와 비교해서 합산 회로에 의해 저장될 때 2배의 가중치가 제공될 수 있다. 단지 예로서, 감지 증폭기는 아날로그 벡터 행렬 곱셈기로부터 수신된 전류를 전압으로 바꿀(translate) 수 있다. 합산 회로의 일부 예들에서, 전압은 블록(420)이 수행된 비트-오더에 대응하는 커패시턴스를 갖는 특정 커패시터를 충전하기 위해 사용될 수 있다. 그러므로, 예컨대, LSB가 평가될 때, 아날로그 행렬 곱셈기의 출력은 C의 커패시턴스를 갖는 커패시터를 충전하기 위해 사용될 수 있고; 제2 LSB가 평가될 때, 아날로그 행렬 곱셈기의 출력은 2C의 커패시턴스를 갖는 커패시터를 충전하기 위해 사용될 수 있는 식이다.
[0041] 블록(435)에서, 추가 비트-오더들이 여전히 평가되어야 하면, 방법(400)은 블록(410)으로 리턴하고 입력 벡터의 다음 비트-오더에 대해 수행될 수 있다. 그러므로, 각각의 비트-오더는 아날로그 벡터 행렬 곱셈기에 의해 순차적으로 평가되고, 대응하는 출력은 그 비트-오더에 대응하는 가중으로 합산 회로에 의해 순차적으로 저장된다. 곱셈 연산이 블록(420)에서 모든 비트-오더들에 대해 수행되었고 블록(430)에서 저장되었다면, 방법(400)은 블록(440)으로 진행될 수 있다. 그러므로, 입력 벡터의 각각의 값이 4개의 비트들을 갖는다면, 블록들(420 및 430)은 값들의 각각의 비트에 대해 한 번씩 4번 수행된다.
[0042] 블록(440)에서, 이를테면 누산을 수행함으로써 합산이 결정될 수 있다. 일부 실시예들에서, 합산은 아날로그 도메인에서 결정된다. 블록(430)에 저장된 다양한 비트-오더 가중된 값들이 함께 합산될 수 있다. 단지 예로서, 스위치-커패시터 어레이가 사용되는 경우, 커패시터들의 전하가 커패시터들 사이에서 재분배될 수 있으며, 이는 총 전하를 축적하는 역할을 하며, 특정 비트-오더에 대응하는 각각의 커패시터의 커패시턴스에 의해 비트-가중된다. 이를 수행하기 위해, 스위치-커패시터 어레이를 격리시키도록 스위치가 개방될 수 있고, 커패시터들에 직접적으로 연결된 모든 스위치들(예컨대, 도 3의 314-1, 314-2, 314-3 및 314-4)이 폐쇄될 수 있다. 각각의 커패시터의 전하는 커패시터들의 필드 사이에서 재분배될 수 있다. 그러나, 총 전하량은 일정하게 유지될 것이며, 커패시터들 사이의 커패시턴스의 차이로 인해 적절하게 비트-오더 가중될 것이다. 다른 실시예들에서, 커패시터 어레이를 사용하기보다는, 각각의 곱셈 결과의 적절한 비트-오더들을 사용하여 최종 합산을 결정하기 위해 다른 형태의 아날로그 또는 디지털 회로가 사용될 수 있다.
[0043] 블록(450)에서, 합산의 표시가 출력된다. 일부 실시예들에서, 합산의 표시는 아날로그 전기적 특성, 이를테면, 전압 크기로서 출력된다. 예컨대, 도 3에서와 같은 커패시터 어레이의 최상부 플레이트에서의 전압은 벡터-행렬 곱셈의 합산을 표현할 수 있다. 이 전압은 측정될 수 있고, 가능하게는 수치 값을 결정하기 위해 사용될 수 있다. 예컨대, 별개의 회로가 이 출력 전압, 이를테면, ADC를 사용하여 전압을 다시 디지털 도메인으로 변환할 수 있다.
[0044] 위에서 논의된 방법들, 시스템들 및 디바이스들은 예들이다. 다양한 구성들은 다양한 절차들 또는 컴포넌트들을 적절하게 생략, 대체 또는 추가할 수 있다. 예컨대, 대안적인 구성들에서, 방법들은 설명된 것과 상이한 순서로 수행될 수 있고, 그리고/또는 다양한 스테이지들이 추가, 생략 및/또는 조합될 수 있다. 또한, 특정 구성들과 관련하여 설명된 특징들은 다양한 다른 구성들로 조합될 수 있다. 구성들의 상이한 양상들 및 엘리먼트들이 유사한 방식으로 조합될 수 있다. 또한, 기술은 발전하며, 따라서 엘리먼트들 중 많은 엘리먼트들은 예들이며, 본 개시내용 또는 청구항들의 범위를 제한하지 않는다.
[0045] 예시적인 구성들(구현들을 포함함)의 철저한 이해를 제공하기 위해 특정 세부사항들이 설명에서 제공된다. 그러나, 구성들은 이들 특정 세부사항들 없이 실시될 수 있다. 예컨대, 구성들을 모호하게 하는 것을 회피하기 위해서, 잘 알려진 회로들, 프로세스들, 알고리즘들, 구조들 및 기법들이 불필요한 세부사항 없이 도시되었다. 이 설명은 단지 예시적인 구성들을 제공하며, 청구항들의 범위, 적용가능성 또는 구성들을 제한하지 않는다. 오히려, 구성들의 이전의 설명은 설명된 기법들을 구현하기 위한 가능한 설명을 당업자들에게 제공할 것이다. 본 개시내용의 사상 또는 범위를 벗어나지 않으면서, 엘리먼트들의 기능 및 어레인지먼트에서 다양한 변경들이 행해질 수 있다.
[0046] 또한, 구성들은 흐름도 또는 블록 다이어그램으로서 묘사된 프로세스로서 설명될 수 있다. 구성들 각각은 순차적인 프로세스로서 동작들을 설명할 수 있지만, 동작들 중 많은 동작들은 병렬로 또는 동시에 수행될 수 있다. 부가하여, 동작들의 순서가 재배열될 수 있다. 프로세스는 도면에 포함되지 않은 추가적인 단계들을 가질 수 있다.
[0047] 몇몇 예시적인 구성들을 설명했지만, 본 개시내용의 사상을 벗어나지 않으면서 다양한 수정들, 대안적인 구성들 및 등가물들이 사용될 수 있다. 예컨대, 위의 엘리먼트들은 더 큰 시스템의 컴포넌트들일 수 있으며, 여기서, 다른 규칙들은 본 발명의 애플리케이션에 우선하거나 또는 그렇지 않으면 본 발명의 애플리케이션을 수정할 수 있다. 또한, 위의 엘리먼트들이 고려되기 전에, 그 동안 또는 그 후에 다수의 단계들이 착수될 수 있다.

Claims (15)

  1. 벡터-행렬 곱셈을 수행하기 위한 방법으로서,
    복수의 1-비트 디지털-아날로그 변환기(DAC; digital to analog converter)들을 사용하여, 복수의 이진-인코딩된 값(binary-encoded value)들을 포함하는 디지털 입력 벡터를 복수의 아날로그 신호들로 변환하는 단계;
    아날로그 벡터 행렬 곱셈기를 사용하여, 상기 복수의 아날로그 신호들의 각각의 비트-오더(bit-order)에 대해 가중 행렬을 사용하여 벡터-행렬 곱셈 연산을 순차적으로 수행하는 단계;
    각각의 순차적으로 수행된 벡터-행렬 곱셈 연산에 대해, 상기 아날로그 벡터 행렬 곱셈기의 출력의 비트-오더링된 표시(bit-ordered indication)를 저장하는 단계; 및
    합산 회로를 사용하여, 상기 순차적으로 수행된 벡터-행렬 곱셈 연산의 비트-오더 가중 합산(bit-order weighted summation)을 수행하는 단계
    를 포함하는,
    벡터-행렬 곱셈을 수행하기 위한 방법.
  2. 제1 항에 있어서,
    각각의 비트-오더에 대해 상기 가중 행렬을 사용하여 상기 벡터-행렬 곱셈 연산을 순차적으로 수행하기 위한 클록 사이클들의 수는 상기 입력 벡터의 상기 이진-인코딩된 값들의 비트-오더들의 수와 동일한,
    벡터-행렬 곱셈을 수행하기 위한 방법.
  3. 제1 항에 있어서,
    상기 비트-오더 가중 합산은 아날로그 회로를 사용하여 수행되는,
    벡터-행렬 곱셈을 수행하기 위한 방법.
  4. 제3 항에 있어서,
    상기 비트-오더 가중 합산은 상기 합산 회로에 의해 저장된 전하량에 기반하여 수행되는,
    벡터-행렬 곱셈을 수행하기 위한 방법.
  5. 제1 항에 있어서,
    상기 비트-오더 가중 합산은 단일 클록 사이클에서 수행되는,
    벡터-행렬 곱셈을 수행하기 위한 방법.
  6. 벡터-행렬 곱셈기 회로로서,
    복수의 디지털 입력들 ―각각의 디지털 입력은 입력 벡터의 이진-인코딩된 입력 값을 수신함―;
    복수의 1-비트 DAC(digital to analog converter)들 ―각각의 1-비트 DAC는 상기 복수의 디지털 입력들 중 대응하는 디지털 입력과 연결되고; 그리고
    각각의 1-비트 DAC는 대응하는 디지털 입력에 대해 이진-인코딩된 아날로그 신호를 출력함―;
    한 번에 단일 비트-오더에 대해 이진-인코딩된 벡터 곱셈 연산들을 수행하는 아날로그 벡터 행렬 곱셈기 회로 ―상기 아날로그 벡터 행렬 곱셈기 회로는 상기 복수의 1-비트 DAC들의 각각의 1-비트 DAC로부터 상기 이진-인코딩된 아날로그 신호를 수신함―; 및
    상기 아날로그 벡터 행렬 곱셈기 회로로부터 출력들을 순차적으로 수신하고, 출력의 비트-오더에 따라 상기 아날로그 벡터 행렬 곱셈기 회로로부터의 각각의 수신된 출력을 가중하며, 상기 아날로그 벡터 행렬 곱셈기 회로로부터의 가중된 수신된 출력들을 합산하는 합산 회로
    를 포함하는,
    벡터-행렬 곱셈기 회로.
  7. 제6 항에 있어서,
    상기 아날로그 벡터 행렬 곱셈기 회로는 벡터 곱셈 출력들을 표시하는 복수의 전류들을 출력하는,
    벡터-행렬 곱셈기 회로.
  8. 제6 항에 있어서,
    상기 아날로그 벡터 행렬 곱셈기 회로는 상기 아날로그 벡터 행렬 곱셈기 회로로부터의 출력에 미리-정의된 가중을 적용하는 복수의 가중 컴포넌트들을 포함하는,
    벡터-행렬 곱셈기 회로.
  9. 제6 항에 있어서,
    상기 합산 회로는 아날로그 컴포넌트리(componentry)를 사용하여 상기 아날로그 벡터 행렬 곱셈기 회로로부터의 수신된 이진-인코딩된 출력들을 합산하는,
    벡터-행렬 곱셈기 회로.
  10. 제9 항에 있어서,
    상기 합산 회로는 병렬로 배열된 복수의 커패시터들을 포함하는,
    벡터-행렬 곱셈기 회로.
  11. 제10 항에 있어서,
    상기 복수의 커패시터들의 각각의 커패시터는 비트-오더 가중에 대응하는 커패시턴스를 갖는,
    벡터-행렬 곱셈기 회로.
  12. 벡터-행렬 곱셈을 수행하기 위한 장치로서,
    복수의 이진-인코딩된 값들을 포함하는 입력 벡터를 복수의 아날로그 신호들로 변환하는 복수의 1-비트 DAC(digital to analog converter)들;
    상기 복수의 아날로그 신호들의 각각의 비트-오더에 대해 벡터-행렬 곱셈 연산을 순차적으로 수행하기 위한 수단;
    각각의 순차적으로 수행된 벡터-행렬 곱셈 연산에 대해 상기 벡터-행렬 곱셈 연산의 출력의 비트-오더링된 표시를 저장하기 위한 수단; 및
    각각의 비트-오더에 대해 상기 순차적으로 수행된 벡터-행렬 곱셈 연산들의 합산을 표시하는 합산 출력을 생성하기 위해 비트-오더 가중 누산(bit-order weighted accumulation)을 수행하기 위한 수단
    을 포함하는,
    벡터-행렬 곱셈을 수행하기 위한 장치.
  13. 제12 항에 있어서,
    각각의 비트-오더에 대해 상기 벡터-행렬 곱셈 연산을 순차적으로 수행하기 위한 클록 사이클들의 수는 상기 입력 벡터의 상기 이진-인코딩된 값들의 비트-오더들의 수와 동일한,
    벡터-행렬 곱셈을 수행하기 위한 장치.
  14. 제13 항에 있어서,
    상기 비트-오더 가중 누산은 아날로그 회로를 사용하여 수행되는,
    벡터-행렬 곱셈을 수행하기 위한 장치.
  15. 제14 항에 있어서,
    상기 비트-오더 가중 누산은 합산 회로에 의해 저장된 전하량에 기반하여 수행되는,
    벡터-행렬 곱셈을 수행하기 위한 장치.
KR1020217039984A 2019-05-09 2020-04-22 비트-오더링된 이진-가중 곱셈기-누산기 KR102598838B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/408,059 2019-05-09
US16/408,059 US11194886B2 (en) 2019-05-09 2019-05-09 Bit-ordered binary-weighted multiplier-accumulator
PCT/US2020/029326 WO2020226898A1 (en) 2019-05-09 2020-04-22 Bit-ordered binary-weighted multiplier-accumulator

Publications (2)

Publication Number Publication Date
KR20210151265A true KR20210151265A (ko) 2021-12-13
KR102598838B1 KR102598838B1 (ko) 2023-11-03

Family

ID=73046229

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217039984A KR102598838B1 (ko) 2019-05-09 2020-04-22 비트-오더링된 이진-가중 곱셈기-누산기

Country Status (7)

Country Link
US (1) US11194886B2 (ko)
EP (1) EP3966707A4 (ko)
JP (1) JP7384925B2 (ko)
KR (1) KR102598838B1 (ko)
CN (1) CN113811872A (ko)
TW (1) TWI779285B (ko)
WO (1) WO2020226898A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021050590A1 (en) * 2019-09-09 2021-03-18 Qualcomm Incorporated Systems and methods for modifying neural networks for binary processing applications
KR20210034172A (ko) * 2019-09-20 2021-03-30 에스케이하이닉스 주식회사 Mac 연산 동작을 수행하는 반도체 장치
US11424764B2 (en) * 2019-11-13 2022-08-23 Micron Technology, Inc. Recurrent neural networks and systems for decoding encoded data
US20220291900A1 (en) * 2021-03-10 2022-09-15 Qualcomm Incorporated Analog Adders For Multi-bit MAC Arrays In Reconfigurable Analog Based Neural Networks
KR20220141652A (ko) * 2021-04-13 2022-10-20 삼성전자주식회사 멀티-비트 연산 장치 및 방법
US11973513B2 (en) 2021-04-27 2024-04-30 Micron Technology, Inc. Decoders and systems for decoding encoded data using neural networks
CN113032723B (zh) * 2021-05-25 2021-08-10 广东省新一代通信与网络创新研究院 一种矩阵乘法器的实现方法及矩阵乘法器装置
CN113741857A (zh) * 2021-07-27 2021-12-03 北京大学 一种乘累加运算电路
US20230083270A1 (en) * 2021-09-14 2023-03-16 International Business Machines Corporation Mixed signal circuitry for bitwise multiplication with different accuracies
US11755408B2 (en) 2021-10-07 2023-09-12 Micron Technology, Inc. Systems for estimating bit error rate (BER) of encoded data using neural networks
US20230146445A1 (en) * 2021-10-31 2023-05-11 Redpine Signals, Inc. Modular Analog Multiplier-Accumulator Unit Element for Multi-Layer Neural Networks

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04177529A (ja) * 1990-11-09 1992-06-24 Nec Corp 除算および乗算回路
JPH1078994A (ja) * 1996-09-03 1998-03-24 Yozan:Kk 積和演算回路
US20170228345A1 (en) * 2016-02-08 2017-08-10 Spero Devices, Inc. Analog Co-Processor
JP2018501536A (ja) * 2014-10-30 2018-01-18 ヒューレット パッカード エンタープライズ デベロップメント エル ピーHewlett Packard Enterprise Development LP ベクトル処理のためのダブルバイアスメムリスティブドット積エンジン
US20190080230A1 (en) * 2017-09-11 2019-03-14 Samsung Electronics Co., Ltd. Method and system for performing analog complex vector-matrix multiplication
US20190102358A1 (en) * 2017-09-29 2019-04-04 Crossbar, Inc. Resistive random access memory matrix multiplication structures and methods

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4354101B2 (ja) 2000-08-02 2009-10-28 クラリオン株式会社 アナログ式行列演算回路
IL145245A0 (en) * 2001-09-03 2002-06-30 Jtc 2000 Dev Delaware Inc System and method including vector-matrix multiplication
US20050125477A1 (en) 2003-12-04 2005-06-09 Genov Roman A. High-precision matrix-vector multiplication on a charge-mode array with embedded dynamic memory and stochastic method thereof
US10235343B2 (en) 2012-11-06 2019-03-19 Pavel Dourbal Method for constructing a circuit for fast matrix-vector multiplication
EP3289477B1 (en) * 2016-01-30 2021-08-25 Hewlett Packard Enterprise Development LP Dot product engine with negation indicator
US11315009B2 (en) 2017-03-03 2022-04-26 Hewlett Packard Enterprise Development Lp Analog multiplier-accumulators
US11263522B2 (en) * 2017-09-08 2022-03-01 Analog Devices, Inc. Analog switched-capacitor neural network
US10831446B2 (en) 2018-09-28 2020-11-10 Intel Corporation Digital bit-serial multi-multiply-and-accumulate compute in memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04177529A (ja) * 1990-11-09 1992-06-24 Nec Corp 除算および乗算回路
JPH1078994A (ja) * 1996-09-03 1998-03-24 Yozan:Kk 積和演算回路
JP2018501536A (ja) * 2014-10-30 2018-01-18 ヒューレット パッカード エンタープライズ デベロップメント エル ピーHewlett Packard Enterprise Development LP ベクトル処理のためのダブルバイアスメムリスティブドット積エンジン
US20170228345A1 (en) * 2016-02-08 2017-08-10 Spero Devices, Inc. Analog Co-Processor
US20190080230A1 (en) * 2017-09-11 2019-03-14 Samsung Electronics Co., Ltd. Method and system for performing analog complex vector-matrix multiplication
US20190102358A1 (en) * 2017-09-29 2019-04-04 Crossbar, Inc. Resistive random access memory matrix multiplication structures and methods

Also Published As

Publication number Publication date
TW202101197A (zh) 2021-01-01
EP3966707A1 (en) 2022-03-16
EP3966707A4 (en) 2023-01-25
JP7384925B2 (ja) 2023-11-21
KR102598838B1 (ko) 2023-11-03
CN113811872A (zh) 2021-12-17
US20200356620A1 (en) 2020-11-12
WO2020226898A1 (en) 2020-11-12
TWI779285B (zh) 2022-10-01
JP2022533539A (ja) 2022-07-25
US11194886B2 (en) 2021-12-07

Similar Documents

Publication Publication Date Title
KR102598838B1 (ko) 비트-오더링된 이진-가중 곱셈기-누산기
CN107437944B (zh) 一种电容型逐次逼近模数转换器及其自校准方法
TWI768479B (zh) 數位類比轉換方法與向量矩陣乘法設備
CN107636640A (zh) 具有求反指示符的点积引擎
US10438116B2 (en) Neuromorphic arithmetic device
CN110086468A (zh) 一种非二进制逐次逼近型模数转换器的权重校准方法
US11893078B2 (en) Analog dot product multiplier
US11922131B2 (en) Scalable, multi-precision, self-calibrated multiplier-accumulator architecture
US20220113942A1 (en) Throughput and precision-programmable multiplier-accumulator architecture
US11681776B2 (en) Adaptive settling time control for binary-weighted charge redistribution circuits
Brenna et al. A tool for the assisted design of charge redistribution SAR ADCs
CN107222212B (zh) 提高逐次逼近型模数转换器电路信噪比的方法与实现电路
CN112784971A (zh) 基于数模混合神经元的神经网络运算电路
CN115906735B (zh) 基于模拟信号的多比特数存算一体电路、芯片及计算装置
CN117492696A (zh) 乘加运算电路、存储器及电子设备
Kunal et al. Automated synthesis of mixed-signal ML inference hardware under accuracy constraints
CN117879603A (zh) 一种sar型adc的低功耗数字前台自校准方法
CN116414352A (zh) 电路、乘加器和电路优化方法
CN115756388A (zh) 多模式存算一体电路、芯片及计算装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant