KR20210020912A - 광자 처리 시스템들 및 방법들 - Google Patents

광자 처리 시스템들 및 방법들 Download PDF

Info

Publication number
KR20210020912A
KR20210020912A KR1020207036125A KR20207036125A KR20210020912A KR 20210020912 A KR20210020912 A KR 20210020912A KR 1020207036125 A KR1020207036125 A KR 1020207036125A KR 20207036125 A KR20207036125 A KR 20207036125A KR 20210020912 A KR20210020912 A KR 20210020912A
Authority
KR
South Korea
Prior art keywords
matrix
optical
photon
vector
input
Prior art date
Application number
KR1020207036125A
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 KR20210020912A publication Critical patent/KR20210020912A/ko

Links

Images

Classifications

    • 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/067Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using optical means
    • G06N3/0675Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using optical means using electro-optical, acousto-optical or opto-electronic means
    • GPHYSICS
    • G02OPTICS
    • G02FOPTICAL DEVICES OR ARRANGEMENTS FOR THE CONTROL OF LIGHT BY MODIFICATION OF THE OPTICAL PROPERTIES OF THE MEDIA OF THE ELEMENTS INVOLVED THEREIN; NON-LINEAR OPTICS; FREQUENCY-CHANGING OF LIGHT; OPTICAL LOGIC ELEMENTS; OPTICAL ANALOGUE/DIGITAL CONVERTERS
    • G02F1/00Devices or arrangements for the control of the intensity, colour, phase, polarisation or direction of light arriving from an independent light source, e.g. switching, gating or modulating; Non-linear optics
    • G02F1/01Devices or arrangements for the control of the intensity, colour, phase, polarisation or direction of light arriving from an independent light source, e.g. switching, gating or modulating; Non-linear optics for the control of the intensity, phase, polarisation or colour 
    • G02F1/21Devices or arrangements for the control of the intensity, colour, phase, polarisation or direction of light arriving from an independent light source, e.g. switching, gating or modulating; Non-linear optics for the control of the intensity, phase, polarisation or colour  by interference
    • GPHYSICS
    • G02OPTICS
    • G02FOPTICAL DEVICES OR ARRANGEMENTS FOR THE CONTROL OF LIGHT BY MODIFICATION OF THE OPTICAL PROPERTIES OF THE MEDIA OF THE ELEMENTS INVOLVED THEREIN; NON-LINEAR OPTICS; FREQUENCY-CHANGING OF LIGHT; OPTICAL LOGIC ELEMENTS; OPTICAL ANALOGUE/DIGITAL CONVERTERS
    • G02F1/00Devices or arrangements for the control of the intensity, colour, phase, polarisation or direction of light arriving from an independent light source, e.g. switching, gating or modulating; Non-linear optics
    • G02F1/01Devices or arrangements for the control of the intensity, colour, phase, polarisation or direction of light arriving from an independent light source, e.g. switching, gating or modulating; Non-linear optics for the control of the intensity, phase, polarisation or colour 
    • G02F1/21Devices or arrangements for the control of the intensity, colour, phase, polarisation or direction of light arriving from an independent light source, e.g. switching, gating or modulating; Non-linear optics for the control of the intensity, phase, polarisation or colour  by interference
    • G02F1/212Mach-Zehnder type
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B10/00Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
    • H04B10/50Transmitters
    • H04B10/516Details of coding or modulation
    • H04B10/548Phase or frequency modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B10/00Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
    • H04B10/60Receivers
    • H04B10/61Coherent receivers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B10/00Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
    • H04B10/70Photonic quantum communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B10/00Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
    • H04B10/80Optical aspects relating to the use of optical transmission for specific applications, not provided for in groups H04B10/03 - H04B10/70, e.g. optical power feeding or optical transmission through water
    • H04B10/801Optical aspects relating to the use of optical transmission for specific applications, not provided for in groups H04B10/03 - H04B10/70, e.g. optical power feeding or optical transmission through water using optical interconnects, e.g. light coupled isolators, circuit board interconnections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J14/00Optical multiplex systems
    • H04J14/02Wavelength-division multiplex systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J14/00Optical multiplex systems
    • H04J14/02Wavelength-division multiplex systems
    • H04J14/0278WDM optical network architectures
    • H04J14/0279WDM point-to-point architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J14/00Optical multiplex systems
    • H04J14/04Mode multiplex systems
    • GPHYSICS
    • G02OPTICS
    • G02FOPTICAL DEVICES OR ARRANGEMENTS FOR THE CONTROL OF LIGHT BY MODIFICATION OF THE OPTICAL PROPERTIES OF THE MEDIA OF THE ELEMENTS INVOLVED THEREIN; NON-LINEAR OPTICS; FREQUENCY-CHANGING OF LIGHT; OPTICAL LOGIC ELEMENTS; OPTICAL ANALOGUE/DIGITAL CONVERTERS
    • G02F2203/00Function characteristic
    • G02F2203/48Variable attenuator
    • GPHYSICS
    • G02OPTICS
    • G02FOPTICAL DEVICES OR ARRANGEMENTS FOR THE CONTROL OF LIGHT BY MODIFICATION OF THE OPTICAL PROPERTIES OF THE MEDIA OF THE ELEMENTS INVOLVED THEREIN; NON-LINEAR OPTICS; FREQUENCY-CHANGING OF LIGHT; OPTICAL LOGIC ELEMENTS; OPTICAL ANALOGUE/DIGITAL CONVERTERS
    • G02F2203/00Function characteristic
    • G02F2203/50Phase-only modulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Electromagnetism (AREA)
  • Nonlinear Science (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Optics & Photonics (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Optical Modulation, Optical Deflection, Nonlinear Optics, Optical Demodulation, Optical Logic Elements (AREA)
  • Optical Communication System (AREA)
  • Optical Integrated Circuits (AREA)
  • Image Analysis (AREA)
  • Optical Couplings Of Light Guides (AREA)
  • Manufacture, Treatment Of Glass Fibers (AREA)

Abstract

양태들은 광자 처리 시스템, 광자 프로세서, 및 행렬-벡터 곱셈을 수행하는 방법에 관한 것이다. 광학 인코더는 입력 벡터를 제1 복수의 광학 신호들로 인코딩할 수 있다. 광자 프로세서는 제1 복수의 광학 신호들을 수신하고; 제1 복수의 광학 신호들에 대해 복수의 연산들을 수행―복수의 연산들은 입력 벡터와 행렬의 행렬 곱셈을 구현함―하고; 출력 벡터를 나타내는 제2 복수의 광학 신호들을 출력할 수 있다. 광학 수신기는 제2 복수의 광학 신호들을 검출하고, 출력 벡터의 전기 디지털 표현을 출력할 수 있다.

Description

광자 처리 시스템들 및 방법들
관련 출원들에 대한 상호 참조
본 출원은 대리인 문서 번호 L0858.70001US00 하에서 2018년 5월 15일자로 출원된 "ALGORITHMS FOR TRAINING NEURAL NETWORKS WITH PHOTONIC HARDWARE ACCELERATORS"라는 명칭의 미국 가특허 출원 제62/671,793호에 대한 35 U.S.C.§119(e) 하의 우선권을 주장하며, 이러한 가특허 출원은 그 전체가 본 명세서에 참고로 포함된다.
본 출원은 또한 대리인 문서 번호 L0858.70000US00 하에서 2018년 6월 4일자로 출원된 "PHOTONICS PROCESSING SYSTEMS AND METHODS"라는 명칭의 미국 가특허 출원 제62/680,557호에 대한 35 U.S.C.§119(e) 하의 우선권을 주장하며, 이러한 가특허 출원은 그 전체가 본 명세서에 참고로 포함된다.
본 출원은 또한 대리인 문서 번호 L0858.70003US00 하에서 2018년 6월 22일자로 출원된 "CONVOLUTIONAL LAYERS FOR NEURAL NETWORKS USING PROGRAMMABLE NANOPHOTONICS"라는 명칭의 미국 가특허 출원 제62/689,022호에 대한 35 U.S.C.§119(e) 하의 우선권을 주장하며, 이러한 가특허 출원은 그 전체가 본 명세서에 참고로 포함된다.
본 출원은 또한 대리인 문서 번호 L0858.70008US00 하에서 2018년 11월 11일자로 출원된 "REAL-NUMBER PHOTONIC ENCODING"이라는 명칭의 미국 가특허 출원 제62/755,402호에 대한 35 U.S.C.§119(e) 하의 우선권을 주장하며, 이러한 가특허 출원은 그 전체가 본 명세서에 참고로 포함된다.
본 출원은 또한 대리인 문서 번호 L0858.70006US00 하에서 2019년 1월 15일자로 출원된 "HIGH-EFFICIENCY DOUBLE-SLOT WAVEGUIDE NANO-OPTOELECTROMECHANICAL PHASE MODULATOR"라는 명칭의 미국 가특허 출원 제62/792,720호에 대한 35 U.S.C.§119(e) 하의 우선권을 주장하며, 이러한 가특 출원은 그 전체가 본 명세서에 참고로 포함된다.
본 출원은 또한 대리인 문서 번호 L0858.70004US00 하에서 2019년 1월 16일자로 출원된 "DIFFERENTIAL, LOW-NOISE HOMODYNE RECEIVER"라는 명칭의 미국 가특허 출원 제62/793,327호에 대한 35 U.S.C.§119(e) 하의 우선권을 주장하며, 이러한 가특허 출원은 그 전체가 본 명세서에 참조로 포함된다.
본 출원은 또한 대리인 문서 번호 L0858.70014US00 하에서 2019년 4월 16일자로 출원된 "STABILIZING LOCAL OSCILLATOR PHASES IN A PHOTOCORE"라는 명칭의 미국 가특허 출원 제62/834,743호에 대한 35 U.S.C.§119(e) 하의 우선권을 주장하며, 이러한 가특허 출원은 그 전체가 본 명세서에 참고로 포함된다.
종래의 계산은 전기 신호들에 의해 표현된 정보의 비트들에 대한 논리 게이트들을 구현하기 위해 수백만 개의 트랜지스터들의 회로들을 포함하는 프로세서들을 이용한다. 종래의 중앙 처리 유닛(central processing unit)(CPU)들의 아키텍처들은 범용 컴퓨팅을 위해 설계되지만, 특정 타입들의 알고리즘들에 대해서는 최적화되어 있지 않다. 그래픽 처리(graphics processing), 인공 지능(artificial intelligence), 신경망들(neural networks) 및 심층 학습(deep learning)은, 계산 집약적이고 CPU를 이용하여 효율적으로 수행되지 않는 알고리즘들의 몇 가지 예시적인 타입들이다.
따라서, 특정 알고리즘들에 더 적합한 아키텍처들을 갖는 전문화된 프로세서들이 개발되어 왔다. 그래픽 처리 유닛(graphical processing unit)(GPU)들은, 예를 들어, 이미지 처리 및 그래픽 조작들을 수행하기 위해 CPU들보다 GPU들을 더 효율적이게 하는 고도의 병렬 아키텍처를 갖는다. 그래픽 처리를 위한 GPU들의 개발 후에, GPU들은 또한 신경망들 및 심층 학습과 같은 다른 메모리 집약적 알고리즘들을 위한 GPU들보다 더 효율적인 것으로 알려졌다. 이러한 실현, 및 인공 지능 및 심층 학습의 증가하는 인기는, 이들 알고리즘들의 속도를 더 향상시킬 수 있는 새로운 전기 회로 아키텍처들에 대한 추가의 연구로 이어진다.
일부 실시예들에서, 광자 프로세서(photonic processor)가 제공된다. 광자 프로세서는 제1 복수의 광학 입력들 및 제1 복수의 광학 출력들을 포함하는 상호접속된 가변 빔 스플리터(variable beam splitter)(VBS)들의 제1 어레이; 제2 복수의 광학 입력들 및 제2 복수의 광학 출력들을 포함하는 상호접속된 VBS들의 제2 어레이; 및 복수의 제어가능한 광학 요소들―이러한 복수의 제어가능한 광학 요소들 각각은 제1 어레이의 제1 복수의 광학 출력들 중 단일 광학 출력을 제2 어레이의 제2 복수의 광학 입력들 중 개개의 단일 광학 입력에 결합함―을 포함할 수 있다.
일부 실시예들에서, 광자 처리 시스템(photonic processing system)이 제공된다. 광자 처리 시스템은 입력 벡터를 제1 복수의 광학 신호들로 인코딩하도록 구성된 광학 인코더(optical encoder)를 포함할 수 있다. 광자 처리 시스템은 또한, 제1 복수의 광학 신호들을 수신―제1 복수의 신호들 각각은 광자 프로세서의 복수의 입력 공간 모드들의 개개의 입력 공간 모드에 의해 수신됨―하고; 제1 복수의 광학 신호들에 대해 복수의 연산들을 수행―복수의 연산들은 입력 벡터와 행렬의 행렬 곱셈(matrix multiplication)을 구현함―하고; 출력 벡터를 나타내는 제2 복수의 광학 신호들을 출력―제2 복수의 신호들 각각은 광자 프로세서의 복수의 출력 공간 모드들의 개개의 출력 공간 모드에 의해 송신됨-하도록 구성된 광자 프로세서를 포함할 수 있다. 광자 처리 시스템은 또한, 제2 복수의 광학 신호들을 검출하고, 출력 벡터의 전기 디지털 표현을 출력하도록 구성된 광학 수신기를 포함할 수 있다.
일부 실시예들에서, 행렬-벡터 곱셈을 광학적으로 수행하는 방법이 제공된다. 방법은 입력 벡터의 디지털 표현을 수신하는 단계; 광학 인코더를 이용하여, 입력 벡터를 제1 복수의 광학 신호들로 인코딩하는 단계; 프로세서를 이용하여, 행렬의 특이값 분해(singular value decomposition)(SVD)를 수행해서 제1, 제2 및 제3 SVD 행렬을 결정하는 단계; 복수의 가변 빔 스플리터(VBS)들을 포함하는 광자 프로세서를 제어하여 제1, 제2 및 제3 SVD 행렬을 광학적으로 구현하는 단계; 광자 프로세서를 통해 제1 복수의 광학 신호들을 전파하는 단계; 광자 프로세서로부터 수신된 제2 복수의 광학 신호들을 검출하는 단계; 및 검출된 제2 복수의 광학 신호들에 기초하여 출력 벡터를 결정하는 단계―출력 벡터는 행렬-벡터 곱셈의 결과를 나타냄―를 포함할 수 있다.
전술한 장치 및 방법 실시예들은 위에서 설명되거나 아래에서 더 상세히 설명되는 양태들, 특징들 및 동작들의 임의의 적절한 조합으로 구현될 수 있다. 본 개시내용들의 이들 및 다른 양태들, 실시예들 및 특징들은 첨부 도면들과 관련된 아래의 설명으로부터 더 충분히 이해될 수 있다.
본 출원의 다양한 양태들 및 실시예들이 아래의 도면들을 참조하여 설명될 것이다. 도면들은 반드시 축척비율대로 도시된 것은 아니라는 점을 이해하여야 한다. 다수의 도면들에서 출현하는 항목들은 그것들이 출현하는 모든 도면들에서 동일한 참조 번호에 의해 표시된다.
도 1a는 일부 비제한적인 실시예들에 따른, 광자 처리 시스템의 개략도이다.
도 1b는 일부 비제한적인 실시예들에 따른, 광학 인코더의 개략도이다.
도 1c는 일부 비제한적인 실시예들에 따른, 광자 프로세서의 개략도이다.
도 1d는 일부 비제한적인 실시예들에 따른, 상호접속된 가변 빔 스플리터 어레이의 개략도이다.
도 1e는 일부 비제한적인 실시예들에 따른, 가변 빔 스플리터의 개략도이다.
도 1f는 일부 비제한적인 실시예들에 따른, 대각선 감쇠(diagonal attenuation) 및 위상 시프팅(phase shifting) 구현의 개략도이다.
도 1g는 일부 비제한적인 실시예들에 따른, 감쇠기의 개략도이다.
도 1h는 일부 비제한적인 실시예들에 따른, 전력 트리(power tree)의 개략도이다.
도 1i는 일부 비제한적인 실시예들에 따른, 광학 수신기의 개략도이다.
도 1j는 일부 비제한적인 실시예들에 따른, 호모다인 검출기(homodyne detector)의 개략도이다.
도 1k는 일부 비제한적인 실시예들에 따른, 폴딩된 광자 처리 시스템(folded photonic processing system)의 개략도이다.
도 1la는 일부 비제한적인 실시예들에 따른, 파장 분할 다중화(wavelength-division-multiplexed)(WDM) 광자 처리 시스템의 개략도이다.
도 1lb는 일부 비제한적인 실시예들에 따른, 도 1la의 파장 분할 다중화(WDM) 광자 처리 시스템의 전단의 개략도이다.
도 1lc는 일부 비제한적인 실시예들에 따른, 도 1la의 파장 분할 다중화(WDM) 광자 처리 시스템의 후단의 개략도이다.
도 1m은 일부 비제한적인 실시예들에 따른, 광학 신호들의 아날로그 합산을 수행하기 위한 회로의 개략도이다.
도 1n은 일부 비제한적인 실시예들에 따른, 도시된 열-전역 위상들(column-global phases)을 갖는 광자 처리 시스템의 개략도이다.
도 1o는 일부 비제한적인 실시예들에 따른, 호모다인 검출에 대한 정정되지 않은 전역 위상 시프트들의 효과들을 도시하는 도면이다.
도 1p는 일부 비제한적인 실시예들에 따른, 광의 코히어런트 상태들(coherent states)의 사분면 불확실성들(quadrature uncertainties)을 도시하는 도면이다.
도 1q는 일부 비제한적인 실시예들에 따른, 행렬 곱셈의 예시이다.
도 1r은 일부 비제한적인 실시예들에 따른, 행렬들을 부행렬들로 세분함으로써 행렬 곱셈을 수행하는 것의 예시이다.
도 1s는 일부 비제한적인 실시예들에 따른, 광자 처리 시스템을 제조하는 방법의 흐름도이다.
도 1t는 일부 비제한적인 실시예들에 따른, 광자 프로세서를 제조하는 방법의 흐름도이다.
도 1u는 일부 비제한적인 실시예들에 따른, 광학 계산을 수행하는 방법의 흐름도이다.
도 2a는 일부 비제한적인 실시예들에 따른, 잠재 변수 모델(latent variable model)을 트레이닝하기 위한 프로세스의 흐름도이다.
도 2b는 일부 비제한적인 실시예들에 따른, 단위 전달 행렬들(unitary transfer matrices)을 구현하도록 광자 처리 시스템을 구성하기 위한 프로세스의 흐름도이다.
도 2c는 일부 비제한적인 실시예들에 따른, 광자 처리 시스템을 이용하여 에러 벡터(error vector)를 계산하기 위한 프로세스의 흐름도이다.
도 2d는 일부 비제한적인 실시예들에 따른, 단위 전달 행렬들에 대한 업데이트된 파라미터들을 결정하기 위한 프로세스의 흐름도이다.
도 2e는 일부 비제한적인 실시예들에 따른, 단위 전달 행렬들에 대한 파라미터들을 업데이트하기 위한 프로세스의 흐름도이다.
도 3a는 일부 비제한적인 실시예들에 따른, 컨볼루션 계층(convolutional layer)을 통한 순방향 패스(forward pass)를 계산하기 위한 방법의 흐름도이다.
도 3b는 일부 비제한적인 실시예들에 따른, 컨볼루션 계층을 통한 순방향 패스를 계산하기 위한 방법의 흐름도이다.
도 3ca는 일부 비제한적인 실시예들에 따른, 2차원 컨볼루션들을 계산하기에 적합한 방법의 흐름도이다.
도 3cb는 일부 비제한적인 실시예들에 따른, 순환 행렬(circulant matrix)을 구축하기에 적합한 방법의 흐름도이다.
도 3da는 일부 비제한적인 실시예들에 따른, 복수의 출력 채널들을 포함하는 입력 필터 행렬들로부터 필터 행렬을 구축하는 전처리 단계를 도시한다.
도 3db는 일부 비제한적인 실시예들에 따른, 복수의 입력 채널들을 포함하는 입력 행렬들로부터 순환 행렬을 구축하는 것을 도시한다.
도 3dc는 일부 비제한적인 실시예들에 따른, 2차원 행렬 곱셈 연산을 도시한다.
도 3dd는 일부 비제한적인 실시예들에 따른, 벡터 행들(vector rows)을 회전시키는 후처리 단계를 도시한다.
도 3de는 일부 비제한적인 실시예들에 따른, 벡터 행 가산(vector row addition)의 후처리 단계를 도시한다.
도 3df는 일부 비제한적인 실시예들에 따른, 출력 행렬을 다수의 출력 채널들로 재형성(reshaping)하는 것을 도시한다.
도 3e는 일부 비제한적인 실시예들에 따른, 1차원 푸리에 변환을 수행하기 위한 방법의 흐름도이다.
도 3f는 일부 비제한적인 실시예들에 따른, 2차원 푸리에 변환을 수행하기 위한 방법의 흐름도이다.
도 3g는 일부 비제한적인 실시예들에 따른, 2차원 푸리에 변환을 수행하기 위한 방법의 흐름도이다.
도 3h는 일부 비제한적인 실시예들에 따른, 푸리에 변환들을 이용하여 컨볼루션들을 수행하기 위한 방법의 흐름도이다.
도 4a는 일부 비제한적인 실시예들에 따른, 광학 변조기를 도시하는 블록도이다.
도 4ba는 일부 비제한적인 실시예들에 따른, 광자 시스템의 예를 도시하는 블록도이다.
도 4bb는 일부 비제한적인 실시예들에 따른, 광학 도메인에서 부호 있는 실수들을 처리하기 위한 방법의 예를 도시하는 흐름도이다.
도 4ca는 일부 비제한적인 실시예들에 따른, 도 4ba의 광자 시스템과 관련하여 이용될 수 있는 변조기의 예를 도시하는 개략도이다.
도 4cb는 일부 비제한적인 실시예들에 따른, 전압이 인가되지 않을 때의 도 4ca의 변조기의 강도 및 위상 스펙트럼 응답들을 도시하는 도면이다.
도 4cc는 일부 비제한적인 실시예들에 따른, 특정 전압에서 구동될 때의 도 4ca의 변조기의 강도 및 위상 스펙트럼 응답들을 도시하는 도면이다.
도 4cd는 일부 비제한적인 실시예들에 따른, 도 4ca의 변조기와 연관된 인코딩 테이블의 예이다.
도 4ce는 일부 비제한적인 실시예들에 따른, 도 4ca의 변조기의 스펙트럼 응답의, 복소 평면에서의 시각적 표현이다.
도 4da 내지 도 4dc는 일부 비제한적인 실시예들에 따른, 광학 변환 유닛의 출력에서의 상이한 스펙트럼 응답들의, 복소 평면에서의 시각적 표현들이다.
도 4e는 일부 비제한적인 실시예들에 따른, 광학 신호의 검출이 어떻게 수행될 수 있는지의, 복소 평면에서의 시각적 표현이다.
도 4f는 일부 비제한적인 실시예들에 따른, 디코딩 테이블의 예이다.
도 4g는 일부 비제한적인 실시예들에 따른, 광학 통신 시스템의 블록도이다.
도 4h는 일부 비제한적인 실시예들에 따른, 도 4g의 변조기에 의해 출력된 전력 스펙트럼 밀도의 예를 도시하는 도면이다.
도 4i는 일부 비제한적인 실시예들에 따른, 광자 시스템을 제조하기 위한 방법의 예를 도시하는 흐름도이다.
도 5a는 일부 비제한적인 실시예들에 따른, 차동 광학 수신기(differential optical receiver)의 예를 도시하는 회로도이다.
도 5b는 일부 비제한적인 실시예들에 따른, 도 5a의 차동 광학 수신기와 결합될 수 있는 광자 회로(photonic circuit)를 도시하는 개략도이다.
도 5ca는 일부 비제한적인 실시예들에 따른, 광자 회로, 광검출기들(photodetectors) 및 차동 연산 증폭기(differential operational amplifier)를 포함하는 기판을 도시하는 개략도이다.
도 5cb는 일부 비제한적인 실시예들에 따른, 광자 회로 및 광검출기들을 포함하는 제1 기판, 및 차동 연산 증폭기를 포함하는 제2 기판을 도시하는 개략도이고, 여기서 제1 및 제2 기판들은 서로 플립-칩 본딩(flip-chip bonding)된다.
도 5cc는 일부 비제한적인 실시예들에 따른, 광자 회로 및 광검출기들을 포함하는 제1 기판, 및 차동 연산 증폭기를 포함하는 제2 기판을 도시하는 개략도이며, 여기서 제1 및 제2 기판들은 서로 와이어 본딩(wire bonding)된다.
도 5d는 일부 비제한적인 실시예들에 따른, 광학 수신기를 제조하기 위한 방법의 예를 도시하는 흐름도이다.
도 5da 내지 도 5df는 일부 비제한적인 실시예들에 따른, 광학 수신기를 위한 제조 시퀀스의 예를 도시한다.
도 5e는 일부 비제한적인 실시예들에 따른, 광학 신호를 수신하기 위한 방법의 예를 도시하는 흐름도이다.
도 6aa는 일부 비제한적인 실시예들에 따른, NOEMS(Nano-Opto-Electromechanical Systems) 위상 변조기를 개략적으로 도시하는 평면도이다.
도 6ab는 일부 비제한적인 실시예들에 따른, 도 6aa의 NOEMS 위상 변조기의 서스펜딩된 멀티-슬롯 광학 구조체(suspended multi-slot optical structure)를 개략적으로 도시하는 평면도이다.
도 6ac는 일부 비제한적인 실시예들에 따른, 도 6ab의 서스펜딩된 멀티-슬롯 광학 구조체에서 발생하는 광학 모드의 예를 도시하는 도면이다.
도 6ad는 일부 비제한적인 실시예들에 따른, 도 6aa의 NOEMS 위상 변조기의 기계적 구조를 개략적으로 도시하는 평면도이다.
도 6ae는 일부 비제한적인 실시예들에 따른, 도 6aa의 NOEMS 위상 변조기의 전이 영역(transition region)을 개략적으로 도시하는 평면도이다.
도 6b는 일부 비제한적인 실시예들에 따른, yz-평면에서 취해진, 도 6aa의 NOEMS 위상 변조기의 단면도이며, 서스펜딩된 도파관을 도시한다.
도 6c는 일부 비제한적인 실시예들에 따른, xy-평면에서 취해진, 도 6aa의 NOEMS 위상 변조기의 단면도이며, 서스펜딩된 멀티-슬롯 광학 구조체의 일부를 도시한다.
도 6da 내지 도 6dc는 일부 비제한적인 실시예들에 따른, 도파관들 사이의 슬롯들의 폭들을 변화시키기 위해 서스펜딩된 멀티-슬롯 광학 구조체가 어떻게 기계적으로 구동될 수 있는지를 도시하는 단면도들이다.
도 6e는 일부 비제한적인 실시예들에 따른, 서스펜딩된 멀티-슬롯 광학 구조체의 유효 굴절률(effective index)이 슬롯의 폭의 함수로서 어떻게 변화될 수 있는지를 도시하는 도면이다.
도 6f는 일부 비제한적인 실시예들에 따른, NOEMS 위상 변조기를 제조하기 위한 방법의 예를 도시하는 흐름도이다.
I. 포토-코어(Photo-Core)
A. 포토닉스 기반 처리의 개요
본 발명자들은 전기 회로들에 기초한 종래의 프로세서들의 속도 및 효율에 대한 제한들이 있다는 것을 인식하여 알았다. 전기 프로세서의 회로들에서의 모든 와이어 및 트랜지스터는 임의의 전기 신호에서 전파 지연 및 전력 소모를 야기하는 저항, 인덕턴스 및 커패시턴스를 갖는다. 예를 들어, 다수의 프로세서 코어들을 접속하는 것 및/또는 프로세서 코어를 메모리에 접속하는 것은 0이 아닌 임피던스를 갖는 도전성 트레이스를 이용한다. 큰 값들의 임피던스는 데이터가 트레이스를 통해 무시할만한 비트 에러 레이트로 전송될 수 있는 최대 레이트를 제한한다. 빈번히 발생되는 주식 거래와 같은 시간 지연이 중요한 응용들에서, 심지어 수백분의 1초의 지연도, 알고리즘을 이용하기에 실현 불가능하게 만들 수 있다. 수십억개의 트랜지스터들에 의한 수십억개의 동작들을 요구하는 처리의 경우, 이러한 지연들은 상당한 시간 손실로 늘어난다. 전기 회로들의 속도 비효율성에 추가하여, 회로들의 임피던스에 의해 야기된 에너지의 소모에 의해 발생되는 열 또한 전기 프로세서들을 개발함에 있어서의 장벽이다. 본 발명자들은 전기 신호들 대신에 광 신호들(light signals)을 이용하는 것이 전기적 계산에서의 전술한 문제점들 중 많은 것을 극복한다는 것을 더 인식하여 알았다. 광 신호들은 광이 이동하는 매질에서 광속으로 이동하며, 따라서 광자 신호들의 레이턴시는 전기적 전파 지연보다 제한이 훨씬 낮다. 추가적으로, 광 신호들이 이동하는 거리를 증가시킴으로써 전력이 소모되지 않고, 전기 신호들을 이용하여 실현가능하지 않을 새로운 토폴로지들 및 프로세서 레이아웃들을 가능하게 한다. 따라서, 포토닉스 기반 프로세서와 같은 광 기반 프로세서들은 종래의 전기 프로세서들보다 더 양호한 속도 및 효율 성능을 가질 수 있다.
또한, 본 발명자들은 포토닉스 기반 프로세서와 같은 광 기반 프로세서가 특정 타입들의 알고리즘들에 적합할 수 있다는 것을 인식하여 알았다. 예를 들어, 많은 기계 학습 알고리즘들, 예를 들어, 지원 벡터 기계들(support vector machines), 인공 신경망들(artificial neural networks), 확률적 그래픽 모델 학습(probabilistic graphical model learning)은 다차원 어레이들/텐서들(tensors)에 대한 선형 변환들에 크게 의존한다. 가장 간단한 예는 벡터들에 행렬들을 곱하는 것이고, 이는 종래의 알고리즘들을 이용하여 대략 O(n2)의 복잡도를 갖고, 여기서 n은 곱해지는 정사각형 행렬들의 차원수이다. 본 발명자들은 일부 실시예들에서 고도로 평행한 선형 프로세서일 수 있는 포토닉스 기반 프로세서가 빔 스플리터들의 구성가능한 어레이를 통해 특정 세트의 입력 광 신호들을 전파함으로써 고도의 병렬 방식으로 행렬 곱셈과 같은 선형 변환들을 수행할 수 있다는 것을 인식하여 알았다. 그러한 구현들을 이용하여, 차원 n=512를 갖는 행렬들의 행렬 곱셈은, 종래의 처리를 이용하는 수십 내지 수백 나노초와는 대조적으로, 수백 피코초에서 완료될 수 있다. 일부 실시예들을 이용하여, 행렬 곱셈은 종래의 기술들에 비해 2자릿수만큼 가속되는 것으로 추정된다. 예를 들어, 최신 그래픽 처리 유닛(GPU)에 의해 약 10ns에서 수행될 수 있는 곱셈은, 일부 실시예들에 따른 광자 처리 시스템에 의해 약 200ps에서 수행될 수 있다.
포토닉스 기반 프로세서를 구현하기 위해, 본 발명자들은 입력 벡터와 행렬의 곱셈이, 상호접속된 가변 빔 스플리터(VBS)들의 제1 어레이, 상호접속된 가변 빔 스플리터들의 제2 어레이, 및 제1 어레이의 단일 출력을 제2 어레이의 단일 입력에 접속하는, 2개의 어레이들 사이의 다수의 제어가능한 광학 요소들(예를 들어, 전기 광학(electro-optical) 또는 광기계적(optomechanical) 요소들)을 통해 코히어런트 광 신호들, 예를 들어, 레이저 펄스들을 전파함으로써 달성될 수 있다는 것을 인식하여 알았다. 광자 프로세서를 포함하는 광자 처리 시스템의 세부 사항들이 아래에 설명된다.
B. 광자 처리 시스템 개요
도 1a를 참조하면, 일부 실시예들에 따르면, 광자 처리 시스템(1-100)은 광학 인코더(1-101), 광자 프로세서(1-103), 광학 수신기(1-105) 및 제어기(1-107)를 포함한다. 광자 처리 시스템(1-100)은, 외부 프로세서(예를 들어, CPU)로부터의 입력으로서, 입력 비트 스트링들의 그룹에 의해 표현된 입력 벡터를 수신하고, 출력 비트 스트링들의 그룹에 의해 표현된 출력 벡터를 생성한다. 예를 들어, 입력 벡터가 n차원 벡터인 경우, 입력 벡터는 n개의 개별 비트 스트링들에 의해 표현될 수 있고, 각각의 비트 스트링은 벡터의 개개의 성분을 표현한다. 입력 비트 스트링은 외부 프로세서로부터 전기 또는 광학 신호로서 수신될 수 있고, 출력 비트 스트링은 전기 또는 광학 신호로서 외부 프로세서에 송신될 수 있다. 일부 실시예들에서, 제어기(1-107)는 모든 프로세스 반복 이후에 출력 비트 스트링을 반드시 출력하지는 않는다. 대신에, 제어기(1-107)는 광자 처리 시스템(1-100)의 컴포넌트들을 통해 공급할 새로운 입력 비트 스트림을 결정하기 위해 하나 이상의 출력 비트 스트링을 이용할 수 있다. 일부 실시예들에서, 출력 비트 스트링 자체는 광자 처리 시스템(1-100)에 의해 구현된 프로세스의 후속 반복에 대한 입력 비트 스트링으로서 이용될 수 있다. 다른 실시예들에서, 다수의 출력 비트 스트림들은 후속 입력 비트 스트링을 결정하기 위해 다양한 방식들로 결합된다. 예를 들어, 하나 이상의 출력 비트 스트링은 후속 입력 비트 스트링의 결정의 일부로서 함께 합산될 수 있다.
광학 인코더(1-101)는 입력 비트 스트링들을 광자 프로세서(1-103)에 의해 처리될 광학적으로 인코딩된 정보로 변환하도록 구성된다. 일부 실시예들에서, 각각의 입력 비트 스트링은 제어기(1-107)에 의해, 전기 신호들의 형태로 광학 인코더(1-101)에 송신된다. 광학 인코더(1-101)는 입력 벡터의 각각의 성분을 그의 디지털 비트 스트링으로부터 광학 신호로 변환한다. 일부 실시예들에서, 광학 신호는 연관된 비트 스트링의 값 및 부호를, 광학 펄스의 진폭 및 위상으로서 표현한다. 일부 실시예들에서, 위상은 각각 양의 값 및 음의 값을 표현하는 0 위상 시프트 또는 π 위상 시프트 중 어느 하나의 이진 선택으로 제한될 수 있다. 실시예들은 실수 입력 벡터 값들로 제한되지 않는다. 복소 벡터 성분들이, 예를 들어, 광학 신호를 인코딩할 때 2개보다 많은 위상 값들을 이용함으로써 표현될 수 있다. 일부 실시예들에서, 비트 스트링은 제어기(1-107)로부터의 광학 신호(예를 들어, 디지털 광학 신호)로서 광학 인코더(1-101)에 의해 수신된다. 이러한 실시예들에서, 광학 인코더(1-101)는 디지털 광학 신호를, 위에서 설명된 타입의 아날로그 광학 신호로 변환한다.
광학 인코더(1-101)는 광자 프로세서(1-103)에 송신되는 n개의 개별 광학 펄스들을 출력한다. 광학 인코더(1-101)의 각각의 출력은 광자 프로세서(1-103)의 단일 입력에 일대일로 결합된다. 일부 실시예들에서, 광학 인코더(1-101)는 광자 프로세서(1-103)와 동일한 기판 상에 배치될 수 있다(예를 들어, 광학 인코더(1-101) 및 광자 프로세서(1-103)는 동일한 칩 상에 있다). 그러한 실시예들에서, 광학 신호들은 실리콘 광자 도파관들과 같은 도파관들에서 광학 인코더(1-101)로부터 광자 프로세서(1-103)로 송신될 수 있다. 다른 실시예들에서, 광학 인코더(1-101)는 광자 프로세서(1-103)와 별개의 기판 상에 배치될 수 있다. 그러한 실시예들에서, 광학 신호들은 광섬유에서 광학 인코더(1-101)로부터 광자 프로세서(103)로 송신될 수 있다.
광자 프로세서(1-103)는 입력 벡터와 행렬 M의 곱셈을 수행한다. 아래에 상세히 설명되는 바와 같이, 행렬 M은 특이값 분해(SVD)와 단위 행렬 분해(unitary matrix decomposition)의 조합을 이용하여 3개의 행렬로 분해된다. 일부 실시예들에서, 단위 행렬 분해는 QR 분해에서 기븐스 회전들(Givens rotations)과 유사한 연산들을 이용하여 수행된다. 예를 들어, 하우스홀더 분해(Householder decomposition)와 조합된 SVD가 이용될 수 있다. 행렬 M을 3개의 구성 부분들로 분해하는 것은 제어기(1-107)에 의해 수행될 수 있고, 구성 부분들 각각은 광자 프로세서(1-103)의 일부에 의해 구현될 수 있다. 일부 실시예들에서, 광자 프로세서(1-103)는 3개의 부분들, 즉, 제1 행렬 곱셈과 등가인 입력 광학 펄스들의 어레이에 대한 변환을 구현하도록 구성된 가변 빔 스플리터(VBS)들의 제1 어레이(예를 들어, 도 1c의 제1 행렬 구현(1-301)을 참조); 제1 어레이로부터 수신된 광학 펄스들 각각의 강도 및/또는 위상을 조정하도록 구성된 제어가능한 광학 요소들의 그룹―조정은 대각선 행렬에 의한 제2 행렬 곱셈과 등가임―(예를 들어, 도 1c의 제2 행렬 구현(1-303)을 참조); 및 제어가능한 전기 광학 요소의 그룹으로부터 수신된 광학 펄스들에 대한 변환을 구현하도록 구성된 VBS들의 제2 어레이―변환은 제3 행렬 곱셈과 등가임―(예를 들어, 도1c의 제3 행렬 구현(1-305)을 참조)를 포함한다.
광자 프로세서(1-103)는 광학 수신기(1-105)에 송신되는 n개의 개별 광학 펄스들을 출력한다. 광자 프로세서(1-103)의 각각의 출력은 광학 수신기(1-105)의 단일 입력에 일대일로 결합된다. 일부 실시예들에서, 광자 프로세서(1-103)는 광학 수신기(1-105)와 동일한 기판 상에 배치될 수 있다(예를 들어, 광자 프로세서(1-103) 및 광학 수신기(1-105)는 동일한 칩 상에 있다). 그러한 실시예들에서, 광학 신호들은 실리콘 광자 도파관들에서 광자 프로세서(1-103)로부터 광학 수신기(1-105)로 송신될 수 있다. 다른 실시예들에서, 광자 프로세서(1-103)는 광학 수신기(1-105)와 별개의 기판 상에 배치될 수 있다. 그러한 실시예들에서, 광학 신호들은 광섬유들에서 광자 프로세서(103)로부터 광학 수신기(1-105)로 송신될 수 있다.
광학 수신기(1-105)는 광자 프로세서(1-103)로부터 n개의 광학 펄스들을 수신한다. 광학 펄스들 각각은 이어서 전기 신호들로 변환된다. 일부 실시예들에서, 광학 펄스들 각각의 강도 및 위상은 광학 수신기 내의 광학 검출기들에 의해 측정된다. 그 다음, 그러한 측정된 값들을 표현하는 전기 신호들이 제어기(1-107)에 출력된다.
제어기(1-107)는 메모리(1-109), 및 광학 인코더(1-101), 광자 프로세서(1-103) 및 광학 수신기(1-105)를 제어하기 위한 프로세서(1-111)를 포함한다. 메모리(1-109)는 입력 및 출력 비트 스트링들, 및 광학 수신기(1-105)로부터의 측정 결과들을 저장하는데 이용될 수 있다. 메모리(1-109)는 또한, 프로세서(1-111)에 의해 실행될 때, 광학 인코더(1-101)를 제어하고, 행렬 분해 알고리즘을 수행하고, 광자 프로세서(103)의 VBS들을 제어하고, 광학 수신기들(1-105)을 제어하는 실행가능한 명령어들을 저장한다. 메모리(1-109)는 또한, 프로세서(1-111)로 하여금, 광학 수신기(1-105)에 의해 수행된 측정에 의해 결정된 하나 이상의 출력 벡터의 집합에 기초하여 광학 인코더에게 전송할 새로운 입력 벡터를 결정하게 하는 실행가능한 명령어들을 포함할 수 있다. 이러한 방식으로, 제어기(1-107)는 광자 프로세서(1-103)의 설정들을 조정하고 검출 정보를 광학 수신기(1-105)로부터 다시 광학 인코더(1-101)로 공급함으로써, 입력 벡터와 다수의 행렬들이 곱해지는 반복 프로세스를 제어할 수 있다. 따라서, 광자 처리 시스템(1-100)에 의해 외부 프로세서에 송신된 출력 벡터는, 단순히 단일 행렬 곱셈이 아니라, 다수의 행렬 곱셈들의 결과일 수 있다.
일부 실시예들에서, 행렬은 너무 커서 단일 패스를 이용하여 광자 프로세서에 인코딩될 수 없을 수 있다. 그러한 상황들에서, 대형 행렬의 한 부분이 광자 프로세서에서 인코딩될 수 있고, 대형 행렬의 그러한 단일 부분에 대해 곱셈 프로세스가 수행될 수 있다. 그러한 제1 동작의 결과들은 메모리(1-109)에 저장될 수 있다. 이어서, 대형 행렬의 제2 부분이 광자 프로세서에서 인코딩될 수 있고, 제2 곱셈 프로세스가 수행될 수 있다. 대형 행렬의 이러한 "청크(chunking)"는 대형 행렬의 모든 부분들에 대해 곱셈 프로세스가 수행될 때까지 계속될 수 있다. 메모리(1-109)에 저장될 수 있는 다수의 곱셈 프로세스들의 결과들은 그 후 조합되어 입력 벡터와 대형 행렬의 곱셈의 최종 결과를 형성할 수 있다.
다른 실시예들에서, 출력 벡터들의 집합적 거동만이 외부 프로세서에 의해 이용된다. 그러한 실시예들에서, 다수의 출력 벡터들의 평균 또는 최대/최소와 같은 집합적 결과만이 외부 프로세서에 송신된다.
C. 광학 인코더
도 1b를 참조하면, 일부 실시예들에 따라, 광학 인코더는 적어도 하나의 광원(1-201), 전력 트리(1-203), 진폭 변조기(1-205), 위상 변조기(1-207), 진폭 변조기(1-205)와 연관된 DAC(digital to analog converter)(1-209), 및 위상 변조기(1-207)와 연관된 DAC(1-211)를 포함한다. 진폭 변조기(1-205) 및 위상 변조기(1-207)가 n개의 입력들 및 n개의 출력들(입력들 및 출력들 각각은, 예를 들어, 도파관임)을 갖는 단일 블록들로서 도 1b에 도시되어 있지만, 일부 실시예들에서, 각각의 도파관은, 광학 인코더가 n개의 진폭 변조기들 및 n개의 위상 변조기들을 포함하도록, 개개의 진폭 변조기 및 개개의 위상 변조기를 포함할 수 있다. 더욱이, 각각의 진폭 및 위상 변조기에 대해 개별 DAC가 존재할 수 있다. 일부 실시예들에서, 각각의 도파관과 연관된 진폭 변조기 및 개별 위상 변조기를 갖기보다는, 진폭 및 위상 정보 둘다를 인코딩하기 위해 단일 변조기가 이용될 수 있다. 그러한 인코딩을 수행하는데 단일 변조기를 이용하는 것은 각각의 광학 펄스의 진폭 및 위상 둘다를 정확하게 튜닝하는 능력을 제한하지만, 광학 펄스들의 진폭 및 위상 둘다의 정밀한 튜닝을 요구하지 않는 일부 인코딩 방식들이 있다. 그러한 방식은 본 명세서에서 나중에 설명된다.
광원(1-201)은 코히어런트 광의 임의의 적절한 소스일 수 있다. 일부 실시예들에서, 광원(1-201)은 다이오드 레이저 또는 VCSEL(vertical-cavity surface emitting laser)들일 수 있다. 일부 실시예들에서, 광원(1-201)은 10 mW 초과, 25 mW 초과, 50 mW 초과, 또는 75 mW 초과의 출력 전력을 갖도록 구성된다. 일부 실시예들에서, 광원(1-201)은 100 mW 미만의 출력 전력을 갖도록 구성된다. 광원(1-201)은 하나 이상의 파장(예를 들어, C-대역 또는 O-대역)에서의 광의 연속파 또는 광의 펄스들("광학 펄스들")을 방출하도록 구성될 수 있다. 광학 펄스들의 시간 지속기간은, 예를 들어, 약 100ps일 수 있다.
광원(1-201)이 도 1b에서 광학 인코더의 다른 컴포넌트들과 동일한 반도체 기판 상에 있는 것으로 도시되어 있지만, 실시예들은 그렇게 제한되지 않는다. 예를 들어, 광원(1-201)은 광학 인코더 칩에 에지 본딩(edge-bonding)되거나 표면 본딩(surface-bonding)되는 별개의 레이저 패키징일 수 있다. 대안적으로, 광원(1-201)은 완전히 오프-칩(off-chip)일 수 있고, 광학 펄스들은 광섬유 및/또는 격자 커플러(grating coupler)를 통해 광학 인코더(1-101)의 도파관(1-202)에 결합될 수 있다.
광원(1-201)은 2개의 광원들(1-201a 및 1-201b)로서 도시되어 있지만, 실시예들은 그렇게 제한되지 않는다. 일부 실시예들은 단일 광원을 포함할 수 있다. 2개보다 많은 광원들을 포함할 수 있는 다수의 광원들(201a-b)을 포함하는 것은 광원들 중 하나가 고장나는 경우에 여분(redundancy)을 제공할 수 있다. 다수의 광원들을 포함하는 것은 광자 처리 시스템(1-100)의 유용한 수명을 연장시킬 수 있다. 다수의 광원들(1-201a-b) 각각은 광학 인코더(1-101)의 도파관에 결합될 수 있고, 이어서 각각의 광원으로부터의 광학 펄스들을 전력 트리(1-203)로 지향시키도록 구성되는 도파관 결합기(waveguide combiner)에서 결합될 수 있다. 그러한 실시예들에서, 임의의 주어진 시간에 하나의 광원만이 이용된다.
일부 실시예들은 광학 인코더 시스템에 들어가는 광학 전력을 증가시키기 위해 동일한 파장의 2개 이상의 위상 동기 광원들(phase-locked light sources)을 동시에 이용할 수 있다. (예를 들어, 도파관 탭을 통해 획득된) 2개 이상의 광원들 각각으로부터의 광의 작은 부분이 호모다인 검출기로 지향될 수 있으며, 여기서 비트 에러 신호가 측정될 수 있다. 베어 에러 신호는 2개의 광원들 사이의 가능한 위상 드리프트들(phase drifts)을 결정하기 위해 이용될 수 있다. 비트 에러 신호는, 예를 들어, 하나의 광원의 출력을 다른 광원의 위상에 위상 동기(phase locks)시키는 위상 변조기를 제어하는 피드백 회로에 공급될 수 있다. 위상 동기는 마스터-슬레이브 방식(master-slave scheme)으로 일반화될 수 있으며, 여기서 N≥1개의 슬레이브 광원은 단일 마스터 광원에 위상 동기된다. 그 결과는 광학 인코더 시스템에 이용가능한 총 N+1개의 위상 동기 광원들이다.
다른 실시예들에서, 각각의 별개의 광원은 상이한 파장들의 광과 연관될 수 있다. 광의 다수의 파장들을 이용하는 것은 일부 실시예들이 다중화되도록 하고, 따라서 다수의 계산들이 동일한 광학 하드웨어를 이용하여 동시에 수행될 수 있다.
전력 트리(1-203)는 광원(1-201)으로부터의 단일 광학 펄스를 공간적으로 분리된 광학 펄스들의 어레이로 분할하도록 구성된다. 따라서, 전력 트리(1-203)는 하나의 광학 입력 및 n개의 광학 출력을 갖는다. 일부 실시예들에서, 광원(1-201)으로부터의 광학 전력은 n개의 도파관들과 연관된 n개의 광학 모드들에 걸쳐 균등하게 분할된다. 일부 실시예들에서, 전력 트리(1-203)는, 도 1h에 도시된 바와 같이, 50:50 빔 스플리터들(1-801)의 어레이이다. 전력 트리(1-203)의 갯수 "깊이"는 출력에서의 도파관들의 갯수에 의존한다. n개의 출력 모드들을 갖는 전력 트리에 대해, 전력 트리(1-203)의 깊이는 ceil(log2(n))이다. 도 1h의 전력 트리(1-203)는 3의 트리 깊이만을 예시하고 있다(트리의 각각의 계층은 전력 트리(1-203)의 최하부에 걸쳐 라벨링되어 있다). 각각의 계층은 2m-1개의 빔 스플리터를 포함하며, 여기서 m은 계층 번호이다. 결과적으로, 제1 층은 단일 빔 스플리터(1-801a)를 갖고, 제2 층은 2개의 빔 스플리터들(1-801b - 1-801c)를 갖고, 제3 층은 4개의 빔 스플리터들(1-801d - 1-801g)를 갖는다.
전력 트리(1-203)가, 소멸적 도파관 커플러들(evanescent waveguide couplers)로서 구현될 수 있는, 캐스케이딩 빔 스플리터들(cascading beam splitters)의 어레이로서 도시되어 있지만, 하나의 광학 펄스를 복수의 공간적으로 분리된 광학 펄스들로 변환하는 임의의 광학 디바이스가 이용될 수 있기 때문에, 실시예들은 그렇게 제한되지 않는다. 예를 들어, 전력 트리(1-203)는 하나 이상의 다중 모드 간섭계(multimode interferometer)(MMI)를 이용하여 구현될 수 있으며, 이 경우에 층 폭 및 깊이를 통제하는 수학식들이 적절히 수정될 것이다.
어떤 타입의 전력 트리(1-203)가 이용되든 간에, n개의 출력 모드들 사이에 분할 비율들이 정확히 균일하도록 전력 트리(1-203)를 제조하는 것은, 불가능하지는 않더라도, 어려울 것이다. 따라서, 전력 트리에 의해 출력된 n개의 광학 펄스들의 동일하지 않은 강도들을 정정하기 위해 진폭 변조기들의 설정에 대한 조정들이 행해질 수 있다. 예를 들어, 최저 광학 전력을 갖는 도파관은 광자 프로세서(1-103)에 송신된 임의의 주어진 펄스에 대한 최대 전력으로서 설정될 수 있다. 따라서, 정보를 광학 펄스로 인코딩하기 위해 행해지는 진폭에 대한 변조에 부가하여, 최대 전력보다 더 높은 전력을 갖는 임의의 광학 펄스가 진폭 변조기(1-205)에 의해 더 낮은 전력을 갖도록 변조될 수 있다. 위상 변조기는 또한 n개의 출력 모드들 각각에 배치될 수 있고, 이는 출력 신호들 전부가 동일한 위상을 갖도록 전력 트리(1-203)의 각각의 출력 모드의 위상을 조정하는데 이용될 수 있다.
대안적으로 또는 추가적으로, 전력 트리(1-203)는 전력 트리에서의 각각의 빔 스플리터의 분할 비율들이 전력 트리(1-203)의 출력에서 실질적으로 동일한 강도 펄스들을 초래하도록 튜닝될 수 있는 하나 이상의 마하 젠더 간섭계(Mach-Zehnder Interferometer)(MZI)를 이용하여 구현될 수 있다.
진폭 변조기(1-205)는, 개개의 입력 비트 스트링에 기초하여, 전력 트리(1-203)로부터 수신된 각각의 광학 펄스의 진폭을 수정하도록 구성된다. 진폭 변조기(1-205)는 가변 감쇠기, 또는 제어기(1-107)에 의해 추가로 제어될 수 있는 DAC(1-209)에 의해 제어되는 임의의 다른 적절한 진폭 변조기일 수 있다. 전기통신 응용들(telecommunication applications)을 위한 일부 진폭 변조기들이 알려져 있으며, 일부 실시예들에서 이용될 수 있다. 일부 실시예들에서, 가변 빔 스플리터는 진폭 변조기(1-205)로서 이용될 수 있고, 여기서 가변 빔 스플리터의 하나의 출력만이 유지되고, 다른 출력은 폐기되거나 무시된다. 일부 실시예들에서 이용될 수 있는 진폭 변조기들의 다른 예들은 진행파 변조기들(traveling wave modulators), 공동 기반 변조기들(cavity-based modulators), 프란츠-켈디시 변조기들(Franz-Keldysh modulators), 플라즈몬 기반 변조기들(plasmon-based modulators), 2-D 재료 기반 변조기들 및 NOEMS(nano-opto-electro-mechanical switches)를 포함한다.
위상 변조기(1-207)는, 개개의 입력 비트 스트링에 기초하여, 전력 트리(1-203)로부터 수신된 각각의 광학 펄스의 위상을 수정하도록 구성된다. 위상 변조기는 열-광학 위상 시프터(thermo-optic phase shifter), 또는 제어기(1-107)에 의해 추가로 제어될 수 있는 1-211에 의해 전기적으로 제어될 수 있는 임의의 다른 적당한 위상 시프터일 수 있다.
도 1b는 진폭 변조기(1-205) 및 위상 변조기(1-207)를 2개의 개별 컴포넌트로서 도시하고 있지만, 이들은 광학 펄스들의 진폭들 및 위상들 둘다를 제어하는 단일 요소로 결합될 수 있다. 그러나, 광학 펄스의 진폭 및 위상을 개별적으로 제어하는 것은 이점들이 있다. 즉, 크레이머스-크로닉 관계들(Kramers-Kronenig relations)을 통한 진폭 시프트들과 위상 시프트들 사이의 접속으로 인해, 임의의 진폭 시프트와 연관된 위상 시프트가 존재한다. 광학 펄스의 위상을 정확하게 제어하기 위해, 진폭 변조기(1-205)에 의해 생성된 위상 시프트는 위상 변조기(1-207)를 이용하여 보상되어야 한다. 예로써, 광학 인코더(1-101)를 빠져나가는 광학 펄스의 총 진폭은 A = a0a1a2이고, 광학 인코더를 빠져나가는 광학 펄스의 총 위상은 θ=Δθ+Δφ+φ이며, 여기서 a0은 입력 광학 펄스의 입력 강도이고(변조기들의 입력에서의 0 위상을 가정함), a1은 진폭 변조기(1-205)의 진폭 감쇠이고, Δθ는 진폭을 변조하는 동안 진폭 변조기(1-205)에 의해 부여된 위상 시프트이고, Δφ는 위상 변조기(1-207)에 의해 부여된 위상 시프트이고, a2는 위상 변조기(1-209)를 통과하는 광학 펄스와 연관된 감쇠이고, φ는 광학 신호의 전파로 인해 광학 신호에 부여된 위상이다. 따라서, 광학 펄스의 진폭 및 위상을 설정하는 것은 2개의 독립적인 결정들이 아니다. 그보다는, 특정의 진폭 및 위상을 광학 인코더(1-101)로부터 출력된 광학 펄스로 정확하게 인코딩하기 위해, 진폭 변조기(1-205) 및 위상 변조기(1-207) 둘다의 설정들이 양쪽 설정들에 대해 고려되어야 한다.
일부 실시예들에서, 광학 펄스의 진폭은 비트 스트링 값에 직접 관련된다. 예를 들어, 높은 진폭 펄스는 높은 비트 스트링 값에 대응하고, 낮은 진폭 펄스는 낮은 비트 스트링 값에 대응한다. 광학 펄스의 위상은 비트 스트링 값이 양인지 음인지를 인코딩한다. 일부 실시예들에서, 광학 인코더(1-101)에 의해 출력된 광학 펄스의 위상은 180도(π 라디안(radian)) 떨어져 있는 2개의 위상들로부터 선택될 수 있다. 예를 들어, 양의 비트 스트링 값은 0도 위상 시프트로 인코딩될 수 있고, 음의 비트 스트링 값은 180도(π 라디안) 위상 시프트로 인코딩될 수 있다. 일부 실시예들에서, 벡터는 복소수 값인 것으로 의도되며, 따라서 광학 펄스의 위상은 0과 2π 사이의 단지 2개의 값보다 많은 것으로부터 선택된다.
일부 실시예들에서, 제어기(1-107)는 입력 비트 스트링 및 출력 진폭 및 출력 위상을 진폭 변조기(1-204) 및 위상 변조기(1-207)에 의해 부여된 진폭들 및 위상들에 링크시키는 상기의 수학식들에 기초하여, 진폭 변조기(1-205) 및 위상 변조기(1-207) 둘다에 의해 인가될 진폭 및 위상을 결정한다. 일부 실시예들에서, 제어기(1-107)는 진폭 변조기(1-205) 및 위상 변조기(1-207)를 구동하기 위한 디지털 값들의 테이블을 메모리(1-109)에 저장할 수 있다. 일부 실시예들에서, 메모리는 통신 시간 레이턴시 및 전력 소비를 감소시키기 위해 변조기들에 근접하여 배치될 수 있다.
진폭 변조기(1-205)에 연관되고 통신가능하게 결합된 DAC(1-209)는 제어기(1-107)로부터 디지털 구동 값을 수신하고, 디지털 구동 값을 진폭 변조기(1-205)를 구동하는 아날로그 전압으로 변환한다. 유사하게, 위상 변조기(1-207)와 연관되고 통신가능하게 결합된 DAC(1-211)는 제어기(1-107)로부터 디지털 구동 값을 수신하고, 디지털 구동 값을 위상 변조기(1-207)를 구동하는 아날로그 전압으로 변환한다. 일부 실시예들에서, DAC는 진폭 변조기들 내의 원하는 소광비(extinction ratio)(예를 들어, 특정 위상 변조기를 이용하여 구현하기에 물리적으로 가능한 최고 소광비) 및 위상 변조기들 내의 원하는 위상 시프트 범위(예를 들어, 0과 2π 사이의 전체 범위를 커버하는 위상 시프트 범위)를 달성하기 위해 충분히 높은 레벨들로 아날로그 전압들을 증폭하는 증폭기를 포함할 수 있다. DAC (1-209) 및 DAC (1-211)가 도 1b에서 광학 인코더(1-101)의 칩에서 및/또는 칩 상에 위치되는 것으로 도시되어 있지만, 일부 실시예들에서, DAC들(1-209 및 1-211)은 전기 도전성 트레이스들 및/또는 와이어들을 이용하여 진폭 변조기(1-205) 및 위상 변조기(1-207)에 각각, 여전히 통신가능하게 결합되어 있으면서 오프-칩으로 위치될 수 있다.
진폭 변조기(1-205) 및 위상 변조기(1-207)에 의한 변조 후에, n개의 광학 펄스들이 광학 인코더(1-101)로부터 광자 프로세서(1-103)로 송신된다.
D. 광자 프로세서
도 1c를 참조하면, 광자 프로세서(1-103)는 n개의 입력 광학 펄스에 의해 표현된 입력 벡터에 대해 행렬 곱셈을 구현하고, 3개의 주요 컴포넌트들, 즉, 제1 행렬 구현(1-301), 제2 행렬 구현(1-303) 및 제3 행렬 구현(1-305)을 포함한다. 일부 실시예들에서, 이하에서 보다 상세히 논의되는 바와 같이, 제1 행렬 구현(1-301) 및 제3 행렬 구현(1-305)은 n개의 입력 광학 펄스들을 입력 벡터로부터 출력 벡터로 변환하도록 구성된 프로그래밍가능한, 재구성가능한, 가변 빔 스플리터(VBS)들의 상호접속된 어레이를 포함하며, 벡터들의 성분들은 광학 펄스들 각각의 진폭 및 위상에 의해 표현된다. 일부 실시예들에서, 제2 행렬 구현(1-303)은 전기 광학 요소들의 그룹을 포함한다.
입력 광학 펄스들을 광자 프로세서(1-103)를 통해 통과시킴으로써 입력 벡터가 곱해지는 행렬은 M이라고 지칭된다. 행렬 M은 광자 프로세서(1-103)에 의해 구현되어야 하는 행렬로서 제어기(1-107)에 알려진 일반적인 m×n이다. 그와 같이, 제어기(1-107)는 행렬 M이 3개의 성분 행렬(constituent matrx)들: M = VTΣU에 의해 표현되도록 특이값 분해(SVD)를 이용하여 행렬 M을 분해하고, 여기서 U 및 V는 각각 실수 직교 n×n 및 m×m 행렬들이고(UTU = UUT = I 및 VTV = VVT = I), Σ는 실수 엔트리들을 갖는 m×n 대각선 행렬이다. 모든 수학식들에서의 위첨자 "T"는 연관된 행렬의 전치(transpose)를 나타낸다. 행렬의 SVD를 결정하는 것은 알려져 있고, 제어기(1-107)는 행렬 M의 SVD를 결정하기 위해 임의의 적합한 기법을 이용할 수 있다. 일부 실시예들에서, 행렬 M은 복소 행렬이고, 이 경우 행렬 M은 M = VΣU로 분해될 수 있으며, V 및 U는 각각 복소 단위(complex unitary) n×n 및 m×m 행렬들이고(UU = UU = I 및 VV = VV = I), Σ는 실수 또는 복소수 엔트리들을 갖는 m×n 대각선 행렬이다. 대각선 특이값들의 값들은 또한 특이값들의 최대 절대값이 1이 되도록 더 정규화될 수 있다.
일단 제어기(1-107)가 행렬 M에 대한 행렬들 U, Σ및 V를 결정하면, 행렬들 U 및 V가 직교 실수 행렬들인 경우에, 제어는 2개의 직교 행렬들 U 및 V를 일련의 실수 값 기븐스 회전 행렬들로 더 분해할 수 있다. 기븐스 회전 행렬 G(i,j,θ)는 다음의 수학식들에 의해 성분별로 정의된다:
gkk??= 1 (k≠i,j에 대해)
gkk??= cos(θ) (k=i,j에 대해)
gij = -gji = -sin(θ)
gkl = 0 (그렇지 않은 경우)
여기서, gij는 행렬 G의 i번째 행 및 j번째 열의 요소를 나타내고, θ는 행렬과 연관된 회전 각도이다. 일반적으로, 행렬 G는 행렬식(determinant) 1을 갖는 임의의 2×2 단위 행렬(SU(2) 그룹)이고, 2개의 파라미터들에 의해 파라미터화된다. 일부 실시예들에서, 이들 2개의 파라미터들은 회전 각도 θ 및 다른 위상 값 φ이다. 그럼에도 불구하고, 행렬 G는 각도들 또는 위상들 이외의 다른 값들에 의해, 예를 들어, 반사율들(reflectivities)/투과율들(transmissivities)에 의해 또는 (NOEMS의 경우) 분리 거리들에 의해 파라미터화될 수 있다.
복소 공간(complex space)에서 기븐스 회전들의 세트들의 곱의 관점에서 임의의 실수 직교 행렬을 표현하기 위한 알고리즘들은, M. Reck 등의 "Experimental realization of any discrete unitary operator", Physical Review Letters 73, 58 (1994) ("Reck"), 및 W. R. Clements 등의 "Optimal design for universal multiport interferometers", Optica 3, 12 (2016) ("Clements")에 제공되며, 이들 모두는 그 전체가 본 명세서에 참고로 포함되고, 적어도 기븐스 회전들의 관점에서 실수 직교 행렬을 분해하기 위한 기술들의 논의들을 위해 포함된다. (본 명세서에서 이용된 임의의 용어가 Reck 및/또는 Clements에서의 그 용어의 이용과 충돌하는 경우에, 그 용어는 통상의 기술자가 본 명세서에서 그 이용을 이해하는 방법과 가장 부합되는 의미가 부여되어야 한다.) 결과적인 분해는 아래의 수학식에 의해 제공된다:
Figure pct00001
여기서 U는 n×n 직교 행렬이고, Sk는 (분해 알고리즘에 의해 정의되는 바와 같이) 적용된 기븐스 회전들의 k번째 세트에 관련된 인덱스들의 세트이고, θij (k)는 기븐스 회전들의 k번째 세트에서의 성분들 i와 j 사이의 기븐스 회전에 대해 적용된 각도를 나타내고, D는 각각의 성분 상의 전역 부호들(global signs)을 나타내는 +1 또는 -1 엔트리들 중 어느 하나의 대각선 행렬이다. 인덱스들의 세트 Sk는 n이 짝수인지 홀수인지에 의존한다. 예를 들어, n이 짝수일 때:
● Sk = {(1,2),(3,4),...,(n-1,n)} (홀수 k에 대해)
● Sk = {(2,3),(4,5),...,(n-2,n-1)} (짝수 k에 대해)
n이 홀수일 때:
● Sk = {(1,2),(3,4),...,(n-2,n-1)} (홀수 k에 대해)
● Sk = {(2,3),(4,5),...,(n-1,n)} (짝수 k에 대해)
제한이 아닌 예로써, 4×4 직교 행렬의 분해는 다음과 같이 표현될 수 있다:
Figure pct00002
제어기(1-107)를 이용하여 구현될 수 있는, n 세트의 실수 값 기븐스 회전들의 관점에서 n×n 행렬 U를 분해하기 위한 알고리즘의 일 실시예의 간단한 개요는 다음과 같다:
Figure pct00003
상기의 알고리즘의 결과적인 행렬 U'은 더 낮은 삼각형이고, 다음의 수학식에 의해 원래의 행렬 U에 관련된다:
Figure pct00004
여기서, 라벨 SL은 U'의 좌측에 VBS에 의해 접속된 2개의 모드들의 세트를 라벨링하고, 라벨 SR은 U'의 우측에 VBS에 의해 접속된 2개의 모드의 세트를 라벨링한다. U는 직교 행렬이기 때문에, U'은 대각선을 따라 {-1,1}개의 엔트리들을 갖는 대각선 행렬이다. 이 행렬 U' = DU는 "위상 스크린(phase screen)"이라고 지칭된다.
알고리즘의 다음 단계는 어떤
Figure pct00005
이 제어기(1-107)를 이용하여 구현될 수 있는 다음의 알고리즘을 이용하여 달성되는지를 반복적으로 찾는 것이다:
Figure pct00006
상기의 알고리즘은 또한 V 및/또는 VT를 분해하여 VBS 값들의 m개의 계층들 및 연관된 위상 스크린을 결정하는데 이용될 수 있다.
직교 행렬을 실수 값 기븐스 회전 행렬들로 분해하는 상기의 개념은 복소 행렬들, 예를 들어, 직교 행렬들보다는 단위 행렬들로 확장될 수 있다. 일부 실시예들에서, 이것은 기븐스 회전 행렬들의 파라미터화에 추가 위상을 포함시킴으로써 달성될 수 있다. 따라서, 추가적인 위상 항의 가산을 갖는 기븐스 행렬들의 일반적인 형태는 T(i,j,θ,φ)이고, 여기서
tkk = 1 (k≠i,j에 대해)
tii = ecos(θ)
tjj = cos(θ)
tij = -sin(θ)
tji = esin(θ)
tkl = 0 (그렇지 않은 경우)
여기서 tij는 행렬 T의 i번째 행 및 j번째 열을 나타내고, θ는 행렬과 연관된 회전 각도이고, φ는 추가 위상이다. 임의의 단위 행렬이 타입 T(i,j,θ,φ)의 행렬들로 분해될 수 있다. 위상 φ=0을 설정하도록 선택함으로써, 전술한 종래의 실수 값 기븐스 회전 행렬들이 얻어진다. 대신에, 위상 φ=π인 경우, 하우스홀더 행렬들로서 알려진 행렬들의 세트가 얻어진다. 하우스홀더 행렬 H는 형태
Figure pct00007
를 가지며, 여기서 I는 n×n 항등 행렬(identity matrix)이고, v는 단위 벡터이며,
Figure pct00008
는 외적(outer product)이다. 하우스홀더 행렬들은 단위 벡터 v에 직교하는 하이퍼플레인(hyperplane)에 관한 반사들을 나타낸다. 이 파라미터화에서, 하이퍼플레인은 QR 분해를 위한 하우스홀더 행렬들을 정의함에 있어서 일반적인 n-1차원 서브공간(subspace)이 아닌 2차원 서브공간이다. 따라서, 기븐스 회전들로의 행렬의 분해는 하우스홀더 행렬들로의 행렬의 분해와 동등하다.
기븐스 회전들의 제한된 세트로의 임의의 단위 행렬의 전술한 분해에 기초하여, 임의의 단위 행렬은 회전들 및 위상 시프트들의 특정 시퀀스에 의해 구현될 수 있다. 그리고 포토닉스에서, 회전들은 가변 빔 스플리터(VBS)들에 의해 표현될 수 있고, 위상 시프트들은 위상 변조기들을 이용하여 쉽게 구현된다. 따라서, 광자 프로세서(1-103)의 n개의 광학 입력들에 대해, 행렬 M의 SVD의 단위 행렬들을 표현하는 제1 행렬 구현(1-301) 및 제3 행렬 구현(1-305)은 VBS들 및 위상 시프터들의 상호접속된 어레이에 의해 구현될 수 있다. VBS 어레이를 통해 광학 펄스들을 통과시키는 병렬 속성 때문에, 행렬 곱셈은 O(1) 시간에서 수행될 수 있다. 제2 행렬 구현(1-303)은 SVD의 직교 행렬들 각각과 연관된 대각선 행렬들 D와 결합된 행렬 M의 SVD의 대각선 행렬이다. 전술한 바와 같이, 각각의 행렬 D는 "위상 스크린"이라고 지칭되고, 그것이 행렬 U 또는 행렬 V와 연관된 위상 스크린인지를 표시하기 위해 아래첨자로 라벨링될 수 있다. 따라서, 제2 행렬 구현(303)은 행렬 Σ' = DVΣDU이다.
일부 실시예들에서, 제1 행렬 구현(1-301) 및 제3 행렬 구현(1-305)과 연관된 광자 프로세서(1-103)의 VBS 유닛 셀은 내부 위상 시프터를 갖는 마하 젠더 간섭계(MZI)일 수 있다. 다른 실시예들에서, VBS 유닛 셀은 MEMS(microelectromechanical systems) 액추에이터일 수 있다. 외부 위상 시프터는 일부 실시예들에서 기븐스 회전들에 필요한 추가적인 위상을 구현하기 위해 이용될 수 있다.
대각선 행렬 DVΣDU를 표현하는 제2 행렬 구현(1-303)은 진폭 변조기 및 위상 시프터를 이용하여 구현될 수 있다. 일부 실시예들에서, VBS는 광학 펄스를 가변적으로 감쇠시키기 위해 덤프(dumped)될 수 있는 광의 일부를 분할하기 위해 이용될 수 있다. 추가적으로 또는 대안적으로, 광학 신호를 증폭하기 위해 제어가능 이득 매질이 이용될 수 있다. 예를 들어, GaAs, InGaAs, GaN 또는 InP는 광학 신호를 증폭하기 위한 능동 이득 매질로서 이용될 수 있다. 결정 반전 대칭(crystal inversion symmetric)을 갖는 재료들, 예를 들어, KTP 및 니오브산 리튬(lithium niobate)에서의 2차 고조파 생성, 및 반전 대칭이 없는 재료들, 예를 들어, 실리콘에서의 4파 혼합 프로세스들(four-wave mixing processes)과 같은 다른 능동 이득 프로세스들도 이용될 수 있다. 각각의 광학 모드에서의 위상 시프터는 구현되는 위상 스크린에 따라 0 또는π 위상 시프트를 적용하는데 이용될 수 있다. 일부 실시예들에서, 각각의 위상 스크린에 대해 하나의 위상 시프터가 아니라 각각의 광학 모드에 대해 단일 위상 시프터만이 이용된다. 이는 행렬들 DV, Σ 및 DU 각각이 대각선이고, 따라서 면제(commute)되기 때문에 가능하다. 따라서, 광자 프로세서(1-103)의 제2 행렬 구현(1-303)의 각각의 위상 시프터의 값은 2개의 위상 스크린들의 곱: DVDU의 결과이다.
도 1d를 참조하면, 일부 실시예들에 따라, 제1 및 제3 행렬 구현(1-301 및 1-305)은 VBS들(1-401)의 어레이로서 구현된다. 간략성을 위해, n=6개의 입력 광학 펄스들(행들의 수)만이 도시되어 있으며, 그 결과 "회로 깊이"(예를 들어, 열들의 수)가 입력 광학 펄스들의 수(예를 들어, 6)와 동일하다. 명료성을 위해, 단일 VBS(1-401)만이 참조 번호로 라벨링되어 있다. 그러나, VBS는 어떤 광학 모드들이 특정 VBS에 의해 혼합되고 있는지를 식별하는 아래첨자들 및 연관된 열을 라벨링하는 위첨자로 라벨링된다. 각각의 VBS(1-401)는, 앞서 논의된 바와 같이, 복소 기븐스 회전 T(i,j,θ,φ)를 구현하고, 여기서 i 및 j는 VBS들(1-401)의 아래첨자 라벨들과 등가이고, θ는 기븐스 회전의 회전 각도이고, φ는 일반화된 회전과 연관된 추가의 위상이다.
도 1e를 참조하면, 각각의 VBS(1-401)는 MZI(1-510) 및 적어도 하나의 외부 위상 시프터(1-507)를 이용하여 구현될 수 있다. 일부 실시예들에서, 제2 외부 위상 시프터(1-509)가 또한 포함될 수 있다. MZI(1-510)는 MZI(1-510)의 2개의 입력 모드들을 혼합하기 위한 제1 소멸 커플러(1-501) 및 제2 소멸 커플러(1-503)를 포함한다. 내부 위상 시프터(1-505)는 2개의 암(arm)들 사이의 위상차를 생성하기 위해 MZI(1-510)의 하나의 암에서의 위상 θ를 변조한다. 위상 θ를 조정하는 것은 VBS(1-401)에 의해 출력된 광의 강도가 MZI(1-510)의 하나의 출력 모드로부터 다른 출력 모드로 변하게 하여, 제어가능하고 가변적인 빔 스플리터를 생성한다. 일부 실시예들에서, 제2 내부 위상 시프터는 제2 암 상에 적용될 수 있다. 이 경우, 출력 광 강도가 변화되게 하는 것은 2개의 내부 위상 시프터들 사이의 차이이다. 2개의 내부 위상들 사이의 평균은 모드 i 및 모드 j에 들어가는 광에 전역 위상을 부여할 것이다. 따라서, 2개의 파라미터들 θ 및 φ는 위상 시프터에 의해 각각 제어될 수 있다. 일부 실시예들에서, 제2 외부 위상 시프터(1-509)는 정적 위상 무질서(static phase disorder)로 인해 VBS의 출력 모드들에 걸쳐 원하지 않는 차동 위상을 정정하는데 이용될 수 있다.
일부 실시예들에서, 위상 시프터들(1-505, 1-507 및 1-509)은 열-광학(thermo-optic), 전기-광학(electro-optic), 또는 광기계(optomechanic) 위상 변조기를 포함할 수 있다. 다른 실시예들에서, MZI(510) 내에 내부 위상 변조기(505)를 포함하기보다는, NOEMS 변조기가 이용될 수 있다.
일부 실시예들에서, VBS들의 수는 행렬의 크기에 따라 증가한다. 본 발명자들은 다수의 VBS를 제어하는 것은 도전과제일 수 있고, 다수의 VBS들 사이에 단일 제어 회로를 공유하는 것은 이점이 있다는 것을 인식하여 알았다. 다수의 VBS들을 제어하는데 이용될 수 있는 병렬 제어 회로의 예는, 특정의 VBS에 부여될 아날로그 신호를 인코딩하는 디지털 스트링을 입력으로서 수신하는 디지털-아날로그 변환기(digital-to-analog converter)이다. 일부 실시예들에서, 회로는 또한 제어될 VBS의 어드레스의 제2 입력을 수신한다. 회로는 이어서, 어드레싱된 VBS 상에 아날로그 신호들을 부여할 수 있다. 다른 실시예들에서, 제어 회로는 다수의 VBS들을 통해 자동으로 스캐닝하고, 어드레스를 능동적으로 부여하지 않고 다수의 VBS들에 아날로그 신호들을 부여할 수 있다. 이 경우, 어드레싱 시퀀스는 알려진 순서로 VBS 어레이를 가로지르도록 미리 정의된다.
도 1f를 참조하면, 제2 행렬 구현(1-303)은 대각선 행렬 Σ'=DVΣDU에 의한 곱셈을 구현한다. 이것은 2개의 위상 스크린들을 구현하기 위한 2개의 위상 시프터들(1-601 및 1-605) 및 연관된 광학 펄스의 강도를 양 η만큼 조정하기 위한 진폭 변조기(1-603)를 이용하여 달성될 수 있다. 전술한 바와 같이, 일부 실시예들에서, 단일 위상 변조기(1-601)만이 이용될 수 있는데, 그 이유는 Σ'을 형성하는 3개의 성분 행렬들이 대각선이고, 따라서 면제되므로, 2개의 위상 스크린들이 함께 결합될 수 있기 때문이다.
일부 실시예들에서, 진폭 변조기들(1-603)은 감쇠기 및/또는 증폭기를 이용하여 구현될 수 있다. 진폭 변조 η의 값이 1보다 큰 경우, 광학 펄스가 증폭된다. 진폭 변조 η의 값이 1보다 작은 경우, 광학 펄스는 감쇠된다. 일부 실시예들에서, 감쇠만이 이용된다. 일부 실시예들에서, 감쇠는 통합된 감쇠기들의 열에 의해 구현될 수 있다. 다른 실시예들에서, 도 1g에 예시된 바와 같이, 감쇠(1-603)는 2개의 소멸 커플러들(1-701 및 1-703)을 포함하는 MZI 및 제어가능한 내부 위상 시프터(1-705)를 이용하여 구현되어, MZI의 입력으로부터 MZI의 제1 출력 포트(1-709)로 얼마나 많은 입력 광이 송신되는지를 조정할 수 있다. MZI의 제2 출력 포트(1-707)는 무시되거나, 차단되거나, 덤프될 수 있다.
일부 실시예들에서, 제어기(1-107)는 광자 프로세서(1-103)에서의 각각의 위상 시프터의 값을 제어한다. 위에서 논의된 각각의 위상 시프터는 광학 인코더(1-101)의 위상 변조기(1-207)와 관련하여 논의된 DAC들과 유사한 DAC를 포함할 수 있다.
광자 프로세서(1-103)는 임의의 수의 입력 노드를 포함할 수 있지만, 입력 모드들의 수가 증가함에 따라 상호접속된 VBS 어레이들(1-301 및 1-305)의 크기 및 복잡도가 증가할 것이다. 예를 들어, n개의 입력 광학 모드들이 있는 경우, 광자 프로세서(1-103)는 2n+1의 회로 깊이를 가질 것이며, 여기서 제1 행렬 구현(1-301) 및 제2 행렬 구현(1-305) 각각은 회로 깊이 n을 갖고, 제2 행렬 구현(1-303)은 회로 깊이 1을 갖는다. 중요하게, 단일 행렬 곱셈을 수행하는 시간에서의 복잡도는 입력 광학 펄스들의 수와 선형이 아니며, 항상 O(1)이다. 일부 실시예들에서, 병렬화에 의해 제공된 이러한 저차(low order) 복잡도는 종래의 전기 프로세서들을 이용하여 획득될 수 없는 에너지 및 시간 효율들을 초래한다.
본 명세서에 설명된 실시예들은 광자 프로세서(1-103)를 n개의 입력들 및 n개의 출력들을 갖는 것으로서 도시하지만, 일부 실시예들에서, 광자 프로세서(1-103)에 의해 구현된 행렬 M은 정사각형 행렬이 아닐 수 있음에 유의해야 한다. 그러한 실시예들에서, 광자 프로세서(1-103)는 상이한 수의 출력들 및 입력들을 가질 수 있다.
또한, 제1 및 제2 행렬 구현들(1-301 및 1-305) 내의 VBS들의 상호접속들의 토폴로지로 인해, 하나보다 많은 행렬 곱셈이 동시에 수행될 수 있도록 광자 프로세서(1-103)를 행들의 상호작용하지 않는 서브세트들로 세분하는 것이 가능하다는 것에 유의해야 한다. 예를 들어, 도 1d에 도시된 VBS 어레이에서, 광학 모드들 3 및 4를 결합하는 각각의 VBS(1-401)가, (예를 들어, 마치 아래첨자 "34"를 갖는 VBS(1-401)가 도 1d에 없는 것처럼) 광학 모드들 3 및 4가 전혀 결합되지 않도록 설정되는 경우, 상위 3개의 광학 모드들은 하위 3개의 광학 모드들과는 완전히 독립적으로 동작할 것이다. 그러한 세분은 더 많은 수의 입력 광학 모드들을 갖는 광자 프로세서를 이용하여 훨씬 더 큰 스케일로 행해질 수 있다. 예를 들어, n=64 광자 프로세서는 8개의 8-성분 입력 벡터들과 개개의 8×8 행렬을 동시에 곱할 수 있다(8×8 행렬들 각각은 개별적으로 프로그래밍가능하고 제어가능함). 더욱이, 광자 프로세서(1-103)가 균일하게 세분될 필요는 없다. 예를 들어, n=64 광자 프로세서는 각각 20, 13, 11, 8, 6, 4 및 2개의 성분들을 갖는 7개의 상이한 입력 벡터들로 세분될 수 있고, 각각은 개개의 행렬과 동시에 곱해진다. 상기의 수치 예들은 단지 예시의 목적들을 위한 것이고, 임의의 수의 세분들이 가능하다는 것을 이해해야 한다.
추가적으로, 광자 프로세서(1-103)가 벡터-행렬 곱셈―여기서, 벡터는 광학 신호들을 VBS들의 어레이를 통해 전달함으로써 행렬과 곱해짐―을 수행하는 동안, 광자 프로세서(1-103)는 또한 행렬-행렬 곱셈을 수행하는데 이용될 수 있다. 예를 들어, 다수의 입력 벡터들이 광자 프로세서(1-103)를 통해 교대로 한번에 하나씩 전달될 수 있고, 여기서 각각의 입력 벡터는 입력 행렬의 열을 표현한다. 개별 벡터-행렬 곱셈들(각각의 곱셈은 결과 행렬의 출력 열의 열에 대응하는 출력 벡터를 야기함) 각각을 광학적으로 계산한 후에, 결과들은 디지털적으로 결합되어 행렬-행렬 곱셈으로부터 생기는 출력 행렬을 형성할 수 있다.
E. 광학 수신기
광자 프로세서(1-103)는 광학 수신기(1-105)에 송신되는 n개의 광학 펄스들을 출력한다. 광학 수신기(1-105)는 광학 펄스들을 수신하고, 수신된 광학 신호들에 기초하여 전기 신호를 생성한다. 일부 실시예들에서, 각각의 광학 펄스의 진폭 및 위상이 결정된다. 일부 실시예들에서, 이것은 호모다인 또는 헤테로다인(heterodyne) 검출 방식들을 이용하여 달성된다. 다른 실시예들에서, 간단한 위상 비민감 광검출(phase-insensitive photodetection)은 종래의 포토다이오드들을 이용하여 수행될 수 있다.
도 1i를 참조하면, 일부 실시예들에 따라, 광학 수신기(1-105)는 호모다인 검출기(1-901), 트랜스임피던스 증폭기(transimpedance amplifier)(1-903) 및 아날로그-디지털 변환기(ADC)(1-905)를 포함한다. 컴포넌트들이 도 1i에서의 모든 광학 모드들에 대해 하나의 요소로서 도시되어 있지만, 이는 간략화를 위한 것이다. 각각의 광학 모드는 전용 호모다인 검출기(1-901), 전용 트랜스임피던스 증폭기(1-903) 및 전용 ADC(1-905)를 가질 수 있다. 일부 실시예들에서, 트랜스임피던스 증폭기(1-903)가 이용되지 않을 수 있다. 대신에, 전류를 전압으로 변환하는 임의의 다른 적절한 전자 회로가 이용될 수 있다.
도 1j를 참조하면, 일부 실시예들에 따라, 호모다인 검출기(1-903)는 국부 발진기(local oscillator)(LO)(1-1001), 직교 제어기(quadrature controller)(1-1003), 빔 스플리터(beam splitter)(1-1005) 및 2개의 검출기들(1-1007 및 1-1009)을 포함한다. 호모다인 검출기(1-903)는 제1 검출기(1-1007) 및 제2 검출기(1-1009)에 의해 출력된 전류 사이의 차이에 기초하는 전기 전류를 출력한다.
국부 발진기(1-1001)는 빔 스플리터(1-1005)에서 입력 광학 펄스와 결합된다. 일부 실시예들에서, 광원(1-201)의 일부분이 광학 도파관 및/또는 광섬유를 통해 호모다인 검출기(1-901)로 송신된다. 광원(1-201)으로부터의 광 자체는 국부 발진기(1-1001)로서 이용될 수 있거나, 다른 실시예들에서, 국부 발진기(1-1001)는 위상 매칭된 광학 펄스를 생성하기 위해 광원(1-201)으로부터의 광을 이용하는 별개의 광원일 수 있다. 일부 실시예들에서, 신호와 국부 발진기 사이에 조정들이 행해질 수 있도록, MZI가 빔 스플리터(1-1005)를 대체할 수 있다.
직교 제어기(1-1003)는 측정이 행해지는 위상 공간에서 단면 각도를 제어한다. 일부 실시예들에서, 직교 제어기(1-1003)는 입력 광학 펄스와 국부 발진기 사이의 상대 위상을 제어하는 위상 시프터일 수 있다. 직교 제어기(1-1003)는 입력 광학 모드에서 위상 시프터로서 도시되어 있다. 그러나, 일부 실시예들에서, 직교 제어기(1-1003)는 국부 발진기 모드에 있을 수 있다.
제1 검출기(1-1007)는 빔 스플리터(1-1005)의 제1 출력에 의해 출력된 광을 검출하고, 제2 검출기(1-1009)는 빔 스플리터(1-1005)의 제2 출력에 의해 출력된 광을 검출한다. 검출기들(1-1007 및 1-1009)은 0 바이어스로 동작된 포토다이오드들일 수 있다.
감산 회로(subtraction circuit)(1-1011)는 제1 검출기(1-1007)로부터의 전기 전류를 제2 검출기(1-1009)로부터의 전기 전류로부터 감산한다. 따라서, 결과적인 전류는 진폭 및 부호(양(plus) 또는 음(minus))를 갖는다. 트랜스임피던스 증폭기(1-903)는 이러한 전류 차이를 양 또는 음일 수 있는 전압으로 변환한다. 마지막으로, ADC(1-905)는 아날로그 신호를 디지털 비트 스트링으로 변환한다. 이 출력 비트 스트링은 행렬 곱셈의 출력 벡터 결과를 표현하고, 광자 프로세서(1-103)에 의해 출력되는 출력 벡터의 광학 출력 표현의 전기적 디지털 버전이다. 일부 실시예들에서, 출력 비트 스트링은, 전술한 바와 같이, 하나 이상의 출력 비트 스트링에 기초하여 다음 입력 비트 스트링을 결정하는 것 및/또는 출력 비트 스트링을 외부 프로세서에 송신하는 것을 포함할 수 있는, 추가적인 처리를 위해 제어기(1-107)에 전송될 수 있다.
본 발명자들은, 제3 행렬 구현(1-305)에 접속된 제2 행렬 구현(1-303)에 접속된 제1 행렬 구현(1-301)이 존재하도록, 전술한 광자 처리 시스템(1-100)의 컴포넌트들이 연이어(back-to-back) 함께 체인화될 필요가 없다는 것을 더 인식하여 알았다. 일부 실시예들에서, 광자 처리 시스템(1-103)은 하나 이상의 곱셈을 수행하기 위한 단일 단위 회로만을 포함할 수 있다. 단일 단위 회로의 출력은 광학 수신기(1-105)에 직접 접속될 수 있고, 여기서 곱셈의 결과들은 출력 광학 신호들을 검출하는 것에 의해 결정된다. 그러한 실시예들에서, 단일 단위 회로는, 예를 들어, 제1 행렬 구현(1-301)을 구현할 수 있다. 광학 수신기(1-105)에 의해 검출된 결과들은 이어서 종래의 프로세서(예를 들어, 프로세서(1-111))에 디지털적으로 송신될 수 있고, 여기서 대각선 제2 행렬 구현(1-303)은 종래의 프로세서(예를 들어, 1-111)를 이용하여 디지털 도메인에서 수행된다. 제어기(1-107)는 이어서 제3 행렬 구현(1-305)을 수행하기 위해 단일 단위 회로를 재프로그래밍하고, 제2 행렬 구현의 디지털 구현의 결과에 기초하여 입력 비트 스트링을 결정하며, 새로운 입력 비트 스트링에 기초하여 인코딩된 광학 신호들을 재프로그래밍된 설정들을 갖는 단일 단위 회로를 통해 송신하도록 광학 인코더를 제어할 수 있다. 광학 수신기(105)에 의해 검출되는 결과적인 출력 광학 신호들은 이어서 행렬 곱셈의 결과들을 결정하는데 이용된다.
본 발명자들은 또한 다수의 광자 프로세서들(1-103)을 직렬로 연이어 체인화하는 것에 대한 이점들이 있을 수 있다는 것을 인식하여 알았다. 예를 들어, 행렬 곱셈 M = M1M2를 구현하기 위해, M1 및 M2는 임의의 행렬들이지만, 변화하는 입력 작업 부하에 기초하여 M2가 M1보다 더 빈번하게 변화되고, 제1 광자 프로세서는 M2를 구현하도록 제어될 수 있고, 제1 광자 프로세서에 광학적으로 결합된 제2 광자 프로세서는 정적으로 유지되는 M1을 구현할 수 있다. 이러한 방식으로, 제1 광자 처리 시스템만이 변화하는 입력 작업 부하에 기초하여 빈번하게 업데이트될 필요가 있다. 이러한 배열이 계산을 가속화할 뿐만 아니라, 제어기(1-107)와 광자 프로세서들 사이에서 이동하는 데이터 비트들의 수도 감소시킨다.
F. 폴딩된 광자 처리 시스템
도 1a에서, 그러한 배열에서, 광학 인코더(1-101) 및 광학 수신기(1-105)는 광자 처리 시스템(1-100)의 대향 측면들 상에 배치된다. 광학 수신기(1-105)로부터의 피드백이 장래의 프로세스 반복을 위해 광학 인코더(1-101)에 대한 입력을 결정하는데 이용되는 응용들에서, 데이터는 광학 수신기(1-105)로부터 제어기(1-107)로, 그리고 이어서 광학 인코더(1-101)로 전자적으로 전송된다. 본 발명자들은 (예를 들어, 전기 트레이스들 및/또는 와이어들의 길이를 감소시킴으로써) 이러한 전기 신호들이 이동할 필요가 있는 거리를 감소시키는 것이 전력 절감 및 더 낮은 레이턴시를 초래한다는 것을 인식하여 알았다. 더욱이, 광학 인코더(1-101) 및 광학 수신기(1-105)가 광자 처리 시스템의 대향 단부들 상에 배치될 필요가 없다.
따라서, 일부 실시예들에서, 전기 신호들이 광학 인코더(1-101)와 광학 수신기(1-105) 사이에서 이동해야 하는 거리가 광자 프로세서(1-103)의 폭 미만이도록, 광학 인코더(1-101)와 광학 수신기(1-105)는 (예를 들어, 광자 프로세서(1-103)의 동일한 측면 상에) 서로 가까이 위치된다. 이것은 제1 행렬 구현(1-301) 및 제3 행렬 구현(1-305)의 컴포넌트들을, 칩의 동일한 부분에 물리적으로 존재하도록 물리적으로 인터리빙하는 것에 의해 달성될 수 있다. 이러한 배열은 "폴딩된" 광자 처리 시스템이라고 지칭되는데, 그 이유는, 광이 먼저 광학 인코더(1-101) 및 광학 수신기(1-105)로부터 멀리 있는 칩의 물리적 부분에 도달할 때까지 제1 행렬 구현(1-301)을 통해 제1 방향으로 전파되고, 이어서 제3 행렬 구현(1-305)을 구현할 때 도파관들이 광을 제1 방향과 반대 방향으로 전파하도록 전환(turn)시키도록 위로 폴딩되기 때문이다. 일부 실시예들에서, 제2 행렬 구현(1-303)은 도파관들에서의 폴드에 인접하여 물리적으로 위치된다. 그러한 배열은 광학 인코더(1-101), 광학 수신기(1-105), 및 제어기(1-107)를 접속하는 전기 트레이스들의 복잡도를 감소시키고, 광자 처리 시스템(1-100)을 구현하는데 이용되는 전체 칩 영역을 감소시킨다. 예를 들어, 폴딩된 배열을 이용하는 일부 실시예들은 도 1a의 연이은 광자 배열이 이용된 경우에 필요한 전체 칩 영역의 65%만을 이용한다. 이것은 광자 처리 시스템의 비용 및 복잡도를 감소시킬 수 있다.
본 발명자들은 폴딩된 배열에 대한 전기적 이점들 뿐만 아니라 광학적 이점들도 존재한다는 것을 인식하여 알았다. 예를 들어, 호모다인 검출을 위한 국부 발진기로서 이용될 광원으로부터 광 신호가 이동해야 하는 거리를 감소시킴으로써, 광 신호의 시간 의존적 위상 변동들(time-dependent phase fluctuations)이 감소되어, 더 높은 품질 검출 결과들을 초래할 수 있다. 특히, 광원 및 호모다인을 광자 프로세서의 동일한 측면 상에 위치시킴으로써, 국부 발진기에 이용된 광 신호가 이동하는 거리는 더 이상 행렬의 크기에 의존하지 않는다. 예를 들어, 도 1a의 연이은 배열에서, 국부 발진기에 대한 광 신호가 이동한 거리는 행렬의 크기에 따라 선형적으로 스케일링되는 반면, 폴딩된 배열에서 이동한 거리는 행렬 크기에 관계없이 일정하다.
도 1k는 일부 실시예들에 따른, 폴딩된 광자 처리 시스템(1-1100)의 개략도이다. 폴딩된 광자 처리 시스템(1-1100)은 전력 트리(1-1101), 복수의 광학 인코더들(1-1103a―1-1103d), 복수의 호모다인 검출기들(1-1105a―1-1105d), 복수의 선택기 스위치들(1-1107a―1-1107d), 복수의 U-행렬 컴포넌트들(1-1109a―1-1109j), 복수의 대각선-행렬 컴포넌트들(1-1111a―1-1111d), 및 복수의 V-행렬 컴포넌트들(1-1113a―1-1113j)을 포함한다. 명료성을 위해, 폴딩된 광자 처리 시스템의 모든 컴포넌트들이 도면에 도시되지는 않는다. 폴딩된 광자 처리 시스템(1-1100)이 연이은 광자 처리 시스템(1-100)과 유사한 컴포넌트들을 포함할 수 있다는 것을 이해해야 한다.
전력 트리(1-1101)는 도 1b의 전력 트리(1-203)와 유사하고, 광원(도시되지 않음)으로부터의 광을 광학 인코더들(1-1103)에 전달하도록 구성된다. 그러나, 전력 트리(1-1101)와 전력 트리(1-203)의 차이는 전력 트리가 광학 신호들을 호모다인 검출기들(1-1105a)에 직접 전달한다는 것이다. 도 1b에서, 광원(201)은 광원으로부터 광학 신호의 일부를 탭핑(tapping)하고, 도파관을 이용하여 광학 신호를 안내함으로써, 광자 프로세서의 다른 측 상의 호모다인 검출기들에 국부 발진기 신호를 전달한다. 도 1k에서, 전력 트리(1-1101)는 공간 모드들의 수의 2배와 동일한 수의 출력들을 포함한다. 예를 들어, 도 1k는 광자 프로세서의 4개의 공간 모드들만을 도시하며, 이는 전력 트리(1-1101)로부터의 8개의 출력 모드들―각각의 광학 인코더(1-1103)에 광을 지향시키는 하나의 출력 및 각각의 호모다인 검출기(1-1105)에 광을 지향시키는 하나의 출력―을 초래한다. 전력 트리는, 예를 들어, 캐스케이딩 빔 스플리터들 또는 다중 모드 간섭계(MMI)를 이용하여 구현될 수 있다.
광학 인코더들(1-1103)은 도 1a의 전력 트리 광학 인코더(1-101)와 유사하고, 파워 트리(1-1101)로부터 수신된 광학 신호들의 진폭 및/또는 위상으로 정보를 인코딩하도록 구성된다. 이것은, 예를 들어, 도 2의 광학 인코더(1-101)와 관련하여 설명된 바와 같이 달성될 수 있다.
호모다인 검출기들(1-1105)은 전력 트리(1-1101)와 U-행렬 컴포넌트들(1-1109) 사이에 위치된다. 일부 실시예들에서, 호모다인 검출기들(1-1105)은 물리적으로 광학 인코더(1-1103)와 열로 위치된다. 일부 실시예들에서, 광학 인코더들(1-1103) 및 호모다인 검출기들(1-1105)은 단일 열로 인터리빙될 수 있다. 이러한 방식으로, 광학 인코더들(1-1103) 및 호모다인 검출기들(1-1105)은 서로 근접해 있어, 광학 인코더들(1-1103) 및 호모다인 검출기들(1-1105), 및 광학 인코더들(1-1103) 및 호모다인 검출기들(1-1105)의 열에 인접하여 물리적으로 위치될 수 있는 제어기(도시되지 않음)를 접속하는데 이용된 전기 트레이스들(도시되지 않음)의 거리를 감소시킨다.
광학 인코더들(1-1103) 각각은 개개의 호모다인 검출기(1-1105)와 연관되어 있다. 광학 인코더들(1-1103) 및 호모다인 검출기들(1-1105) 모두 전력 트리(1-1101)로부터 광학 신호들을 수신한다. 광학 인코더(1-1103)는 전술한 바와 같이, 광학 신호들을 이용하여 입력 벡터를 인코딩한다. 호모다인 검출기들(1-1105)은 전술한 바와 같이, 전력 트리로부터 수신된 광학 신호들을 국부 발진기로서 이용한다.
광학 인코더들(1-1103) 및 호모다인 검출기들(1-1105)의 각각의 쌍은 도파관에 의해 선택기 스위치(1-1107)와 연관되고, 도파관에 접속된다. 선택기 스위치들(1-1107a―1-1107d)은, 예를 들어, 종래의 2×2 광학 스위치를 이용하여 구현될 수 있다. 일부 실시예들에서, 2×2 광학 스위치는 교차(crossing)로부터 바(bar)로의 MZI의 거동을 제어하기 위해 내부 위상 시프터를 갖는 MZI이다. 스위치(1-1107)는 광학 인코더(1-1103)로부터 수신된 광학 신호가 U-행렬 컴포넌트들(1-1109) 또는 V-행렬 컴포넌트들(1-1113)을 향해 유도될 것인지를 제어하기 위해 제어기(도시되지 않음)에 접속된다. 광학 스위치는 또한 U-행렬 컴포넌트들(1-1109) 및/또는 V-행렬 컴포넌트들(1-1113)로부터 수신된 광을 검출을 위해 호모다인 검출기들(1-1105)을 향해 유도하도록 제어된다.
행렬 곱셈을 구현하기 위한 기법들은 도 1c에서 설명된 연이은 시스템과 관련하여 전술한 바와 같은 광자 폴딩된 광자 처리 시스템(1-1100)에서와 유사하다. 2개의 시스템들 사이의 차이는 행렬 컴포넌트들의 물리적 배치 및 폴드(1-1120)의 구현에 있고, 여기서 광학 신호들은 도 1k에서 대략 좌측에서 우측으로 전파하는 것으로부터, 대략 우측에서 좌측으로 전파하는 것으로 변경된다. 도 1k에서, 컴포넌트들 사이의 접속들은 도파관들을 나타낼 수 있다. 일부 실시예들에서, 실선 접속들은 광학 신호들이 좌측에서 우측으로 전파하는 도파관의 부분들을 나타내고, 일부 실시예들에서, 파선 접속들은 광학 신호들이 우측에서 좌측으로 전파하는 도파관의 부분들을 나타낸다. 특히, 이러한 명명법을 고려할 때, 도 1k에 도시된 실시예는 선택기 스위치들(1-1107)이 먼저 광학 신호들을 U-행렬 컴포넌트들(1-1109)로 유도하는 실시예이다. 다른 실시예들에서, 선택기 스위치들(1-1107)은 먼저 광학 신호들을 V-행렬 컴포넌트들(1-1113)로 유도할 수 있으며, 이 경우에 파선들은 광학 신호들이 좌측에서 우측으로 전파하는 도파관의 부분들을 나타낼 것이고, 실선 접속들은 광학 신호들이 우측에서 좌측으로 전파하는 도파관의 부분들을 나타낼 것이다.
행렬 M의 SVD의 U-행렬은 V-행렬 컴포넌트들(1-1113)과 인터리빙되는 U-행렬 컴포넌트들(1-1109)을 이용하여 광자 처리 시스템(1-1100)에서 구현된다. 따라서, 도 1c에 도시된 연이은 배열의 실시예와 달리, U-행렬 컴포넌트들(1-1109) 및 V-행렬 컴포넌트들(1-1113) 모두는 단일 물리적 영역 내의 개개의 자립형 어레이(self-contained array)에 물리적으로 위치되지 않는다. 따라서, 일부 실시예들에서, 광자 처리 시스템(1-1100)은 행렬 컴포넌트의 복수의 열들을 포함하고, 열들 중의 적어도 하나는 U-행렬 컴포넌트들(1-1109) 및 V-행렬 컴포넌트들(1-1113) 모두를 포함한다. 일부 실시예들에서, 도 1k에 도시된 바와 같이, 제1 열은 U-행렬 컴포넌트들(1-1109)만을 가질 수 있다. U-행렬 컴포넌트들(1-1109)은 도 1c의 제1 행렬 구현(1-301)과 유사하게 구현된다.
U-행렬 컴포넌트들(1-1109) 및 V-행렬 컴포넌트들(1-1113)의 인터리빙 구조로 인해, 폴딩된 광자 처리 시스템(1-1100)은 행렬 요소들의 열들 사이의 다양한 위치들에 도파관 크로스오버들(waveguide crossovers)(1-1110)을 포함한다. 일부 실시예들에서, 도파관 크로스오버들은 통합된 포토닉스 칩에서의 2개 이상의 층들 사이의 단열 소멸 엘리베이터들(adiabatic evanescent elevators)을 이용하여 구성될 수 있다. 다른 실시예들에서, U-행렬 및 V-행렬은 동일한 칩의 상이한 층들 상에 위치될 수 있고, 도파관 크로스오버들은 이용되지 않는다.
광학 신호들이 U-행렬 컴포넌트들(1-1109) 모두를 통해 전파된 후에, 광학 신호들은 도 1c의 제2 행렬 구현(1-303)과 유사하게 구현되는 대각선 행렬 컴포넌트들(1-1111)로 전파된다.
광학 신호들이 모든 대각선 행렬 컴포넌트들(1-1111)을 통해 전파된 후에, 광학 신호들은 도 1c의 제3 행렬 구현(1-305)과 유사하게 구현되는 V-행렬 컴포넌트들(1-1113)로 전파된다. 행렬 M의 SVD의 V-행렬은 U-행렬 컴포넌트들(1-1109)과 인터리빙되는 V-행렬 컴포넌트들(1-1113)을 이용하여 광자 처리 시스템(1-1100)에서 구현된다. 따라서, V-행렬 컴포넌트들(1-1113) 모두는 단일의 자립형 어레이에 물리적으로 위치되지 않는다.
광학 신호들이 V-행렬 컴포넌트들(1-1113) 모두를 통해 전파된 후에, 광학 신호들은, 검출을 위해 광학 신호들을 호모다인 검출기들(1-1105)로 유도하는 선택기 스위치(1-1107)로 되돌아간다.
본 발명자들은 광학 인코더들 이후에 그리고 행렬 컴포넌트들 이전에 선택기 스위치들을 포함시킴으로써, 폴딩된 광자 처리 시스템(1-1100)이 회로의 효율적인 양방향성(bi-directionality)을 가능하게 한다는 것을 더 인식하여 알았다. 따라서, 일부 실시예들에서, 도 1a와 관련하여 설명된 제어기(1-107)와 같은 제어기는 광학 신호들이 먼저 U 행렬과 곱해지는지 또는 먼저 VT 행렬과 곱해지는지를 제어할 수 있다. 광학 신호들을 왼쪽에서 오른쪽으로 전파할 때 단위 행렬 U를 구현하도록 설정된 VBS들의 어레이에 대해, 광학 신호들을 오른쪽에서 왼쪽으로 전파하는 것은 단위 행렬 UT에 의한 곱셈을 구현한다. 따라서, VBS들의 어레이에 대한 동일한 설정들은, 1-1107에서의 선택기 스위치를 이용하여 제어될 수 있는, 어레이를 통해 광학 신호들이 전파되는 방식에 따라 U 및 UT 둘다를 구현할 수 있다. 기계 학습 알고리즘을 트레이닝하기 위해 이용된 역전파(back-propagation)와 같은 일부 응용들에서, 광학 신호들을 하나 이상의 행렬을 통해 역방향으로 진행시키는 것이 바람직할 수 있다. 다른 응용들에서, 양방향성은 입력 벡터에 대한 반전 행렬의 연산을 계산하는데 이용될 수 있다. 예를 들어, 반전가능한 n×n 행렬 M에 대해, SVD는 M=VTΣU를 초래한다. 이 행렬의 역은, M-1 = UTΣ-1V이고, 여기서 Σ-1은 각각의 대각선 요소를 반전시킴으로써 효율적으로 계산될 수 있는 대각선 행렬의 역이다. 벡터와 행렬 M을 곱하기 위해, 스위치들은 행렬 U, 이어서 Σ, 이어서 VT를 통해, 제1 방향으로 광학 신호들을 지향시키도록 구성된다. 벡터와 역 M-1을 곱하기 위해, 먼저 특이값들이 Σ-1 행렬의 구현을 프로그래밍하도록 설정된다. 이것은 광자 프로세서의 모든 2n+1개의 열들 대신에 VBS들의 단지 하나의 열의 설정들을 변경하는 것을 구성하며, 이는 도 1c에 도시된 것과 같은 단방향성 광자 처리 시스템의 경우이다. 입력 벡터를 표현하는 광학 신호들은 그 후 행렬 VT, 이어서 Σ-1, 및 이어서 U를 통해, 제1 방향과 반대인 제2 방향으로 전파된다. 선택기 스위치들(1-1107)을 이용함으로써, 폴딩된 광자 처리 시스템(1-1100)은 먼저 U 행렬(또는 그것의 전치)을 구현하고, 먼저 VT 행렬(또는 그것의 전치)을 구현하는 것으로부터 쉽게 변경될 수 있다.
G. 파장 분할 다중화
본 발명자들은 상이한 벡터들이 동일한 행렬로 곱해질 수 있는 응용들이 있다는 것을 더 인식하여 알았다. 예를 들어, 기계 학습 알고리즘들을 트레이닝 또는 이용할 때, 데이터의 세트들은 동일한 행렬 곱셈들로 처리될 수 있다. 본 발명자들은 이것이 광자 프로세서 이전 및 이후의 컴포넌트들이 파장 분할 다중화(wavelength-division-multiplexed)(WDM)되는 경우에 단일 광자 프로세서로 달성될 수 있다는 것을 인식하여 알았다. 따라서, 일부 실시예들은 행렬 곱셈을 구현하기 위해 단일 광자 프로세서만을 이용하면서, 각각이 상이한 파장과 연관된 다수의 전단들 및 후단들을 포함한다.
도 1la는 일부 실시예들에 따른, WDM 광자 처리 시스템(1-1200)을 도시한다. WDM 광자 처리 시스템(1-1200)은 N개의 전단들(1-1203), N개의 공간 모드들을 갖는 단일 광자 프로세서(1-1201), 및 N개의 후단들(1-1205)을 포함한다.
광자 프로세서(1-1201)는 N개의 입력 모드들 및 N개의 출력 모드들을 갖는 광자 프로세서(1-103)와 유사할 수 있다. N개의 전단들(1-1203) 각각은 광자 프로세서(1-1201)의 개개의 입력 모드에 접속된다. 유사하게, N개의 후단들(1-1205) 각각은 광자 프로세서(1-1201)의 개개의 출력 모드에 접속된다.
도 1lb는 전단들(1-1203) 중 적어도 하나의 상세들을 도시한다. 다른 실시예들의 광자 처리 시스템에서와 같이, 광자 처리 시스템(1-1200)은 광학 인코더들(1-1211)을 포함한다. 그러나, 이 실시예에서, M개의 상이한 광학 인코더들이 있고, 여기서 M은 WDM 광자 처리 시스템(1-1200)에 의해 다중화되는 파장들의 수이다. M개의 광학 인코더들(1-1211) 각각은 M개의 광학 신호들을 생성하는 광원(도시되지 않음)으로부터 광을 수신하며, M개의 광학 신호들 각각은 상이한 파장이다. 광원은, 예를 들어, 레이저들의 어레이, 주파수 빗 생성기(frequency comb generator), 또는 상이한 파장들의 코히어런트 광을 생성하는 임의의 다른 광원일 수 있다. M개의 광학 인코더들(1-1211) 각각은 데이터를 광학 신호로 인코딩하기 위해 적절한 진폭 및 위상 변조를 구현하도록 제어기(도시되지 않음)에 의해 제어된다. 이어서, M개의 인코딩된 광학 신호들은 M:1 WDM(1-1213)을 이용하여 단일 도파관으로 결합된다. 단일 도파관은 이어서 광자 프로세서(1-1201)의 N개의 도파관들 중 하나에 접속된다.
도 1lc는 후단들(1-1205) 중 적어도 하나의 상세들을 도시한다. 다른 실시예들의 광자 처리 시스템에서와 같이, 광자 처리 시스템(1-1200)은, 위상 민감 또는 위상 비민감 검출기들일 수 있는 검출기들(1-1223)을 포함한다. 그러나, 이 실시예에서, M개의 상이한 검출기들(1-1223)이 있고, 여기서 M은 WDM 광자 처리 시스템(1-1200)에 의해 다중화되는 파장들의 수이다. M개의 검출기들(1-1223) 각각은 1:M WDM(1-1221)으로부터 광을 수신하고, 1:M WDM(1-1221)은 광자 프로세서(1-1201)로부터의 단일 출력 도파관을, 각각이 개개의 파장의 광학 신호를 운반하는 M개의 상이한 도파관들로 분할한다. M개의 검출기들(1-1223) 각각은 측정 결과들을 기록하도록 제어기(도시되지 않음)에 의해 제어될 수 있다. 예를 들어, M개의 검출기들(1223) 각각은 호모다인 검출기 또는 위상 비민감 광검출기일 수 있다.
일부 실시예들에서, 광자 프로세서(1-1201)에서의 VBS들은 관심 있는 M개의 파장 내에서 비분산(non-dispersive)되도록 선택될 수 있다. 그와 같이, 모든 입력 벡터들은 동일한 행렬로 곱해진다. 예를 들어, 지향성 커플러 대신 MMI가 이용될 수 있다. 다른 실시예들에서, VBS들은 관심 있는 M개의 파장 내에서 분산되도록 선택될 수 있다. 신경망 모델의 파라미터들의 확률적 최적화(stochastic optimization)에 관련된 일부 응용들에서, 이것은 파라미터들의 기울기(gradient)를 계산할 때 잡음을 추가하는 것과 동등하고; 증가된 기울기 잡음은 더 빠른 최적화 수렴에 유리할 수 있고, 신경망의 강건성을 개선할 수 있다.
도 1la는 연이은 광자 처리 시스템을 도시하지만, 유사한 WDM 기법들이 폴딩된 광자 프로세서(1-1100)와 관련하여 설명된 기법들을 이용하여 WDM 폴딩된 광자 프로세서를 형성하는데 이용될 수 있다.
H. 출력들의 아날로그 합산
본 발명자들은 시간에 따라 광자 프로세서(1-103)로부터의 출력들의 합 또는 평균을 계산하는 것이 유용한 응용들이 있다는 것을 인식하여 알았다. 예를 들어, 광자 처리 시스템(1-100)이 단일 데이터 포인트에 대한 보다 정확한 행렬-벡터 곱셈을 계산하는데 이용될 때, 계산의 통계적 결과들을 개선하기 위해 광자 프로세서를 통해 단일 데이터 포인트를 다수회 실행하기를 원할 수 있다. 추가적으로 또는 대안적으로, 역전파 기계 학습 알고리즘에서 기울기를 계산할 때, 기울기를 결정하는 단일 데이터 포인트를 원하지 않을 수 있으며, 따라서 다수의 트레이닝 데이터 포인트들이 광자 처리 시스템(1-100)을 통해 실행될 수 있고, 평균 결과는 기울기를 계산하는데 이용될 수 있다. 광자 처리 시스템을 이용하여 일괄처리된 기울기 기반 최적화 알고리즘을 수행할 때, 이러한 평균화는 기울기 추정의 품질을 증가시키고, 그에 따라 고품질 솔루션을 달성하는데 필요한 최적화 단계들의 수를 감소시킬 수 있다.
본 발명자들은 출력들을 디지털 전기 신호들로 변환하기 전에, 출력 신호들이 아날로그 도메인에서 합산될 수 있다는 것을 더 인식하여 알았다. 따라서, 일부 실시예들에서, 저역 통과 필터는 호모다인 검출기들로부터의 출력들을 합산하는데 이용된다. 아날로그 도메인에서 합산을 수행함으로써, 호모다인 전자 장치는 디지털 도메인에서 합산을 수행하기 위해 요구될 더 고가의 고속 ADC(예를 들어, 높은 전력 소비 요건들을 갖는 ADC)보다는 느린 ADC를 이용할 수 있다.
도 1m은 일부 실시예들에 따른, 광학 수신기(1-1300)의 일부분 및 저역 통과 필터(1-1305)가 호모다인 검출기(1-1301)와 함께 어떻게 이용될 수 있는지를 도시한다. 호모다인 검출기(1-1301)는 인입 광학 펄스의 필드 및 위상의 측정을 수행한다. k가 시간에 따른 상이한 입력 펄스들에 대한 라벨이고, 총 K개의 입력들이 있는 경우, k에 대한 합은 저역 통과 필터(1-1305)를 이용하여 아날로그 도메인에서 자동으로 수행될 수 있다. 이 광학 수신기(1-1300)와 도 1i에 도시된 광학 수신기(1-105) 사이의 주된 차이는, 저역 통과 필터가 호모다인 검출기의 출력 이후의 트랜스임피던스 증폭기(1-1303) 이후라는 것이다. (컴포넌트들 yi(k)를 갖는) 총 K개의 신호들이 단일 저속 샘플링 기간(single slow sampling period) Ts (slow) 내에 호모다인 검출기에 도달하는 경우, 저역 통과 필터는 yi (k)의 부호 및 값에 따라 커패시터 C에서의 전하들을 축적/제거할 것이다. 저역 통과 필터의 최종 출력은
Figure pct00009
에 비례하는데, 이는 fs (slow) = 1/Ts (slow) = fs/K의 샘플링 주파수를 갖는 더 느린 ADC(도시되지 않음)로 한번 판독될 수 있고, 여기서 fs는 원래 요구된 샘플링 주파수이다. 이상적인 시스템의 경우, 저역 통과 필터는 3dB 대역폭을 가져야 한다: f3dB = fs (slow)/2. 도 1m의 실시예에 도시된 바와 같은 RC 회로를 이용하는 저역 통과 필터의 경우, f3dB = 1/(2πRC)이고, 원하는 샘플링 주파수: fs (slow)를 획득하기 위해 R 및 C의 값들이 선택될 수 있다.
일부 실시예들에서, 고속 ADC 및 저속 ADC 모두가 존재할 수 있다. 이러한 맥락에서, 고속 ADC는 각각의 개별 아날로그 신호를 수신하여 디지털 신호로 변환하도록 구성되는 ADC(예를 들어, 아날로그 신호가 ADC에 도달하는 주파수와 동일하거나 그보다 큰 샘플링 주파수를 갖는 ADC)이고, 저속 ADC는 다수의 아날로그 신호들을 수신하고, 다수의 수신된 아날로그 신호들의 합 또는 평균을 단일 디지털 신호로 변환하도록 구성되는 ADC(예를 들어, 아날로그 신호가 ADC에 도달하는 주파수보다 작은 샘플링 주파수를 갖는 ADC)이다. 전기 스위치는 호모다인 검출기 및 가능하게는 트랜스임피던스 증폭기로부터, 저속 ADC를 갖는 저역 통과 필터 또는 고속 ADC로 전기 신호를 스위칭하는데 이용될 수 있다. 이러한 방식으로, 일부 실시예들의 광자 처리 시스템은 저속 ADC를 이용하여 아날로그 합산을 수행하는 것과 고속 ADC를 이용하여 모든 광학 신호를 측정하는 것 사이에서 전환할 수 있다.
I. 위상 안정화
본 발명자들은 정확한 결과들을 보장하기 위해 위상 민감 측정들(예를 들어, 호모다인 검출)을 수행하는데 이용된 국부 발진기의 위상을 안정화하는 것이 바람직하다는 것을 인식하여 알았다. 본 명세서에 설명된 실시예들의 광자 프로세서들은 N개의 별개의 공간 모드들 사이에서 광을 간섭함으로써 행렬 연산들을 수행한다. 일부 실시예들에서, 결과들은 호모다인 또는 헤테로다인 검출기들과 같은 위상 민감 검출기들을 이용하여 측정된다. 따라서, 행렬 연산들이 정확하게 수행되는 것을 보장하기 위해, 광자 프로세서의 다양한 부분들에서 부여된 위상은 가능한 한 정확해야 하고, 위상 민감 검출을 수행하는데 이용된 국부 발진기의 위상은 정확하게 알려져야 한다.
본 발명자들은 광자 프로세서의 VBS들의 단일 열 내에서 수행된 것들과 같은 병렬 간섭 동작들이 VBS의 MZI 내의 상대 위상 및 MZI의 출력의 위상 및 상대 위상을 제어하는 위상 변조기들을 이용하여 정확한 위상들을 부여해야 할 뿐만 아니라, 열에서의 각각의 VBS가 광자 프로세서의 모든 공간 모드들에 걸쳐 동일한 전역 위상 시프트를 부여해야 한다는 것을 인식하여 알았다. 본 출원에서, 광자 프로세서에서의 VBS들의 열에 대한 전역 위상 시프트는 "열-전역 위상"이라고 지칭된다. 열-전역 위상은, 도파관을 통한 전파로 인해 부여된 위상들 또는 온도 시프트들로 인한 위상들과 같은, VBS와 연관된 프로그래밍된 위상들과 관련되지 않은 효과들로 인해 부여된 위상이다. 이러한 위상들은 VBS들 상의 열 내에서 정확히 동시에 부여될 필요는 없지만, 해당 열을 횡단한 결과로서 부여될 필요만 있다. 열-전역 위상이 열의 상이한 공간 모드들 사이에서 균일한 것을 보장하는 것이 중요한데, 그 이유는 하나의 열로부터의 출력 광학 신호들이 후속 열에서의 하나 이상의 VBS에서 간섭받을 가능성이 있기 때문이다. 이전 열들에서의 열-전역 위상이 균일하지 않은 경우, 후속 간섭(그리고, 그에 따른 계산 자체의 정확도)이 부정확할 것이다.
도 1n은 광자 처리 시스템(1-1400)에 대한 열-전역 위상들 및 전체 전역 위상을 도시한다. 광자 처리 시스템들의 전술한 실시예들과 유사하게, 광자 처리 시스템(1-1400)은 U-행렬 구현(1-1401), 대각선 행렬 구현(1-1403), V-행렬 구현(1-1405), 및 복수의 검출기들(1-1407a―1-1407d)을 포함한다. 이 구현들은 전술한 제1, 제2 및 제3 행렬 구현들과 유사하다. 간략성을 위해, 광자 처리 시스템(1-1400)의 4개의 모드들만이 도시되어 있지만, 임의의 보다 많은 수의 모드들이 이용될 수 있다는 것을 이해해야 한다. 또한 간략성을 위해, U-행렬 구현(1-1401)과 연관된 VBS들만이 도시된다. 대각선 행렬 구현(1-1403) 및 V-행렬 구현(1-1405)의 컴포넌트들의 배열은 전술한 제3 및 제4 행렬 구현들과 유사하다.
U-행렬 구현(1-1401)은 복수의 VBS들(1-1402)을 포함하지만, 명료성을 위해 단일 VBS(1-1402)만이 라벨링된다. 그러나, VBS들은 어느 광학 모드들이 특정 VBS에 의해 혼합되고 있는지를 식별하는 아래첨자들 및 연관된 열을 라벨링하는 위첨자들로 라벨링된다.
도 1n에 도시된 바와 같이, 각각의 열은 열의 모든 요소에 대해 이상적으로 균일한 열-전역 위상과 연관된다. 예를 들어, U-행렬 구현(1-1401)의 열 1은 열-전역 위상
Figure pct00010
과 연관되고, U-행렬 구현(1-1401)의 열 2는 열-전역 위상
Figure pct00011
와 연관되고, U-행렬 구현(1-1401)의 열 3은 열-전역 위상
Figure pct00012
과 연관되고, U-행렬 구현(1-1401)의 열 4는 열-전역 위상
Figure pct00013
와 연관된다.
일부 실시예들에서, 열-전역 위상들은 푸시-풀 구성(push-pull configuration)에서 각각의 VBS(1-1402)를 MZI로서 구현함으로써 적어도 부분적으로 균일하게 만들어질 수 있다. 대안적으로 또는 추가적으로, 외부 위상 시프터는 MZI들의 내부 위상 요소들(예를 들어, 위상 시프터들)로부터 부여된 임의의 위상 에러를 정정하기 위해 각각의 MZI의 출력에 추가될 수 있다.
본 발명자들은, 조건들이 광자 처리 시스템(1-1400)의 각각의 열이 균일한 열-전역 위상을 제공하도록 하는 것이라도, 신호가 제1 열로부터 마지막 열로 전파할 때 위상들이 축적될 수 있다는 것을 더 인식하여 알았다. 전체 U-행렬 구현(1-1401)과 연관되고, 개개의 열-전역 위상의 합과 동일한 전역 U-행렬 위상 φU가 존재한다. 유사하게, 대각선-행렬 구현(1-1403)은 전역 대각선-행렬 위상 φΣ와 연관되고, V-행렬 구현(1-1405)은 전역 대각선-행렬 위상
Figure pct00014
와 연관된다. 전체 광자 처리 시스템(1-1400)에 대한 전체 전역 위상 φG는 이어서 3개의 개별 전역 행렬 위상들의 합에 의해 주어진다. 이러한 전체 전역 위상은 모든 출력 모드들 사이에서 균일하도록 설정될 수 있지만, 위상 민감 검출을 위해 이용되는 국부 발진기는 광자 프로세서를 통해 전파되지 않았고 이러한 전체 전역 위상을 겪지 않았다. 전체 전역 위상 φG는, 고려되지 않은 경우, 호모다인 검출기들(1-1407a―1-1407d)에 의해 판독된 값들에 에러를 유발할 수 있다.
본 발명자들은, 곱셈 연산에서의 에러들이 도파관의 유효 굴절률 neff를 변화시키는 온도 변화들로부터 초래될 수 있다는 것을 더 인식하였다. 따라서, 일부 실시예들에서, 각각의 열의 온도가 균일하도록 설정되거나, 단일 열의 모든 모드들에 부여된 위상들이 능동적으로 균일하도록 튜닝되게 안정화 회로들이 각각의 열에 배치될 수 있다. 추가적으로, 국부 발진기에 대한 광 신호가 시스템의 상이한 부분을 통해 전파됨에 따라, 시스템의 상이한 부분들 사이의 온도 차이는 위상 민감 측정들에서의 에러들을 야기할 수 있다. 신호와 국부 발진기 사이의 위상 차이의 양은
Figure pct00015
이고, 여기서 Ts 및 TLO는 각각 광자 프로세서의 신호 도파관 및 국부 발진기 도파관의 온도들이고, neff(T)는 온도의 함수로서의 유효 굴절률이며, λ는 광의 평균 파장이고, Ls 및 LLO는 각각 광자 프로세서에서의 신호 도파관 및 국부 발진기 도파관을 통한 전파 길이들이다. 온도의 차이 ΔT = TLO - TS가 작다고 가정하면, 유효 굴절률은
Figure pct00016
로서 다시 기재될 수 있다. 따라서, 신호와 LO 사이의 위상 차이는
Figure pct00017
에 의해 잘 근사화될 수 있으며, 이는 더 긴 전파 길이 L에 따라 선형적으로 증가한다. 따라서, 충분히 긴 전파 거리에 대해, 온도의 작은 변화는 큰 위상 시프트(1 라디안 정도)를 유발할 수 있다. 중요하게, LS의 값들은 LLO의 값과 동일할 필요가 없고, 이들 둘 사이의 최대 차이는 광원 Lcoh의 코히런스 길이(coherence length)에 의해 결정된다. Δν의 대역폭을 갖는 광원의 경우, 코히런스 길이는
Figure pct00018
에 의해 잘 근사화될 수 있으며, 여기서 ceff는 송신 매질에서의 광속이다. LS와 LLO 사이의 길이 차이가 Lcoh보다 훨씬 짧은 한, 신호와 국부 발진기 사이의 간섭이 광자 처리 시스템의 정확한 동작을 위해 가능할 것이다.
전술한 바에 기초하여, 본 발명자들은 일부 실시예들에서 호모다인 검출을 위해 이용된 국부 발진기와 광자 프로세서의 출력 신호들 사이의 가능한 위상 에러들의 적어도 2개의 소스들을 식별하였다. 따라서, 이상적인 호모다인 검출기가 2개의 광검출기들의 출력들을 감산함으로써 신호 출력의 크기 및 위상을 측정하여,
Figure pct00019
의 위상 민감 강도 출력 측정치를 얻는 경우, 여기서 Es는 광자 프로세서의 출력으로부터의 광학 신호의 전기장 크기이고, ELO는 국부 발진기의 전기장 크기이고, θs는 측정하고자 하는 광자 프로세서에 의해 부여된 위상 시프트이고, φG는 전체 전역 위상이고, φT는 국부 발진기와 광학 신호 사이의 온도 차이들에 의해 야기된 위상 시프트이다. 결과적으로, 전체 전역 위상, 및 온도 차이들로 인한 위상 시프트가 고려되지 않으면, 호모다인 검출의 결과가 잘못될 수 있다. 따라서, 일부 실시예들에서, 전체 시스템 위상 에러 ΔΦ = φG + φT가 측정되고, 시스템은 그 측정에 기초하여 교정된다. 일부 실시예들에서, 전체 시스템 위상 에러는 반드시 알려지거나 식별되지는 않는 다른 에러 소스들로부터의 기여들을 포함한다.
일부 실시예들에 따르면, 호모다인 검출기들은 미리 계산된 테스트 신호들을 검출기들에 전송하고, 미리 계산된 테스트 신호들과 측정된 테스트 신호들 사이의 차이를 이용하여 시스템에서의 전체 시스템 위상 에러를 정정함으로써 교정될 수 있다.
일부 실시예들에서, 전체 전역 위상 φG, 및 온도 차이들에 의해 야기된 위상 시프트 φT를 광자 프로세서를 통해 전파하는 광학 신호들에 관련되는 것으로 간주하기보다는, 이들은 전체 시스템 위상 에러 -ΔΦ를 갖는 LO를 제외한 어떠한 위상 시프트도 축적하지 않는 신호로서 설명될 수 있다. 도 1o는 그러한 상황에서 호모다인 측정들의 결과들에 대한 영향을 도시한다. 신호 [x, p]T의 직교 값들의 원래의(정확한) 벡터는 [x', p']T의 부정확한 직교 값들을 생성하는 Δφ에 의해 파라미터화된 회전 행렬만큼 회전된다.
전체 시스템 에러로 인한 사분면에서의 회전에 기초하여, 일부 실시예들에서, ΔΦ의 값은 다음과 같이 획득된다. 먼저, 예를 들어, 제어기(1-107)를 이용하여, 벡터
Figure pct00020
이 선택된다(예를 들어, 랜덤 벡터). 벡터는 광자 처리 시스템의 광학 인코더들에 의해 준비될 수 있는 타입이다. 둘째,
Figure pct00021
의 출력 값이, 예를 들어, 제어기(1-107) 또는 일부 다른 컴퓨팅 디바이스를 이용하여 계산되는데, 여기서 M은 ΔΦ가 축적된 고려되지 않은 위상이 없다고 가정하는 이상적인 경우에 광자 프로세서에 의해 구현된 행렬이다. 그 결과,
Figure pct00022
의 각각의 요소는 xk + ipk에 대응하고, 여기서 k는 광자 프로세서의 출력 모드들 각각을 라벨링한다.
일부 실시예들에서, 이론적인 예측 xk + ipk를 계산할 때, 광자 프로세서를 통해 랜덤 벡터를 전파할 때의 손실이 고려될 수 있다. 예를 들어, 송신 효율 η을 갖는 광자 프로세서의 경우, xk + ipk의 필드 신호는
Figure pct00023
가 될 것이다.
다음, 랜덤 벡터
Figure pct00024
은 실제 시스템의 광학 인코더에 의해 준비되고, 광자 프로세서를 통해 전파되며, 출력 벡터의 각각의 요소는 두 사분면들에서 측정되어 xk' + ipk'을 획득한다. 국부 발진기와 출력 모드 k의 신호 사이의 위상 차이 △φk
Figure pct00025
에 의해 주어진다. (일반적으로, 모드 k에 대한 검출기로의 LO의 경로 길이가 모드 l에 대한 것과 상이할 수 있으므로, k≠l에 대해 위상 차이 △φk≠△φl이다.)
마지막으로, 호모다인 검출기의 측정 사분면을 선택하는데 이용된 국부 발진기 위상 시프터는 θLO,k = △φk를 부여하도록 제어된다. 결과적으로, 축들(x, p)은 도 1o에 도시된 바와 같이, 축들(x', p')과 정렬될 것이다. 이 스테이지에서, 두 사분면들이 측정될 때 획득된 측정 결과들이 예측된
Figure pct00026
과 동일하다는 것을 알아보기 위해 벡터
Figure pct00027
을 다시 한번 전파함으로써 정확함을 보장하기 위해 교정이 검사될 수 있다.
일반적으로, 필드 진폭
Figure pct00028
가 가능한 한 큰 경우, △φk의 값은 더 정확하게 결정될 수 있다. 예를 들어, 필드 ES,k가, 예를 들어, 레이저 소스로부터의 코히어런트 신호인 것으로 간주되면, 광학 신호는 이론적으로 코히어런트 상태로서 모델링될 수 있다. 직관적인 도면이 도 1p에 주어지는데, 여기서 신호는 진폭 |ES,k|이고, 잡음은 가우시안 코히어런트 상태의 표준 편차에 의해 주어진다. 모드 k에서의 코히어런트 상태 |αk〉는 소멸 연산자(annihilation operator) αk의 고유 상태, 즉, αkk〉= αkk〉이다. 단일 주파수 ω를 갖는 모드 k의 전기장은
Figure pct00029
에 의해 설명되며, 이는 또한 코히어런트 상태
Figure pct00030
의 고유 상태이다. 동일한 주파수 ω의 국부 발진기를 갖는 호모다인 검출기는 θLO = 0일 때 사분면 측정들
Figure pct00031
를, θLO = π/2일 때
Figure pct00032
를 수행한다. 이상적인 호모다인 검출기는 이들 측정들이
Figure pct00033
Figure pct00034
의 고유 양자 잡음을 갖는다는 것을 알 것이다. 이 잡음은 양자 불확실성과 관련되며, 사분면들 상의 압착(squeezing)에 의해 감소될 수 있다. 각도 △Φk가 결정될 수 있는 정밀도는 이러한 측정들의 SNR(signal-to-noise ratio)에 직접 관련된다. 전체 Nph 광자들을 갖는 코히어런트 상태 신호 ES,k(즉,
Figure pct00035
)의 경우, xk 및 pk 둘다의 SNR은
Figure pct00036
Figure pct00037
에 의해 상부 경계 지어진다. (SNRx의 경계는 θs = 0 또는 π일 때 포화되고, SNRp에 대한 경계는 θs = π/2 또는 3π/2일 때 포화된다.) 따라서, SNR을 증가시키고, △φk의 값들을 더 정확하게 결정하기 위해, 일부 실시예들은 벡터
Figure pct00038
의 몇몇 상이한 선택들(예를 들어, 다수의 상이한 랜덤 벡터들)을 전파할 수 있다. 일부 실시예들에서,
Figure pct00039
의 선택들은 한 번에 k의 하나의 값에 대해 진폭 |ES,k| = Nph를 최대화하도록 선택된다.
예를 들어, 시간에 따른 온도 변동들로 인해, 광자 처리 시스템의 동작 동안 위상 드리프트가 존재할 수 있다. 따라서, 일부 실시예들에서, 전술한 교정 절차는 시스템의 동작 동안 반복적으로 수행될 수 있다. 예를 들어, 일부 실시예들에서, 교정 절차는 위상 드리프트의 자연적인 시간 스케일보다 짧은 시간 스케일에서 정기적으로 수행된다.
본 발명자들은 위상 민감 측정들을 전혀 필요로 하지 않고 부호 있는 행렬 연산들을 수행하는 것이 가능하다는 것을 더 인식하여 알았다. 따라서, 응용들에서, 각각의 출력 모드에서의 각각의 호모다인 검출기는 그 출력 모드에서의 광의 강도를 측정하는 직접 광검출기에 의해 대체될 수 있다. 그러한 시스템에서는 국부 발진기가 없기 때문에, 시스템 위상 에러 Δφ는 존재하지 않고 무의미하다. 따라서, 일부 실시예들에 따르면, 호모다인 검출과 같은 위상 민감 측정들은 시스템 위상 에러가 크지 않도록 회피될 수 있다. 예를 들어, 부호 있는 행렬들 및 벡터들, 복소 행렬들 및 벡터들, 및 부호 없는 행렬들을 이용하는 다원(hypercomplex)(사원수(quaternion), 팔원수(octonion), 및 다른 동형(isomorphism)들(예를 들어, 단위 대수(unital algebra)의 요소)) 행렬들 및 벡터들의 행렬 연산들을 계산할 때, 위상 민감 측정들을 요구하지 않는다.
위상 민감 측정들이 어떻게 필요하지 않은지를 예시하기 위해, 부호 있는 행렬 M과 부호 있는 벡터
Figure pct00040
사이의 행렬 곱셈을 수행하는 경우를 고려한다. 부호 있는 출력
Figure pct00041
의 값을 계산하기 위해, 다음의 절차가, 예를 들어, 제어기(1-107)에 의해 수행될 수 있다. 먼저, 행렬 M은 M+ 및 M-로 분할되고, 여기서 M+(M-)는 M의 모든 양의(음의) 엔트리들을 포함하는 행렬이다. 이 경우, M = M+ - M-이다. 둘째, 벡터는 벡터
Figure pct00042
이도록 유사한 방식으로 분할되고, 여기서
Figure pct00043
Figure pct00044
의 모든 양의(음의) 엔트리들을 포함하는 벡터이다. 분할들의 결과로서,
Figure pct00045
이다. 이 최종 수학식의 각각의 항은 광자 처리 시스템에 의해 개별적으로 수행될 수 있는 별개의 연산(
Figure pct00046
Figure pct00047
)에 대응한다. 각각의 연산의 출력은 단일(양의) 부호의 벡터이고, 따라서 호모다인 검출을 필요로 하지 않고 직접 검출 방식을 이용하여 측정될 수 있다. 광검출기 방식은 강도를 측정할 것이지만, 강도의 제곱근이 결정되어, 전기장 진폭을 초래할 수 있다. 일부 실시예들에서, 각각의 연산은 개별적으로 수행되고, 결과들은 모든 개별 연산들이 수행될 때까지 메모리(예를 들어, 제어기(1-107)의 메모리(1-109))에 저장되고, 결과들은 디지털 방식으로 결합되어 곱셈의 최종 결과
Figure pct00048
를 획득할 수 있다.
상기의 방식은 M+ 및 M- 둘다 모든 양의 엔트리들의 행렬이기 때문에 작용한다. 유사하게,
Figure pct00049
Figure pct00050
둘다 모든 양의 엔트리들의 벡터들이다. 따라서, 그들의 곱셈들의 결과들은 조합에 관계없이 모든 양의 엔트리들의 벡터들일 것이다.
본 발명자들은 상기의 분할 기법이 복소수 값 벡터들/행렬들, 사원수 값 벡터들/행렬들, 팔원수 값 벡터들/행렬들, 및 다른 다원 표현들로 확장될 수 있다는 것을 더 인식하여 알았다. 복소수들은 2개의 상이한 기본 단위들 {1,i}을 이용하고, 사원수들은 4개의 상이한 기본 단위들 {1,i,j,k}를 이용하며, 팔원수들은 8개의 기본 단위들 {e0≡1,e1,e2, ..., e7}을 이용한다.
일부 실시예들에서, 복소 벡터는 곱셈을 부호 있는 행렬들 및 벡터들에 대해 전술한 절차와 유사한 개별 연산들로 분할함으로써 위상 민감 검출에 대한 필요성 없이 복소 행렬과 곱셈될 수 있다. 복소수들의 경우, 곱셈은 모든 양의 행렬과 모든 양의 벡터들의 16개의 별개의 곱셈들로 분할된다. 16개의 별개의 곱셈들의 결과들은 그 후 디지털 방식으로 결합되어 출력 벡터 결과를 결정할 수 있다.
일부 실시예들에서, 사원수 값 벡터는 곱셈을 부호 있는 행렬들 및 벡터들에 대해 전술한 절차와 유사한 개별 연산들로 분할함으로써 위상 민감 검출에 대한 필요성 없이 사원수 값 행렬과 곱셈될 수 있다. 사원수 값 수들의 경우, 곱셈은 모든 양의 행렬들과 모든 양의 벡터들의 64개의 개별적인 곱셈으로 분할된다. 64개의 개별 곱셈들의 결과들은 그 후 디지털 방식으로 결합되어 출력 벡터 결과를 결정할 수 있다.
일부 실시예들에서, 팔원수 값 벡터는 곱셈을 부호 있는 행렬들 및 벡터들에 대해 전술한 절차와 유사한 개별 연산들로 분할함으로써 위상 민감 검출에 대한 필요성 없이 팔원수 값 행렬에 의해 곱셈될 수 있다. 팔원수 값의 수들의 경우, 곱셈은 모든 양의 행렬들과 모든 양의 벡터들의 256개의 별개의 곱셈들로 분할된다. 256개의 개별 곱셈들의 결과들은 그 후 디지털 방식으로 결합되어 출력 벡터 결과를 결정할 수 있다.
본 발명자들은 광자 프로세서의 각각의 MZI 옆에 온도 센서를 배치함으로써 온도 의존 위상 φT가 정정될 수 있음을 더 인식하여 알았다. 그 다음, 온도 측정의 결과들은 각각의 MZI의 외부 위상들을 제어하는 피드백 회로에 대한 입력으로서 이용될 수 있다. MZI의 외부 위상들은 모든 MZI에서 축적된 온도 의존적 위상을 소거하도록 설정된다. 유사한 온도 피드백 루프가 국부 발진기 전파 경로 상에서 이용될 수 있다. 이 경우, 온도 측정 결과들은 검출된 온도 효과들로 인해 국부 발진기에 의해 축적된 위상을 소거하기 위해 호모다인 검출기 직교 선택 위상 시프터의 설정들을 통지하는데 이용된다.
일부 실시예들에서, 온도 센서들은 반도체 디바이스들, 예를 들어, p-n 접합 또는 양극성(bipolar) 접합 트랜지스터에서 통상적으로 이용된 것들일 수 있거나, 또는 그것들은, 예를 들어, 그 공진이 온도들에 따라 변하는 공진기들을 이용하는 광자 온도 센서들일 수 있다. 일부 실시예들에서는 열전대들(thermocouples) 또는 서미스터들(thermistors)과 같은 외부 온도 센서들도 이용될 수 있다.
일부 실시예들에서, 축적된 위상들은, 예를 들어, 모든 열에서 일부 광을 탭핑하고, 동일한 전역 국부 발진기로 호모다인 검출을 수행함으로써, 직접 측정될 수 있다. 이러한 위상 측정은 임의의 위상 에러를 정정하기 위해 각각의 MZI에서 이용된 외부 위상들의 값들을 직접 알릴 수 있다. 직접 측정된 위상 에러들의 경우, 에러들은 열-전역으로 보정될 필요가 없다.
J. 대형 데이터에 대한 중개자 계산
본 발명자들은 광자 프로세서(1-103) 및/또는 본 개시내용에서 설명된 다른 실시예들에 따른 임의의 다른 광자 프로세서에 의해 수행된 행렬 벡터 곱이 텐서(다차원 어레이) 연산들로 일반화될 수 있다는 것을 인식하여 알았다. 예를 들어,
Figure pct00051
의 코어 연산(여기서, M은 행렬이고,
Figure pct00052
는 벡터임)은 행렬-행렬 곱(matrix-matrix product) MX로 일반화될 수 있고, 여기서 M 및 X는 둘다 행렬들이다. 이러한 특정의 예에서, n×m 행렬 X를, 각각이 n개의 요소들로 이루어진 m개의 열 벡터들의 집합, 즉,
Figure pct00053
이라고 고려한다. 광자 프로세서는 총 m개의 행렬-벡터 곱들로 한번에 행렬-행렬 곱 MX 하나의 열 벡터를 완료할 수 있다. 계산은, 계산이 완벽하게 병렬화될 수 있는 선형 연산이기 때문에, 예를 들어, 임의의 하나의 행렬-벡터 곱 출력이 다른 행렬-벡터 곱들의 결과들에 의존하지 않기 때문에, 다수의 광자 프로세서들 사이에서 분산될 수 있다. 대안적으로, 계산은 단일 광자 프로세서에 의해 시간에 걸쳐 직렬로, 예를 들어, 각각의 행렬-벡터 곱을 한 번에 하나씩 수행하고, (예를 들어, 결과들을 적절한 메모리 구성에 저장함으로써) 행렬-행렬 곱의 결과를 결정하기 위해 개별 행렬-벡터 곱셈들 모두를 수행한 후에 결과들을 디지털적으로 결합함으로써 수행될 수 있다.
상기의 개념은 2개의 다차원 텐서들 사이의 곱(예를 들어, 내적)을 계산하는 것으로 일반화될 수 있다. 일반적인 알고리즘은 다음과 같고, 프로세서(1-111)와 같은 프로세서에 의해 적어도 부분적으로 수행될 수 있다: (1) 제1 텐서의 행렬 슬라이스를 취하고; (2) 제2 텐서의 벡터 슬라이스를 취하고; (3) 광자 프로세서를 이용하여, 단계 1에서의 행렬 슬라이스와 단계 2에서의 벡터 슬라이스 사이에서 행렬-벡터 곱을 수행하여 출력 벡터를 생성하고; (4) (단계 1로부터의) 행렬 슬라이스가 획득된 텐서 인덱스들 및 (단계 2로부터의) 벡터 슬라이스가 획득된 텐서 인덱스들에 대해 반복한다. 행렬 슬라이스 및 벡터 슬라이스를 취할 때(단계들 1 및 2), 다수의 인덱스가 하나로 결합될 수 있음에 유의해야 한다. 예를 들어, 행렬은 모든 열들을 단일 열 벡터로 적층함으로써 벡터화될 수 있고, 일반적으로 텐서는 모든 행렬들을 단일 행렬로 적층함으로써 행렬화될 수 있다. 모든 연산들이 완전히 선형이기 때문에, 복수의 광자 프로세서 각각이 다른 광자 프로세서들이 그들의 작업을 완료했는지 알 필요가 없는 경우, 이들은 다시 고도로 병렬화될 수 있다.
비제한적인 예로서, 2개의 3차원 텐서들 사이의 곱셈 Cijlm = ΣkAijkBklm 을 고려한다. 상기의 규정에 기초한 의사코드는 다음과 같다:
(1) 행렬 슬라이스를 취한다:
Figure pct00054
(2) 벡터 슬라이스를 취한다:
Figure pct00055
(3)
Figure pct00056
을 계산한다. 여기서
Figure pct00057
(4) 인덱스들 i, l 및 m에 대해 반복하여 4차원 텐서 Cijlm을 재구성하고, j에 의해 인덱싱된 모든 요소들의 값들은 단일 행렬-벡터 곱셈으로 완전히 결정된다.
본 발명자들은 곱해질 행렬들/벡터들의 크기가 광자 프로세서에 의해 지원된 모드들의 수보다 클 수 있다는 것을 더 인식하여 알았다. 예를 들어, 컨볼루션 신경망 아키텍처(convolutional neural network architecture)에서의 컨볼루션 연산은 필터를 정의하기 위해 몇몇 파라미터들만을 이용할 수 있지만, 필터와 데이터의 상이한 패치들 사이의 다수의 행렬-행렬 곱셈들로 구성될 수 있다. 상이한 행렬-행렬 곱셈들을 결합함으로써, 원래의 필터 행렬 또는 데이터 행렬의 크기보다 큰 2개의 입력 행렬이 얻어진다.
본 발명자들은 곱해질 행렬들이 계산을 수행하기 위해 이용되는 광자 프로세서에 의해 소유되는 모드들의 크기/수보다 클 때 광자 프로세서를 이용하여 행렬 연산들을 수행하는 방법을 고안하였다. 일부 실시예들에서, 방법은 계산 동안 중간 정보를 저장하기 위해 메모리를 이용하는 것을 포함한다. 최종 계산 결과는 중간 정보를 처리함으로써 계산된다. 예를 들면, 도 1q에 도시된 바와 같이, n ≤ I, J, K인 n×n 광자 처리 시스템을 이용하여, I×K 요소들을 갖는 새로운 행렬 C = AB를 제공하기 위해 I×J 행렬 A와 J×K 행렬 B 사이의 곱셈(1-1700)을 고려한다. 도 1q에서, 음영진 요소들은 단순히 행렬 C의 요소(1-1701)가 행렬 A의 행(1-1703)과 행렬 B의 열(1-1705)의 요소들을 이용하여 계산됨을 도시한다. 도 1q 및 1r에 의해 도시된 방법은 다음과 같다:
행렬들 A 및 B 내의 n×n개의 부행렬 블록들을 구성한다. 블록들을 괄호 위첨자 A(ij) 및 B(jk)에 의해 라벨링하며, 여기서 i∈{1,..., ceil(I/n)}, j∈{1,..., ceil(J/n)} 및 k∈{1,..., ceil(K/n)}이다. I, J, 또는 K의 값들이 n에 의해 분할가능하지 않을 때, 새로운 행렬이 n―따라서 i, j, 및 k의 인덱싱에서의 ceil 함수―에 의해 분할될 수 있는 차원을 갖도록 0들로 패딩될 수 있다. 도 1r에 도시된 예시적인 곱셈(1-1800)에서, 행렬 A는 6개의 n×n 부행렬 블록들(1-1803)로 분할되고, 행렬 B는 3개의 n×n 부행렬 블록들(1-1805)로 분할되어, 결과적으로 2개의 n×n 부행렬 블록들(1-1801)로 구성되는 행렬 C가 생성된다.
행렬 C 내의 n×n 부행렬 블록 C(ik)를 계산하기 위해, 예를 들어, 다음에 의해 광자 프로세서에서 곱셈들
Figure pct00058
를 수행한다.
(1) 부행렬 A(ij)(예를 들어, 부행렬들(1-1803) 중 하나)를 구현하기 위해 광자 프로세서를 제어하는 것;
(2) 부행렬들 B(jk) 중 하나(예를 들어, 부행렬들(1-1805) 중 하나)의 열 벡터들로 광학 신호들을 인코딩 및 광자 프로세서를 통해 신호들을 전파하는 것;
(3) 각각의 행렬-벡터 곱셈의 중간 결과들을 메모리에 저장하는 것;
(4) j의 값들에 대해 반복하고, 단계들 (a)-(c)를 반복하는 것; 및
(5) 중간 결과들을 디지털 전자 장치, 예를 들어, 프로세서와 결합함으로써 최종 부행렬 C(ik)(예를 들어, 부행렬들(1-1801) 중 하나)를 계산하는 것.
위에서 설명되고 도 1q 및 도 1r에 도시된 바와 같이, 본 방법은 괄호 인덱스 표기법을 이용하여 행렬 곱셈을 표현하는 것 및 본 개시내용에서의 행렬 요소들을 기술하는데 이용되는 아래첨자 인덱스들 대신에 괄호 위첨자 인덱스를 이용하여 행렬-행렬 곱셈의 연산을 수행하는 것을 포함할 수 있다. 이들 괄호 위첨자 인덱스들은 부행렬의 n×n 블록에 대응한다. 일부 실시예들에서, 방법은 다차원 어레이들을 n×n 부행렬 블록 슬라이스들로 분해함으로써, 예를 들어, 이 방법을 전술한 텐서-텐서 곱셈과 결합함으로써, 텐서-텐서 곱셈들로 일반화될 수 있다.
일부 실시예들에서, 더 적은 수의 모드들을 갖는 광자 프로세서를 이용하여 부행렬들의 블록들을 처리하는 것의 이점은, 그것이 곱해지는 행렬들의 형상에 관하여 다양성을 제공한다는 것이다. 예를 들어, I >> J인 경우, 특이값 분해들을 수행하는 것은 크기 I2의 제1 단위 행렬, 크기 J2의 제2 단위 행렬, 및 J개의 파라미터들을 갖는 대각선 행렬을 생성할 것이다. 원래 행렬의 요소들의 수보다 훨씬 큰 I2 행렬 요소들을 저장 또는 처리하는 하드웨어 요건들은 광자 프로세서의 일부 실시예들에 포함된 광학 모드들의 수에 대해 너무 클 수 있다. 전체 행렬이 아닌 부행렬들을 동시에 처리함으로써, 광자 프로세서의 모드들의 수에 기초하여 제한들을 부과하지 않고 임의의 크기의 행렬들이 곱해질 수 있다.
일부 실시예들에서, B의 부행렬들은 추가로 벡터화된다. 예를 들어, 행렬 A는
Figure pct00059
행렬로 먼저 패딩되고, 그 후 부행렬들의
Figure pct00060
격자(각각 크기 [n×n])로 분할되고, A(ij)는 이 격자의 i번째 행 및 j번째 열에서의 [n×n] 부행렬이고, B는 먼저
Figure pct00061
행렬로 패딩되고, 그 후 부행렬들의
Figure pct00062
격자(각각 크기 [n×K])로 분할되고, B(j)는 이 격자의 j번째 행의 [n×K] 부행렬이고, C는 먼저
Figure pct00063
행렬로 패딩되고, 그 후 부행렬들의
Figure pct00064
격자(각각 크기 [n×K])로 분할되고, C(i)는 이 격자의 i번째 행에서의 [n×K] 부행렬이다. 이 벡터화된 형태에서, 계산은 다음과 같이 표시된다:
Figure pct00065
.
상기의 벡터화 프로세스를 이용함으로써, 광자 프로세서는 (
Figure pct00066
) 상이한 행렬들을 광자 어레이로 로딩하고, 각각의 로딩된 행렬에 대해, 광자 어레이를 통해 K개의 상이한 벡터들을 전파함으로써 임의의 GEMM을 계산할 수 있다. 이것은 (각각 n개의 요소들로 구성된)
Figure pct00067
출력 벡터들을 산출하며, 이들의 서브세트는 상기의 식에 의해 정의된 바와 같이, 원하는 [J×K] 출력 행렬을 산출하도록 함께 가산될 수 있다.
K. 계산의 정밀도
본 발명자들은, 광자 프로세서(1-103), 및/또는 본 개시내용에 설명된 다른 실시예들에 따른 임의의 다른 광자 프로세서는 아날로그 컴퓨터의 사례이고, 이러한 정보화 시대에서의 대부분의 데이터가 디지털 표현으로 저장되기 때문에, 광자 프로세서에 의해 수행된 계산의 디지털 정밀도는 정량화하는데 있어서 중요하다는 것을 인식하여 알았다. 일부 실시예들에서, 일부 실시예들에 따른 광자 프로세서는 행렬-벡터 곱:
Figure pct00068
를 수행하고, 여기서
Figure pct00069
는 입력 벡터이고, M은 n×n 행렬이고,
Figure pct00070
는 출력 벡터이다. 인덱스 표기에서, 이 곱셈은 Mij의 n개의 요소들(j에 걸쳐 반복됨)와 xj의 n개의 요소들(j에 걸쳐 반복됨) 사이의 곱셈인
Figure pct00071
로서 기재되고, 그 후 결과들을 완전히 합산한다. 광자 프로세서는 물리적 아날로그 시스템이므로, 일부 실시예들에서, 요소들 Mij 및 xj는 고정 소수점 수 표현(fixed point number representation)으로 표현된다. 이 표현 내에서,
Figure pct00072
이 m1-비트 수이고,
Figure pct00073
가 m2-비트 수인 경우, 전체 m1 + m2 + log2(n) 비트들이 결과적인 벡터 요소 yi를 완전히 나타내기 위해 이용된다. 일반적으로, 행렬-벡터 곱의 결과를 표현하는데 이용된 비트들의 수는 연산의 입력들을 표현하는데 필요한 비트들의 수보다 크다. 이용된 ADC가 출력 벡터를 최대 정밀도로 판독할 수 없는 경우, 출력 벡터 요소들은 ADC의 정밀도로 반올림(rounding)될 수 있다.
본 발명자들은 광학 신호들의 형태의 입력 벡터들이 광자 처리 시스템을 통해 전송되는 레이트에 대응하는 대역폭들에서 높은 비트-정밀도로 ADC를 구성하는 것이 달성되기 어려울 수 있다는 것을 인식하여 알았다. 따라서, 일부 실시예들에서, ADC의 비트 정밀도는 (완전히 정확한 계산이 요구되는 경우) 행렬 요소들 Mij 및 벡터 요소 xj가 표현되는 비트 정밀도를 제한할 수 있다. 따라서, 본 발명자들은 부분적 곱들 및 합들을 계산함으로써 임의로 높을 수 있는 출력 벡터를 그의 최대 정밀도로 획득하는 방법을 고안하였다. 명료성을 위해, Mij 또는 xj를 표현하는데 필요한 비트들의 수가 동일, 즉, m1 = m2 = m이라고 가정할 것이다. 그러나, 이러한 가정은 일반적으로 배제될 수 있으며, 본 개시내용의 실시예들의 범위를 제한하지 않는다.
일부 실시예들에 따른 방법은, 제1 동작으로서, 행렬 요소 Mij 및 벡터 요소 xj의 비트 스트링 표현을 d개의 분할들로 분할하는 것을 포함하고, 각각의 분할은 k = m/d 비트들을 포함한다. (k가 정수가 아닌 경우, m이 d로 분할될 때까지 0들이 첨부될 수 있다.) 그 결과, 행렬 요소 Mij = Mij [0]2k(d-1) + Mij [1]2k(d-2) +...+ Mij [d-1]20이고, 여기서 Mij [a]는 Mij의 a번째 최상위 k 비트 스트링의 k 비트 값이다. 비트 스트링의 관점에서, Mij = Mij [0]Mij [1] ... Mij [d-1]로 기재한다. 유사하게, xj = xj [0]2k(d-1) + xj [1]2k(d-2) +...+ xj [d-1]20을 또한 획득할 수 있고, 여기서 벡터 요소 xj = xj [0]xj [1]...xj [d-1]은 그의 비트 스트링의 관점에 의한 것이다. 곱셈 yi = ΣjMijxj는 이러한 분할들의 관점에서 다음과 같이 분해될 수 있다:
Figure pct00074
. 여기서, 세트 Sp는 a와 b의 모든 정수 값들의 세트이고, 여기서 a + b = p이다.
방법은, 제2 동작으로서, 행렬 Mij [a]를 구현하도록 광자 프로세서를 제어하는 것 및 인코딩된 광학 신호들의 형태로 광자 프로세서를 통해 입력 벡터 xj [b]를 전파하는 것을 포함하며, 입력 벡터 xj [b] 각각은 단지 k 비트 정밀도이다. 이 행렬-벡터 곱 연산은 yi [a,b] = ΣjMij [a]xj [b]를 수행한다. 방법은 정확히 최대 2k + log2(n) 비트들인 출력 벡터 yi [a,b]를 저장하는 것을 포함한다.
방법은 세트 Sp 내의 a, b의 상이한 값들에 대해 반복하는 것, a, b의 상이한 값들 각각에 대해 제2 동작을 반복하는 것 및 중간 결과들 yi [a,b]를 저장하는 것을 더 포함한다.
제3 동작으로서, 방법은 프로세서와 같은 디지털 전자 장치를 이용하여 a와 b의 상이한 반복들을 통해 합산함으로써 최종 결과
Figure pct00075
를 계산하는 것을 포함한다.
이 방법의 일부 실시예들에 따른 완전히 정확한 계산을 포착하는데 이용되는 ADC의 정밀도는 단지 2k + log2(n) 비트들이며, 이는 계산이 단일 패스만을 이용하여 행해지는 경우에 필요한 정밀도의 2m + log2(n) 비트들보다 작다.
본 발명자들은 전술한 방법의 실시예들이 텐서들에 대해 동작하도록 일반화될 수 있다는 것을 더 인식하여 알았다. 전술한 바와 같이, 광자 처리 시스템은 2개의 텐서들의 행렬 슬라이스들 및 벡터 슬라이스들을 이용하여 텐서-텐서 곱셈들을 수행할 수 있다. 전술한 방법이 출력 텐서의 출력 벡터 슬라이스를 최대 정밀도로 획득하기 위해 행렬 슬라이스들 및 벡터 슬라이스들에 적용될 수 있다.
상기의 방법의 일부 실시예들은 행렬의 기본 표현의 선형성을 이용한다. 상기의 설명에서, 행렬은 그의 유클리드 행렬 공간(Euclidean matrix space)의 관점에서 표현되고, 행렬-벡터 곱셈은 이 유클리드 공간에서 선형이다. 일부 실시예들에서, 행렬은 VBS들의 위상들의 관점에서 표현되고, 따라서 행렬 요소들 대신에 위상들을 표현하는 비트 스트링들에 대해 분할들이 직접 수행될 수 있다. 일부 실시예들에서, 행렬 요소들에 대한 위상들 사이의 맵이 선형 맵일 때, 입력 파라미터들―이 경우에 VBS들 및 입력 벡터 요소들의 위상들―과 출력 벡터 사이의 관계는 선형이다. 이러한 관계가 선형일 때, 전술한 방법은 여전히 적용가능하다. 그러나, 일반적으로, 일부 실시예들에 따르면, 행렬의 기본 표현으로부터 광자 표현으로의 비선형 맵이 고려될 수 있다. 예를 들어, 그들의 최상위 k-비트 스트링으로부터 최하위 k-비트 스트링으로의 유클리드 공간 행렬 요소들의 비트 스트링 분할은, 위상 표현으로 분해되고 광자 프로세서를 이용하여 구현하는 일련의 상이한 행렬들을 생성하는데 이용될 수 있다.
분할들은 행렬 요소들 및 입력 벡터 요소들 둘다에 대해 동시에 수행될 필요는 없다. 일부 실시예들에서, 광자 프로세서는 동일한 행렬들에 대해 많은 입력 벡터들을 전파할 수 있다. 벡터 준비들에 대한 DAC들은 높은 대역폭에서 동작할 수 있는 반면, VBS들에 대한 DAC들은 다수의 벡터들에 대해 준-정적(quasi-static)일 수 있기 때문에, 입력 벡터들에 대해서만 분할들을 수행하고 VBS 제어들을 설정된 정밀도(예를 들어, 최대 정밀도)로 유지하는 것이 효율적일 수 있다. 일반적으로, 더 높은 대역폭에서 높은 비트 정밀도를 갖는 DAC를 포함하는 것은 더 낮은 대역폭에서 그것을 설계하는 것보다 더 어렵다. 따라서, 일부 실시예들에서, 출력 벡터 요소들은 ADC에 의해 허용되는 것보다 더 정밀할 수 있지만, ADC는 ADC에 의해 허용된 비트 정밀도까지 출력 벡터 값의 일부 반올림을 자동으로 수행할 것이다.
L. 제조 방법
광자 처리 시스템의 실시예들은 종래의 반도체 제조 기법들을 이용하여 제조될 수 있다. 예를 들어, 도파관들 및 위상 시프터들은 종래의 퇴적, 마스킹, 에칭, 및 도핑 기법들을 이용하여 기판에 형성될 수 있다.
도 1s는 일부 실시예들에 따른, 광자 처리 시스템을 제조하는 예시적인 방법(1-1900)을 도시한다. 동작(1-1901)에서, 방법(1-1900)은, 예를 들어, 종래의 기법들을 이용하여 광학 인코더를 형성하는 것을 포함한다. 예를 들어, 복수의 도파관들 및 변조기들이 반도체 기판에 형성될 수 있다. 광학 인코더는 본 출원의 다른 곳에서 설명된 바와 같이 하나 이상의 위상 및/또는 진폭 변조기를 포함할 수 있다.
동작(1-1903)에서, 방법(1-1900)은 광자 프로세서를 형성하는 것 및 광자 프로세서를 광학 인코더에 광학적으로 접속하는 것을 포함한다. 일부 실시예들에서, 광자 프로세서는 광학 인코더와 동일한 기판에 형성되고, 광학 접속들은 기판에 형성된 도파관들을 이용하여 이루어진다. 다른 실시예들에서, 광자 프로세서는 광학 인코더의 기판과 별개의 기판에 형성되고, 광학 접속은 광섬유를 이용하여 이루어진다.
동작(1-1905)에서, 방법(1-1900)은 광학 수신기를 형성하는 것 및 광학 수신기를 광자 프로세서에 광학적으로 접속하는 것을 포함한다. 일부 실시예들에서, 광학 수신기는 광자 프로세서와 동일한 기판에 형성되고, 광학 접속들은 기판에 형성된 도파관들을 이용하여 이루어진다. 다른 실시예들에서, 광학 수신기는 광자 프로세서의 기판으로부터 분리된 기판에 형성되고, 광학 접속은 광섬유를 이용하여 이루어진다.
도 1t는 도 1s의 동작(1-1903)에 도시된 바와 같이, 광자 프로세서를 형성하는 예시적인 방법(1-2000)을 도시한다. 동작(1-2001)에서, 방법(1-2000)은, 예를 들어, 반도체 기판에 제1 광학 행렬 구현을 형성하는 것을 포함한다. 제1 광학 행렬 구현은, 상기의 다양한 실시예들에서 설명된 바와 같이, 상호접속된 VBS들의 어레이를 포함할 수 있다.
동작(1-2003)에서, 방법(1-2000)은 제2 광학 행렬 구현을 형성하는 것 및 제2 광학 행렬 구현을 제1 광학 행렬 구현에 접속하는 것을 포함한다. 제2 광학 행렬 구현은, 상기의 다양한 실시예들에서 설명된 바와 같이, 제1 광학 행렬 구현으로부터 수신된 각각의 광학 신호의 강도 및 위상을 제어할 수 있는 하나 이상의 광학 컴포넌트를 포함할 수 있다. 제1 및 제2 광학 행렬 구현 사이의 접속들은 기판에 형성된 도파관들을 포함할 수 있다.
동작(1-2005)에서, 방법(1-2000)은 제3 광학 행렬 구현을 형성하는 것 및 제3 광학 행렬 구현을 제2 광학 행렬 구현에 접속하는 것을 포함한다. 제3 광학 행렬 구현은, 상기의 다양한 실시예들에서 설명된 바와 같이, 상호접속된 VBS들의 어레이를 포함할 수 있다. 제2 및 제3 광학 행렬 구현 사이의 접속들은 기판에 형성된 도파관들을 포함할 수 있다.
상기의 동작들 중 임의의 것에서, 광자 프로세서의 컴포넌트들은 반도체 기판의 동일한 층에 또는 반도체 기판의 상이한 층들에 형성될 수 있다.
M. 이용 방법
도 1u는 일부 실시예들에 따른, 광학 처리를 수행하는 방법(1-2100)을 도시한다. 동작(1-2101)에서, 방법(1-2100)은 비트 스트링을 광학 신호들로 인코딩하는 것을 포함한다. 일부 실시예들에서, 이것은 본 출원의 다양한 실시예들과 관련하여 설명된 바와 같이, 제어기 및 광학 인코더를 이용하여 수행될 수 있다. 예를 들어, 복소수가 광학 신호의 강도 및 위상으로 인코딩될 수 있다.
동작(1-2103)에서, 방법(1-2100)은 제1 행렬을 구현하도록 광자 프로세서를 제어하는 것을 포함한다. 전술한 바와 같이, 이것은 제어기가 행렬에 SVD를 수행하고, 행렬을 광자 프로세서의 개별 부분들을 이용하여 구현되는 3개의 개별 행렬 컴포넌트들로 분해함으로써 달성될 수 있다. 광자 프로세서는 광학 신호들이 광자 프로세서를 통해 전파될 때 광학 신호들을 코히어런트하게 간섭하기 위해 광자 프로세서의 다양한 모드들이 어떻게 함께 혼합되는지를 제어하는 복수의 상호접속된 VBS들을 포함할 수 있다.
동작(1-2105)에서, 방법(1-2100)은, 전술한 바와 같이, 광학 신호들이 원하는 행렬을 구현하는 방식으로 서로 코히어런트하게 간섭하도록, 광학 프로세서를 통해 광학 신호들을 전파하는 것을 포함한다.
동작(1-2107)에서, 방법(1-2100)은 광학 수신기를 이용하여 광자 프로세서로부터의 출력 광학 신호들을 검출하는 것을 포함한다. 위에서 논의된 바와 같이, 검출은 위상 민감 또는 위상 비민감 검출기들을 이용할 수 있다. 일부 실시예들에서, 검출 결과들은 시스템을 통해 인코딩되고 전파될 새로운 입력 비트 스트링을 결정하는데 이용된다. 이러한 방식으로, 다수의 계산들이 직렬로 수행될 수 있고, 여기서 적어도 하나의 계산은 이전 계산 결과의 결과들에 기초한다.
II. 트레이닝 알고리즘
본 발명자들은 많은 행렬-기반 미분가능 프로그램(matrix-based differentiable program)(예를 들어, 신경망 또는 잠재 변수 그래픽 모델(latent-variable graphical model)) 기법들에 대해, 계산 복잡도의 대부분이 모델의 계층들이 순회될 때 계산되는 행렬-행렬 곱들에 있다는 것을 인식하여 알았다. 행렬-행렬 곱의 복잡도는 O(IJK)이고, 여기서 2개의 행렬들은 차원 I×J 및 J×K를 갖는다. 더욱이, 이들 행렬-행렬 곱들은 모델의 트레이닝 스테이지 및 평가 스테이지 모두에서 수행된다.
심층 신경망(즉, 둘 이상의 은닉 층(hidden layer)을 갖는 신경망)은 본 명세서에 설명된 기술들 중 일부를 이용할 수 있는 행렬 기반 미분가능 프로그램의 타입의 예이다. 그러나, 병렬 처리를 수행하기 위한 본 명세서에 설명된 기법들은, 제한적인 것은 아니지만, 베이지안 네트워크(Bayesian network)들, 트렐리스 디코더(Trellis decoder)들, 토픽 모델(topic model)들, 및 HMM(Hiddn Markov Model)들을 비롯한, 다른 타입들의 행렬 기반 미분가능 프로그램들과 함께 이용될 수 있다는 것을 이해해야 한다.
심층 학습의 성공은 대부분 신경망의 가중 행렬들의 트레이닝을 허용하는 역전파 기술들의 개발로 인한 것이다. 종래의 역전파 기술들에서는, 손실 함수(loss function)로부터의 에러가 미적분학(calculus)의 체인 규칙을 이용하여 개별 가중 행렬 컴포넌트들을 통해 역방향으로 전파된다. 역전파 기술들은 가중 행렬에서의 요소들의 기울기들을 계산하고, 이 기울기들은 이어서 SGD(stochastic gradient descent), AdaGrad, RMSProp, Adam, 또는 임의의 다른 기울기 기반 최적화 알고리즘과 같은 최적화 알고리즘을 이용하여 가중 행렬에 대한 업데이트를 결정하는데 이용된다. 이 절차의 연속적인 적용은 손실 함수를 최소화하는 최종 가중 행렬을 결정하는데 이용된다.
본 발명자들은 본 명세서에 설명된 타입의 광학 프로세서가 가중 행렬을, 본 명세서에서 "위상 공간" 또는 "각도 표현"이라고 지칭되는, 대안의 파라미터 공간으로 리캐스팅(recasting)함으로써, 기울기 계산의 수행을 가능하게 한다는 것을 인식하여 알았다. 구체적으로, 일부 실시예들에서, 가중 행렬은 기븐스 회전 행렬들과 같은 단위 전달 행렬들의 구성(composition)으로서 재파라미터화된다. 그러한 재파라미터화에서, 신경망을 트레이닝하는 것은 단위 전달 행렬들의 각도 파라미터들을 조정하는 것을 포함한다. 이러한 재파라미터화에서, 단일 회전 각도의 기울기는 다른 회전들로부터 분리되어, 기울기들의 병렬 계산을 허용한다. 이러한 병렬화는 필요한 계산 단계들의 수의 관점에서 종래의 직렬 기울기 결정 기술들에 비해 계산 속도를 증가시킨다.
본 명세서에 설명된 역전파 기술들을 구현하는데 이용될 수 있는 예시적인 광자 처리 시스템이 위에서 제공되어 있다. 재파라미터화된 가중 행렬의 위상 공간 파라미터들은 가중 행렬을 구현하기 위해 광자 처리 시스템의 위상 시프터들(phase shifters) 또는 가변 빔 스플리터들로 인코딩될 수 있다. 가중 행렬을 위상 시프터들 또는 가변 빔 스플리터들로 인코딩하는 것은 신경망의 트레이닝 및 평가 스테이지들 둘다를 위해 이용될 수 있다. 역전파 절차가 아래에 설명된 특정 시스템과 관련하여 설명되지만, 실시예들은 본 개시내용에서 설명된 광자 처리 시스템의 특정 세부사항들로 제한되지 않는다는 것을 이해해야 한다.
전술한 바와 같이, 일부 실시예들에서, 광자 처리 시스템(100)은 역전파 기술을 이용하여 트레이닝될 수 있는 신경망 또는 다른 행렬 기반 미분가능 프로그램의 양태들을 구현하는데 이용될 수 있다.
미분가능 프로그램(예를 들어, 신경망 또는 잠재 변수 그래픽 모델)에 대한 유클리드 벡터 공간에서 값들의 행렬(예를 들어, 신경망의 계층에 대한 가중 행렬)을 업데이트하기 위한 예시적인 역전파 기술(2-100)이 도 2a에 도시되어 있다.
동작(2-101)에서, 유클리드 벡터 공간에서의 값들의 행렬(예를 들어, 신경망의 계층에 대한 가중 행렬)은, 예를 들어, 값들의 행렬을 나타내도록 광자 처리 시스템(100)의 컴포넌트들을 구성하는 것에 의해 각도 표현으로서 표현될 수 있다. 행렬이 각도 표현으로 표현된 후에, 프로세스(2-100)는 동작(2-102)으로 진행하고, 여기서 트레이닝 데이터(예를 들어, 입력 트레이닝 벡터들 및 연관된 라벨링된 출력들의 세트)는 모델의 성능 척도를 평가함으로써 에러 벡터를 계산하기 위해 처리된다. 프로세스(2-100)는 이어서 동작(2-103)으로 진행하고, 여기서 역전파에 필요한 각도 표현의 파라미터들의 적어도 일부 기울기들이 병렬로 결정된다. 예를 들어, 아래에 더 상세히 논의되는 바와 같이, 본 명세서에 설명된 기술들은 파라미터들의 전체 열에 대한 기울기들이 동시에 결정될 수 있게 하여, 각각의 각도 회전에 관한 기울기를 개별적으로 평가하는 것과 비교하여 역전파를 수행하는데 필요한 시간량을 상당히 가속시킨다. 프로세스(2-100)는 이어서 동작(2-104)으로 진행하며, 여기서 유클리드 벡터 공간에서의 값들의 행렬(예를 들어, 신경망의 계층에 대한 가중 행렬 값들)이 결정된 기울기들을 이용하여 각도 표현을 업데이트하는 것에 의해 업데이트된다. 도 2a의 프로세스(2-100)에 도시된 동작들 각각에 대한 추가 설명이 아래에 제공된다.
도 2b는 일부 실시예들에 따른, 도 2a에 도시된 동작(2-101)이 어떻게 수행될 수 있는지의 흐름도를 도시한다. 동작(2-201)에서, 제어기(예를 들어, 제어기(107))는 신경망의 계층에 대한 가중 행렬을 수신할 수 있다. 동작(2-202)에서, 가중 행렬 W가 다음과 같이 정의되도록, 가중 행렬이 제1 단위 행렬 V, 제2 단위 행렬 U 및 부호 있는 특이값들의 대각선 행렬 Σ로 분해될 수 있다:
W = VTΣU
여기서, U는 m×m 단위 행렬이고, V는 n×n 단위 행렬이고, Σ는 부호 있는 특이값들을 갖는 n×m 대각선 행렬이고, 위첨자 "T"는 행렬의 전치를 나타낸다. 일부 실시예들에서, 가중 행렬 W는 먼저 타일(tile)들로 분할되고, 이들 각각은 그러한 행렬들의 3중 곱으로 분해된다. 가중 행렬 W는 신경망 분야에 알려진 종래의 가중 행렬일 수 있다.
일부 실시예들에서, 위상 공간으로 분해된 가중 행렬은, 랜덤 초기화 절차에 의해 또는 부분적으로 트레이닝된 가중 행렬을 이용함으로써 제공된 것과 같은, 미리 명시된 가중 행렬이다. 역전파 루틴의 초기화를 위해 이용할 부분적으로 명시된 가중 행렬이 없는 경우, 동작(2-202)에서의 분해가 스킵될 수 있고, 대신에, 각도 표현의 파라미터들(예를 들어, 단일 또는 직교 분해의 특이값들 및 파라미터들)이, 예를 들어, 특정 분포로부터 위상 공간 파라미터들을 랜덤하게 샘플링하는 것에 의해 초기화될 수 있다. 다른 실시예들에서, 미리 결정된 초기 세트의 특이값들 및 각도 파라미터들이 이용될 수 있다.
동작(2-203)에서, 2개의 단위 행렬들 U 및 V는 각각 제1 및 제2 세트의 단위 전달 행렬들의 구성들로서 표현될 수 있다. 예를 들어, 행렬들 U 및 V가 직교 행렬들일 때, 이들은 동작(2-203)에서 일련의 실수 값 기븐스 회전 행렬들 또는 하우스홀더 반사기들로 변환될 수 있고, 그 예는 위의 섹션 V에서 설명된다.
동작(2-204)에서, 단위 전달 행렬들을 구현하기 위해 분해된 가중 행렬에 기초하여 포토닉스 기반 프로세서가 구성될 수 있다. 예를 들어, 전술한 바와 같이, 포토닉스 기반 프로세서의 컴포넌트들의 제1 세트는 단위 전달 행렬들의 제1 세트에 기초하여 구성될 수 있고, 포토닉스 기반 프로세서의 컴포넌트들의 제2 세트는 부호 있는 특이값들의 대각선 행렬에 기초하여 구성될 수 있고, 포토닉스 기반 프로세서의 컴포넌트들의 제3 세트는 단위 전달 행렬들의 제2 세트에 기초하여 구성될 수 있다. 본 명세서에 설명된 프로세스들이 포토닉스 기반 프로세서를 이용하여 역전파 기술을 구현하는 것에 관한 것이지만, 역전파 기술이 병렬 처리 능력들을 제공하는 다른 컴퓨팅 아키텍처들을 이용하여 구현될 수 있으며, 실시예들이 이 점에서 제한되지 않는다는 것을 잘 알 것이다.
도 2a에서의 프로세스(2-100)로 돌아가면, 동작(2-102)은, 예를 들어, 전술한 바와 같은 포토닉스 기반 프로세서를 이용하여, 가중 행렬이 각도 표현으로서 표현된 후에 에러 벡터를 계산하기 위해 트레이닝 데이터를 처리하는 것에 관한 것이다. 도 2c는 일부 실시예들에 따른, 동작(2-102)을 수행하기 위한 구현 세부사항들의 흐름도를 도시한다. 본 명세서에 설명된 기술들을 이용하여 트레이닝 데이터를 처리하기 전에, 트레이닝 데이터는 배치들로 분할될 수 있다. 트레이닝 데이터는 임의의 형태를 취할 수 있다. 일부 실시예들에서, 데이터는 일부 종래의 미니-배치 확률적 기울기 하강(SGD) 기술들에 대해 행해진 것과 동일한 방식으로 배치들로 분할될 수 있다. 이 절차를 이용하여 계산된 기울기들은, 제한적인 것은 아니지만, SGD, AdaGrad, Adam, RMSProp, 또는 임의의 다른 기울기 기반 최적화 알고리즘을 포함하는 임의의 최적화 알고리즘에 대해 이용될 수 있다.
도 2c에 도시된 프로세스에서, 트레이닝 데이터의 특정 배치에서의 각 벡터는 광자 프로세서를 통과할 수 있고, 그 벡터에 대해 손실 함수의 값이 계산될 수 있다. 동작(2-301)에서, 트레이닝 데이터의 특정 배치로부터의 입력 트레이닝 벡터가 수신된다. 동작(2-302)에서, 입력 트레이닝 벡터는, 예를 들어, 전술한 바와 같이, 입력 트레이닝 벡터 값들에 대응하는 진폭들 및 위상들을 갖는 광학 펄스들을 이용하여 벡터를 인코딩함으로써, 광자 신호들로 변환된다. 동작(2-303)에서, 입력 트레이닝 벡터에 대응하는 광자 신호들은, 펄스들의 출력 벡터를 생성하기 위해, 전술한 바와 같이, 가중 행렬을 (예를 들어, 구성가능 위상 시프터들 및 빔 스플리터들의 어레이를 이용하여) 구현하도록 구성된, 광자 프로세서(예를 들어, 광자 프로세서(103))에 대한 입력으로서 제공된다. 광자 프로세서로부터 출력된 펄스들의 광학 강도는 디코딩된 출력 벡터를 생성하기 위해 도 1i 및 도 1j와 관련하여 전술한 바와 같이, 예를 들어, 호모다인 검출을 이용하여 검출될 수 있다. 동작(2-304)에서, 입력 트레이닝 벡터에 대해 손실 함수(비용 함수 또는 에러 메트릭으로도 알려짐)의 값이 계산된다. 이어서, 동작들(2-301 내지 2-304)의 프로세스는 특정 배치에서의 모든 입력 트레이닝 벡터들이 처리되고 손실 함수의 대응하는 값이 결정될 때까지 반복된다. 동작(2-305)에서, 총 손실은 각각의 입력 트레이닝 벡터로부터의 이러한 손실들을 집계함으로써 계산되며, 예를 들어, 이 집계는 평균의 형태를 취할 수 있다.
도 2a에서의 프로세스(2-100)로 돌아가면, 동작(2-103)은 각도 표현의 파라미터들에 대한 병렬 기울기들(예를 들어, 광자 프로세서의 컴포넌트들을 기븐스 회전들로서 이용하여 구현된 가중치들의 값들)을 계산하는 것에 관한 것이다. 기울기들은 계산된 에러 벡터들, (예를 들어, 트레이닝 데이터의 배치로부터의) 입력 데이터 벡터들, 및 광자 프로세서를 이용하여 구현된 가중 행렬에 기초하여 계산될 수 있다. 도 2d는 일부 실시예들에 따른, 동작(2-103)을 수행하는 프로세스의 흐름도를 도시한다. 동작(2-401)에서, 분해에서의 기븐스 회전들의 k번째 세트 G(k)(예를 들어, 분해된 행렬의 열―본 명세서에서 "도함수 열(derivative column) k" 라고 지칭됨)에 대해, k번째 세트에서의 각각의 각도에 대한 도함수들을 포함하는 블록 대각선 도함수 행렬이 계산된다. 동작(2-402)에서, 동작(2-102)에서 결정된 에러 벡터와, 도함수 열 k와 출력 사이의 모든 단위 전달 행렬들의 곱이 계산된다(이에 따라, "부분 역방향 패스(partial backward pass)"라고 지칭됨). 동작(2-403)에서, 입력으로부터 시작하여 도함수 열 k까지 이를 포함하는 모든 단위 전달 행렬들과 입력 데이터 벡터의 곱이 계산된다(이에 따라, "부분 순방향 패스(partial forward pass)"라고 지칭됨). 동작(2-404)에서, 동작들(2-402 및 2-403)로부터 출력된 요소들의 연속적인 쌍들 사이의 내적들이 계산되어 도함수 열 k에 대한 기울기들을 결정한다. 요소들의 연속적인 쌍들 사이의 내적들은
Figure pct00076
로서 계산될 수 있고, 여기서 위첨자 k는 광자 요소들의 k번째 열을 나타내고 i, j는 파라미터 θij (k)를 갖는 단위 전달 행렬에 의해 결합되는 i번째 및 j번째 광자 모드를 나타내며, x는 부분 순방향 패스의 출력이고, δ는 부분 역방향 패스의 출력이다. 일부 실시예들에서, 출력들의 연속적인 페어링 전에 오프셋이 적용된다(예를 들어, 출력 쌍들은 (0, 1), (2, 3)이 아니라 (1, 2), (3, 4) 등일 수 있다). 그 다음, 결정된 기울기들은 트레이닝을 위해 이용되고 있는 특정 선택된 최적화 알고리즘(예를 들어, SGD)에 대해 적절하게 이용될 수 있다.
일부 실시예들에 따라 도 1d에 도시된 좌측으로부터 우측으로의 토폴로지를 갖는 광자 프로세서 상에서 역전파 기술을 구현하기 위한 예시적인 의사코드가 아래에 제공된다:
● 중간 전파 결과들 x', δ'에 대한 2개의 리스트들을 초기화한다.
● MZI의 각각의 열에 대해, 마지막 열에서 시작하여 제1 열로 진행한다.
○ 도함수 행렬에 대응하도록 열에서의 각도들을 회전시킨다.
○ 입력 데이터 벡터를 광자 프로세서를 통해 전파한다.
○ 결과를 x'에 저장한다.
○ 현재 열이 투명하게 되도록 만든다.
● 열마다, 전치 행렬을 점진적으로 구축한다. 각각의 새로운 열에 대해:
○ 에러 벡터를 광자 프로세서를 통해 전파한다.
○ 결과를 δ'에 저장한다
● 각각의 x'[i], δ'[i]에 대해
○ 연속적인 쌍들 사이의 내적들을 계산하고, 그 결과는 MZI의 i번째 열의 각도들에 대한 기울기들이다.
일부 실시예들에 따르면, 일부 종래의 역전파 기술들에서 행해지는 바와 같이 기울기 하강을 통해 가중 행렬의 가중치들을 조정하기보다는, 각도 표현의 파라미터들(예를 들어, 행렬 Σ의 특이값들 및 분해된 직교 행렬들 U 및 V의 기븐스 회전 각도들)이 조정된다. 재파라미터화된 공간에서 역전파가 일부 실시예들에 따라 어떻게 동작하는지를 더 설명하기 위해, 이하의 것은 종래의 기술들을 이용하는 신경망의 단일 계층 내에서의 역전파와 본 개시내용의 일부 실시예들에 따른 방법의 비교이다.
손실 함수 E는 특정 작업에 대한 모델의 성능을 측정한다. 일부 종래의 확률적 기울기 하강 알고리즘들에서, 가중 행렬은 시간 t+1에서의 가중 행렬이 시간 t에서의 가중 행렬의 함수로서 정의되고, 가중 행렬의 가중치들에 대한 손실 함수의 도함수가 다음과 같도록 반복적으로 조정된다:
Figure pct00077
여기서 η는 학습 레이트이고, (a, b)는 가중 행렬 W의 a번째 행 및 b번째 열 엔트리를 각각 나타낸다. 이 반복 프로세스가 분해된 가중 행렬을 이용하여 리캐스트(recast)될 때, 가중치들 wab는 행렬 Σ의 특이값들 σi 및 직교 행렬들 U 및 V의 회전 각도들 θij의 함수들이다. 따라서, 역전파 알고리즘의 반복적 조정들은 다음과 같이 된다:
Figure pct00078
그리고
Figure pct00079
특이값들 및 회전 각도들에 대한 반복적인 조정들을 수행하기 위해, 손실 함수의 도함수들이 획득되어야 한다. 이것이 광자 처리 시스템(100)과 같은 시스템에서 어떻게 달성될 수 있는지를 설명하기 전에, 먼저 가중 행렬의 가중치들을 반복적으로 조정하는 것에 기초하여 역전파에 대한 설명이 제공된다. 이 상황에서, 신경망의 단일 계층에 대해 시스템에 의해 측정된 출력 결과는 출력 벡터 yi = f((Wx)i + bi)로서 표현되고, 여기서 W는 가중 행렬이고, x는 계층에 입력된 데이터 벡터이고, b는 바이어스들의 벡터이고, f는 비선형 함수이다. 미적분학의 체인 규칙은 가중 행렬 내의 파라미터들 중 임의의 것에 대한 손실 함수의 기울기를 계산하기 위해 적용된다(표현의 편의상, 정의 zi = (Wx)i+ bi가 이용됨):
Figure pct00080
wab에 대한 z의 도함수를 계산하면 아래와 같다:
Figure pct00081
Figure pct00082
이러한 사실을 이용하여, 손실 함수의 기울기를 나타내는 합은 다음과 같이 기재될 수 있다:
Figure pct00083
제1 합은 에러 벡터 e로서 정의되고, x는 입력 벡터이며, 다음의 표현이 된다:
Figure pct00084
종래의 역전파 기법들로부터의 상기의 수학식들을 이용하여, 수학식들은 특이값 행렬 및 단위 전달 행렬들로 분해된 가중 행렬들의 경우로 확장될 수 있다. 가중 행렬이 회전 각도들의 함수라는 사실을 이용하여, 체인 규칙은 다음을 기록하기 위해 이용될 수 있다:
Figure pct00085
따라서, 위상 공간에서의 역전파는 종래의 역전파에서와 동일한 성분들(에러 벡터 및 입력 데이터)을 포함하며, 단위 전달 행렬들의 회전 각도들에 대한 가중 행렬의 도함수인 항이 추가된다.
단위 전달 행렬들의 회전 각도들에 대한 가중 행렬의 도함수를 결정하기 위해, 단일 기븐스 회전 행렬의 도함수는 다음의 형태를 갖는다는 점에 유의한다:
Figure pct00086
알 수 있는 바와 같이, i번째 행 및 j번째 열에 있지 않은 기븐스 회전 행렬의 임의의 엔트리에 대한 도함수는 0이다. 따라서, G(k) 내부의 각도들에 대한 모든 도함수들은 단일 행렬로 그룹화될 수 있다. 일부 실시예들에서, 단위 전달 행렬들의 열 내의 모든
Figure pct00087
각도들에 대한 도함수를 계산하는 것은 전술한 바와 같이 2-단계 프로세스를 이용하여 달성될 수 있다. 먼저, 에러 벡터는 분해된 행렬을 통해 우측(출력)으로부터 미분되는 회전들의 현재 세트까지 전파된다(부분 역방향 패스). 둘째, 입력 벡터가 좌측(입력)으로부터 회전들의 현재 세트까지 전파되고(부분 순방향 패스), 이어서 도함수 행렬이 적용된다.
일부 실시예들에서, 특이값에 대한 도함수는 유사한 프로세스를 이용하여 달성된다. 특이값 σi에 대한 도함수는 요소 Σ'ii 내지 1을 초래하고, 모든 다른 Σ'jj 내지 0을 초래한다. 따라서, 특이값들에 대한 모든 도함수들이 함께 계산될 수 있다. 일부 실시예들에서, 이것은 에러 벡터를 좌측으로부터 전파(부분 순방향 패스)하고, 입력 벡터를 우측으로부터 전파(부분 역방향 패스)한 다음, 순방향 패스 및 역방향 패스의 출력들로부터 아다마르 곱(Hadamard product)을 계산함으로써 행해질 수 있다.
도 2d에서 설명된 동작(2-103)의 구현에서, 열 k에서의 모든 각도들은 그 열에 대한 기울기 항을 계산하기 위해 π/2만큼 회전된다. 일부 실시예들에서, 이러한 회전이 수행되지 않는다. 단일 MZI에 대한 행렬을 고려한다:
Figure pct00088
θ에 대한 도함수를 취하는 것은 다음을 제공한다.
Figure pct00089
이 행렬은 π/2를 θ에 가산하는 것에 대응하지만, 이는 또한 원래의 행렬의 열들을 스와핑(swapping)하고, 이들 중 하나를 무효화(negating)하는 것에 대응한다. 수학 표기법에서, 이것은 다음을 의미한다.
Figure pct00090
분해된 단위 행렬의 열에 대한 기울기들을 결정하기 위해, 전술한 바와 같이 열에서의 각각의 MZI의 각도를 π/2만큼 회전시키고, 이어서 동작들(2-402 및 2-403)로부터 출력된 요소들의 연속적인 쌍들 사이의 내적들을 계산하는 것(예를 들어, x1δ1 + x2δ2)보다는, 일부 실시예들에서, 각도들이 π/2만큼 회전되지 않고 그 대신에 동일한 기울기들을 획득하기 위해 관계 x1δ2 - x2δ1이 계산된다. 일부 실시예들에서, 행렬 W(n×m)의 크기가 광자 프로세서의 크기를 크기 n×n의 행렬 U 및 크기 m×m의 행렬 V와 매칭시키는 경우, 동작들(2-401―2-404)은 제어기가 크기 n×n의 단위/직교 행렬에 대한
Figure pct00091
기울기들을 얻는 것을 허용한다. 결과적으로, 전술한 광자 처리 시스템(100)과 같은 하드웨어 상에서, 각각의 행렬 곱셈이 O(1) 연산들에서 계산될 수 있는 경우, 전체 역전파 절차는 광자 프로세서가 전체 행렬을 나타내기에 충분한 크기를 가질 때 O(n + m) 연산들에서 완료될 수 있다. 광자 프로세서가 전체 행렬을 나타내기에 충분한 크기를 갖지 않을 때, 행렬은 전술한 바와 같이 타일들로 분할될 수 있다. 광자 프로세서는 크기 N인 것으로 고려한다. 작업이 크기 I×J의 행렬을 크기 J의 벡터와 곱하는 것인 경우, 단일 행렬-벡터 곱은 복잡도 O(IJ/N2)를 가질 것인데(I 및 J 둘다 N에 의해 나누어질 수 있다고 가정함), 그 이유는 행렬의 각각의 차원이 크기 N의 행렬들로 분할되고, 프로세서로 로딩되어, 부분 결과를 계산하는 데 이용되어야 하기 때문이다. K개의 벡터들의 배치(예를 들어, 크기 J×K의 제2 행렬)에 대해, 복잡도는 행렬-벡터 곱에 대해 O(IJK/N2)이다.
광자 프로세서의 실시예는, 전술한 바와 같이, n개의 광학 모드들을 이용하여, 크기 [n×n]의 행렬과 n-요소 벡터 사이의 행렬-벡터 곱을 자연스럽게 계산한다. 이것은 크기들 [n×n]과 [n×1]의 행렬들 사이의 행렬-행렬 곱으로서 동등하게 표현된다. 또한, K개의 상이한 입력 벡터 및 단일의 반복된 입력 행렬을 갖는 K개의 행렬-벡터 곱 연산들의 시퀀스는, 크기 [n×n] 및 [n×K]의 행렬들 사이의 행렬-행렬 곱의 계산으로서 표현될 수 있다. 그러나, 본 명세서에 설명된 응용들 및 알고리즘들은 종종 임의의 크기의 행렬들 사이의 일반 행렬-행렬 곱셈(general matrix-matrix multiplication)(GEMM)의 계산, 즉, 아래의 계산을 수반한다.
Figure pct00092
여기서 aij는 [I×J] 행렬 A의 i번째 행 및 j번째 열에서의 요소이고, bjk는 [J×K] 행렬 B의 j번째 행 및 k번째 열이고, cik는 [I×K] 행렬 C = AB의 i번째 행 및 k번째 열에서의 요소이다. 이러한 계산의 재귀적 성질로 인해, 이것은 아래와 같이 동등하게 표현될 수 있다:
Figure pct00093
여기서, A는 먼저
Figure pct00094
행렬로 패딩된 다음, 부행렬들(각각 크기 [n×n])의
Figure pct00095
격자로 분할되고, Aij는 이 격자의 i번째 행 및 j번째 열에서의 [n×n] 부행렬이고, B는 먼저
Figure pct00096
행렬로 패딩된 다음, 부행렬들(각각 크기 [n×K])의
Figure pct00097
격자로 분할되고, Bj는 이 격자의 j번째 행에서의 [n×K] 부행렬이며, C는 먼저
Figure pct00098
행렬로 패딩된 다음, 부행렬들(각각 크기 [n×K])의
Figure pct00099
격자로 분할되고, Ci는 이 격자의 i번째 행의 [n×K] 부행렬이다.
이 프로세스를 이용하여, 광자 프로세서는
Figure pct00100
의 상이한 행렬들을 광자 어레이로 로딩하고, 각각의 로딩된 행렬에 대해, 광자 어레이를 통해 k개의 상이한 벡터들을 전파함으로써 임의의 GEMM을 계산할 수 있다. 이는
Figure pct00101
출력 벡터들(각각 n개의 원소로 이루어짐)를 산출하며, 그 서브세트가 함께 가산되어 상기의 수학식에 의해 정의된 바와 같이 원하는 [I×K] 출력 행렬을 산출한다.
도 2d에서 설명된 동작(2-103)의 구현에서, 행렬들을 구현하기 위한 광자 프로세서의 좌측에서 우측으로의 토폴로지가 가정되었고, 여기서 벡터는 광학 컴포넌트들의 어레이의 좌측에 입력되었고, 출력 벡터는 광학 컴포넌트들의 어레이의 우측에 제공되었다. 이러한 토폴로지는 광자 프로세서를 통해 에러 벡터를 전파할 때 각도 표현 행렬의 전치가 계산될 것을 요구한다. 일부 실시예들에서, 광자 프로세서는 광학 컴포넌트들의 어레이의 일 측(예를 들어, 좌측) 상에 입력들 및 출력들 모두를 배열하는 폴딩-오버 토폴로지(folded-over topology)를 이용하여 구현된다. 그러한 아키텍처는, 광이 입력으로부터 출력으로 또는 출력으로부터 입력으로 전파되어야 하는 방향을 결정하기 위해 스위치의 이용을 허용한다. 온 더 플라이(on the fly) 구성가능한 방향의 선택으로, 에러 벡터의 전파는 출력을 입력으로 이용하기 위한 방향을 먼저 스위칭한 후에 어레이를 통해 에러 벡터를 전파함으로써 달성될 수 있고, 이는 전술한 바와 같이, (예를 들어, 열 k에서의 각각의 광자 요소의 각도를 π/2만큼 회전시킴으로써) 위상들을 무효화하고, 열 k에 대한 기울기들이 결정될 때 열들을 전치시킬 필요성을 제거한다.
도 2a에서의 프로세스(2-100)로 돌아가면, 동작(2-104)은 결정된 기울기들에 기초하여 각도 표현의 파라미터들을 업데이트함으로써 가중 행렬을 업데이트하는 것에 관한 것이다. 방금 설명된 도 2d에 도시된 프로세스는 단일 입력 데이터 표본에 기초하여 분해된 단위 행렬에서의 단일 세트의 기울기들(예를 들어, 열 k)에 대한 각도 파라미터들의 기울기들을 계산하기 위한 것이다. 가중 행렬을 업데이트하기 위해, 세트들(예를 들어, 열들) 각각에 대한 기울기들이 배치에서의 각각의 입력 데이터 벡터에 대해 계산될 필요가 있다. 도 2e는 일부 실시예들에 따른, 가중 행렬을 업데이트하는데 필요한 모든 기울기들을 계산하기 위한 프로세스의 흐름도를 도시한다. 동작(2-501)에서, 다수의 세트들 중 하나의 세트의 단위 전달 행렬들(예를 들어, 기븐스 회전들)에 대한 기울기들이 (예를 들어, 도 2d에 도시된 프로세스를 이용하여) 결정된다. 동작(2-502)에서, 현재 입력 데이터 벡터에 대해 기울기들이 계산될 필요가 있는 단위 전달 행렬들(예를 들어, 열들)의 추가 세트들이 있는지가 결정된다. 계산될 추가적인 기울기들이 있다고 결정되는 경우, 프로세스는 동작(2-501)으로 되돌아가서, 새로운 세트(예를 들어, 열)이 선택되고, 새롭게 선택된 세트에 대해 기울기들이 계산된다. 이하에서 주지된 바와 같이, 일부 컴퓨팅 아키텍처들에서, 동작(2-502)에서의 결정이 필요하지 않도록, 어레이의 모든 열들이 동시에 판독될 수 있다. 프로세스는 동작(2-502)에서 분해된 단위 행렬에서의 단위 전달 행렬들(예를 들어, 열들)의 모든 세트들에 대해 기울기들이 결정되었다고 결정될 때까지 계속된다. 프로세스는 이어서 동작(2-503)으로 진행하며, 여기서, 처리되는 트레이닝 데이터의 배치에서 처리할 입력 데이터 벡터들이 더 있는지가 결정된다. 추가의 입력 데이터 벡터들이 있는 것으로 결정되는 경우, 프로세스는 동작(2-501)으로 되돌아가고, 여기서, 배치로부터의 새로운 입력 데이터 벡터가 선택되고, 새롭게 선택된 입력 데이터 벡터에 기초하여 기울기들이 계산된다. 프로세스는 동작(2-503)에서 트레이닝 데이터의 배치에서의 모든 입력 데이터 벡터들이 처리되었다고 결정될 때까지 반복된다. 동작(2-504)에서, 동작들(2-501―2-503)에서 결정된 기울기들이 평균화되고, 각도 표현의 파라미터들(예를 들어, 가중 행렬의 분해의 기븐스 회전 행렬들의 각도들)이 평균화된 기울기들을 이용하는 업데이트 규칙에 기초하여 업데이트된다. 비제한적인 예로서, 업데이트 규칙은 평균 기울기들을 학습 레이트에 의해 스케일링하는 것을 포함하거나, 파라미터 기울기들의 이력에 대한 "모멘텀(momentum)" 또는 다른 정정들을 포함할 수 있다.
위에서 간략히 논의된 바와 같이, 상기의 예가 단일 계층 신경망에서의 실수 가중 행렬에 적용되었지만, 결과들은 다수의 계층들 및 복소수 가중 행렬들을 갖는 네트워크들로 일반화될 수 있다. 일부 실시예들에서, 신경망은 다수의 계층들(예를 들어, 심층 신경망에서, ≥50 계층들)로 구성된다. 계층 L의 행렬에 대한 기울기를 계산하기 위해, 그 계층에 대한 입력 벡터는 선행 계층 L-1의 출력일 것이고, 그 계층에 대한 에러 벡터는 후속 계층 L+1로부터 역전파된 에러일 것이다. 역전파된 에러 벡터의 값은 이전과 같이 다변수 미적분학의 체인 규칙을 이용하여 계산될 수 있다. 더욱이, 일부 실시예들에서, 복소수 U 및 V 행렬들(예를 들어, 단위 행렬들)은 추가의 복소수 위상 항을 기븐스 회전 행렬에 추가함으로써 이용될 수 있다.
상기의 설명은 일반적으로 하드웨어 아키텍처와는 독립적으로 적용되지만, 특정 하드웨어 아키텍처들은 다른 것들보다 더 큰 계산 가속을 제공한다. 특히, 그래픽 처리 유닛, 시스톨릭 행렬 곱셈기(systolic matrix multiplier), 광자 프로세서(예를 들어, 광자 처리 시스템(100)), 또는 기울기들의 병렬 계산들이 가능한 다른 하드웨어 아키텍처들 상에서의 본 명세서에 설명된 역전파 기술들의 구현은 종래의 접근법들과 비교하여 가장 큰 이득들을 위해 선호된다.
전술한 바와 같이, 광자 처리 시스템(100)은 임의의 단일 변환을 구현하도록 구성된다. 기븐스 회전들의 시퀀스는 그러한 단일 변환의 예이고, 따라서 광자 처리 시스템(100)은 상기의 분해에서 O(1) 시간에 변환들을 계산하도록 프로그래밍될 수 있다. 전술한 바와 같이, 행렬은 가변 빔 스플리터(VBS)들의 정규 어레이를 제어함으로써 구현될 수 있다. 단위 행렬들 U 및 VT는 VBS의 타일링된 어레이로 분해될 수 있고, VBS 각각은 2×2 직교 행렬 연산(예를 들어, 기븐스 회전)을 수행한다. 대각선 행렬 Σ는, (대각선 행렬 DUΣDV의 형태의) 대각선 위상 스크린 DU 및 DV와 함께, 전술한 바와 같이, 광 펄스들의 강도 및 위상을 제어함으로써 광자 처리 시스템(100)에서 구현될 수 있다.
대각선 행렬 Σ의 각각의 엔트리는 각각의 광자 모드의 증폭 또는 감쇠에 대응한다. 크기 ≥1인 엔트리는 증폭에 대응하고, 크기 ≤1인 엔트리는 감쇠에 대응하며, 조합 VBS 및 이득 매질은 감쇠 또는 증폭을 가능하게 할 것이다. n×n 정사각형 행렬 M에 대해, 대각선 행렬 Σ를 적용하는데 필요한 광학 모드들의 수는 n이다. 그러나, 행렬 M이 정사각형이 아니라면, 필요한 광학 모드들의 수는 더 작은 차원과 동일하다.
전술한 바와 같이, 일부 실시예들에서, 광자 프로세서의 크기는 곱해지는 입력 벡터 및 행렬 M의 크기와 동일하다. 그러나, 실제로, 행렬 M의 크기와 광자 프로세서의 크기는 보통 상이하다. 광자 프로세서의 크기는 N인 것으로 고려한다. 작업이 크기 I×J의 행렬을 크기 J의 벡터와 곱하는 것인 경우, 단일 행렬-벡터 곱은 복잡도 O(IJ/N2)를 가질 것인데(I 및 J 둘다가 N에 의해 나누어질 수 있다고 가정함), 그 이유는 행렬의 각각의 차원이 크기 N의 행렬들로 나누어지고, 프로세서로 로딩되어, 부분적 결과를 계산하는데 이용되어야 하기 때문이다. K개의 벡터들의 배치(예를 들어, 크기 J×K의 제2 행렬)에 대해, 복잡도는 행렬-벡터 곱에 대해 O(IJK/N2)이다.
행렬이 정사각형이 아닌 경우, 특히 I >> J 또는 J >> I인 경우, 작은 N×N 행렬 분할에 대해 작업하는 능력이 유리할 수 있다. 정사각형이 아닌 행렬 A를 가정하면, 행렬의 직접 SVD는 하나의 I×I 단위 행렬, 하나의 J×J 단위 행렬, 및 하나의 I×J 대각선 행렬을 생성한다. I >> J 또는 J >> I인 경우, 이 분해된 행렬들을 표현하는데 필요한 파라미터들의 수는 원래의 행렬 A보다 훨씬 크다.
그러나, 행렬 A가 보다 작은 차원들을 갖는 다수의 N×N 정사각형 행렬들로 분할되는 경우, 이 N×N 행렬들에 대한 SVD는 2개의 N×N 단위 행렬들 및 하나의 N×N 대각선 행렬을 생성한다. 이 경우, 분해된 행렬들을 표현하는데 필요한 파라미터들의 수는 여전히 N2―원래의 행렬 A의 크기와 동일함―이고, 전체 정사각형이 아닌 행렬은
Figure pct00102
전체 파라미터들로 분해될 수 있다. 근사화는 IJ가 N2에 의해 나누어질 수 있을 때 동등해진다.
2N + 1개의 열들을 갖는 광자 프로세서의 경우, 각각의 열에 대한 에러 벡터를 역전파한 부분적 결과가 계산될 수 있다. 따라서, K 벡터들의 배치에 대해, 크기 N의 광자 프로세서를 이용하는 역전파의 복잡도는 O(IJK/N)이다. 그에 비해, 비병렬 프로세서(예를 들어, CPU) 상의 행렬 곱셈 알고리즘을 이용하는 역전파 에러들의 계산은 O(IJK)일 것이다.
지금까지의 설명은 입력 벡터 데이터 및 역전파된 에러 벡터를 갖는 신경망 계층 내의 행렬의 이용에 초점을 맞추었다. 본 발명자들은 심층 신경망 계산들에서의 데이터가 반드시 벡터들일 필요는 없지만, 그들이 일반적인 다차원 텐서들이라는 것을 인식하여 알았다. 유사하게, 뉴런들(neurons) 사이의 접속을 기술하는 가중치 값들도 일반적으로 다차원 텐서들이다. 일부 실시예들에서, 가중 텐서가 각각의 행렬 슬라이스가 서로 독립적인 행렬 슬라이스들로 분할되는 경우, 전술한 방법이 직접 적용될 수 있다. 따라서, 특이값 분해 및 기븐스형 회전 분해가 수행되어 특정 행렬 슬라이스에 대한 위상들의 관점에서 유효한 표현을 획득할 수 있다. 위상들의 기울기를 계산하는 동일한 방법이 이어서 입력 텐서 데이터 및 역전파된 에러 데이터의 적절한 배열로 마찬가지로 적용될 수 있다. 특정 행렬 슬라이스에 대한 기울기들은 그 특정 행렬 슬라이스에 기여하였을 입력 및 에러 데이터의 부분들로 계산되어야 한다.
구체성을 위해, 일반적인 n차원 가중 텐서
Figure pct00103
를 고려한다. 행렬 슬라이스를 구성할 {ai}i=1,...,n 중에서 2개의 인덱스를 선택―즉, 선택은 인덱스들 ab 및 ac로 라벨링됨―하고,
Figure pct00104
를 계산함으로써 위상들 θij (k)를 획득하기 위해 분해를 수행한다. 중요하게는, b 및 c는 1과 n 사이의 임의의 값일 수 있다. 이제 일반적인 k차원 입력 텐서
Figure pct00105
를 고려한다. 유효 텐서 연산을 위해, 그것은 이 입력 텐서에 대한 가중 텐서의 연산의 출력이 (n-k)차원 출력 텐서를 생성하는 경우이어야 한다. 따라서, 이 계층의 가중 텐서인 역전파 에러 텐서는 (n-k)차원 텐서인 것으로 결론지어질 수 있다:
Figure pct00106
.
따라서, 계산될 기울기는 다음과 같다.
Figure pct00107
여기서, 간략성을 위해(그러나, 반드시 필요한 조건은 아님), 가중 텐서들의 인덱스들은 첫 번째 k 인덱스들이 x에 대해 연산하고, 마지막 (n-k) 인덱스들이 에러 e에 대해 연산하도록 순서화되었다.
다른 실시예들에서, 임의의 n차원 텐서가 다음과 같이 분해될 수 있는 튜커 분해(Tucker decomposition)와 같은 특이값 분해의 고차 일반화를 수행하는 것이 더 편리할 수 있다. 즉,
Figure pct00108
이고, 여기서 각각의
Figure pct00109
는 그의 기븐스 회전 위상들로 분해될 수 있는 직교 행렬이고,
Figure pct00110
는 n차원 코어 텐서이다. 일부 경우들에서, 코어 텐서는 CANDECOMP/PARAFAC (CP) 분해라고 지칭된 튜커 분해의 특별한 경우를 이용하여 초대각선(superdiagonal)이 되도록 선택될 수 있다. 튜커 분해는 단위 행렬들 중 일부의 역(전치들 또는 켤레 전치들(conjugate transposes))을 곱함으로써 2차원 SVD 형태와 유사하게 이루어질 수 있다. 예를 들어, 분해는
Figure pct00111
로서 다시 기재될 수 있고, 여기서 처음 m개의 단위 행렬이 코어 텐서의 좌측으로 푸시된다. 코어 텐서의 양측에 있는 단위 행렬들의 집합은 그들의 회전 각도들로 분해될 수 있고, 각각의 회전 각도의 기울기는 미적분학의 체인 규칙 및 입력 텐서 및 에러 텐서와의 기울기들의 수축에 의해 획득된다.
본 발명자들은 (예를 들어, 분해된 행렬들 U 및 V에 대한) 위상들의 기울기들 및 (예를 들어, 행렬 Σ에 대한) 부호 있는 특이값들의 기울기들이 상이한 상한들을 가질 수 있다는 것을 인식하여 알았다. 신경망 파라미터들에 대한 스칼라 손실 함수 L의 기울기들을 계산하기 위한 작업을 고려한다. 유클리드 공간에서, 기울기들의 값은
Figure pct00112
에 의해 주어지며, 여기서 W는 행렬이다. 위상 공간에서, 특정 스칼라 위상 θk에 대해, 체인 규칙은 다음을 제공한다:
Figure pct00113
트레이스의 정의로부터, 이것은 다음과 동일하다:
Figure pct00114
여기서,
Figure pct00115
Figure pct00116
는 둘다 행렬이다. 트레이스는 프로베니우스 놈 곱(Frobenius norm product)에 의해 경계가 정해진다는 것이 알려져 있으며,
Figure pct00117
Figure pct00118
이다. 따라서, 다음과 같다.
Figure pct00119
θ에 대해 미분하는 것은 W의 특이값들을 변경하지 않고, 따라서 프로베니우스 놈을 변경하지 않기 때문에, 다음이 참(true)이다:
Figure pct00120
특정 특이값 σk에 대해 미분하면, 모든 특이값들은 1로 되도록 미분되는 것을 제외하고 0으로 되고, 이는 다음을 의미한다.
Figure pct00121
따라서,
Figure pct00122
일부 실시예들에서, 위상들 및 특이값들의 기울기들은, 예를 들어, 상한들에서의 차이들을 고려하기 위해 각도 표현의 파라미터들을 업데이트하는 동안 개별적으로 스케일링된다. 기울기들을 개별적으로 스케일링함으로써, 위상들의 기울기들 또는 특이값들의 기울기들이 동일한 상한을 갖도록 리스케일링될 수 있다. 일부 실시예들에서, 위상들의 기울기들은 행렬의 프로베니우스 놈에 의해 스케일링된다. 일부 업데이트 규칙들에 따르면, 위상들 및 특이값들의 기울기들을 스케일링하는 것은 위상들의 기울기들 및 특이값들의 기울기들에 대해 상이한 학습 레이트들을 갖는 것과 독립적으로 같게 한다. 따라서, 일부 실시예들에서, U 및 V 행렬들에 대한 컴포넌트들의 세트들을 업데이트하기 위한 제1 학습 레이트는 ∑ 행렬에 대한 컴포넌트들의 세트를 업데이트하기 위한 제2 학습 레이트와 상이하다.
본 발명자들은 가중 행렬이 위상 공간으로 분해되면, 양호한 솔루션을 획득하기 위해 위상들 및 특이값들 둘다가 매 반복마다 업데이트될 필요가 없을 수 있다는 것을 인식하여 알았다. 그에 따라, (위상들이 아니라) 특이값들만이 전체 트레이닝 시간 중 일부 시간에 업데이트되는 경우, 그 에포크들(epochs) 동안 O(n2) 보다는 O(n) 파라미터들만이 업데이트될 필요가 있을 것이고, 이는 전체 실행 시간(runtime)에서의 개선들로 이어진다. 일부 반복 동안 특이값들 또는 위상들만을 업데이트하는 것은 "파라미터 클램핑(parameter clamping)"이라고 지칭될 수 있다. 일부 실시예들에서, 파라미터 클램핑은 다음의 클램핑 기법들 중 하나 이상에 따라 수행될 수 있다:
● 고정 클램핑(Fixed clamping) : 특정 횟수의 반복들 동안 모든 파라미터를 트레이닝하고, 이어서 후속하여 특이값들만을 업데이트한다.
● 순환 클램핑(Cyclic clamping) : 다수의 에포크들 M 동안 모든 파라미터들을 트레이닝하고, 이어서 다수의 에포크들 N 동안 위상들을 동결(즉, 특이값들만을 업데이트)한다. 다른 M 에포크들 동안 모든 파라미터들의 트레이닝을 재개하고, 이어서 N 에포크들 동안 위상들을 다시 동결한다. 원하는 에포크들의 총 수에 도달될 때까지 반복한다.
● 웜업 클램핑(Warmup clamping) : 소정 수의 에포크들 K 동안 모든 파라미터들을 트레이닝하고, 이어서 나머지 수의 에포크들 동안 순환 클램핑을 시작한다.
● 임계값 클램핑(Threshold clamping) : 그들의 업데이트들이 임계값 ε보다 작을 때까지 위상들 또는 특이값들을 계속 업데이트한다.
본 발명자들은 광자 프로세서의 아키텍처가 계산들의 복잡도에 영향을 미칠 수 있다는 것을 인식하여 알았다. 예를 들어, 도 1a에 도시된 아키텍처에서, 검출기들은 광자 프로세서 어레이의 하나의 단부에만 있으며, 전술한 바와 같이, 기울기들을 계산하기 위한 (예를 들어, 부분적 순방향 및 역방향 패스들을 이용하는) 열별(column-by-column) 접근법을 초래한다. 대안적인 아키텍처에서, 검출기는 포토닉스 어레이에서의 모든 광자 요소에 (예를 들어, 각각의 MZI에서) 배열될 수 있다. 그러한 아키텍처의 경우, 열별 접근법은 단일 순방향 패스 및 단일 역방향 패스로 대체될 수 있으며, 여기서 모든 열에서의 출력이 동시에 판독되고, 따라서 추가의 계산 가속을 제공한다. 검출기들의 열들이 어레이 전반에 걸쳐 간헐적으로 배치되는 중간 솔루션들이 또한 고려된다. 검출기 열들의 임의의 가산은 기울기 계산에 필요한 부분적 순방향 및 역방향 패스들의 수를 상응하여 감소시킨다.
전술한 기술들은 (예를 들어, 행렬의 각도 표현을 이용하여) 위상 공간에서의 모든 계산을 유지하면서 가중 행렬 파라미터들의 업데이트를 수행하기 위한 기술을 나타낸다. 일부 실시예들에서, 계산들의 적어도 일부는 유클리드 벡터 공간에서 수행될 수 있는 반면, 다른 계산들은 위상 공간에서 수행된다. 예를 들어, 업데이트를 수행하는데 필요한 양들(quantities)은 전술한 바와 같이 위상 공간에서 계산될 수 있지만, 파라미터들의 실제 업데이트는 유클리드 벡터 공간에서 발생할 수 있다. 유클리드 벡터 공간에서 계산된 업데이트된 행렬은 이어서 다음 반복을 위해 가중 공간으로 재분해될 수 있다. 유클리드 벡터 공간에서, 주어진 계층에 대해, 업데이트 규칙은 다음과 같을 수 있다:
Figure pct00123
이 계산에서의 δ는 위상 공간에서 전체 광자 프로세서를 통한 역방향 패스로 계산될 수 있다. 이어서, x와 δ 사이의 외적이 개별적으로(예를 들어, 오프-칩으로) 계산될 수 있다. 업데이트들이 적용되면, 업데이트된 행렬은 재분해될 수 있고, 분해된 값들은 전술한 바와 같이 광자 프로세서에 대한 위상들을 설정하는데 이용될 수 있다.
Ⅲ. 컨볼루션 계층들
컨볼루션 및 상호 상관(cross-correlation)은 오디오/비디오 인코딩, 확률 이론, 이미지 처리, 및 기계 학습과 같은 많은 응용들을 갖는 공통 신호 처리 연산들이다. 컨볼루션 및 상호 상관이라는 용어들은, 일반적으로 입력으로서 2개의 신호들을 받아들이고, 출력으로서 입력들 사이에 존재하는 유사성을 나타내는 제3 신호를 생성하는 수학적 연산들을 지칭한다. 본 발명자들은 컴퓨팅 컨볼루션들 및 상호 상관들이 계산 자원 집약적일 수 있다는 것을 인식하여 알았다. 특히, 본 발명자들은 컨볼루션들 및 상호 상관들의 계산 속도 및 효율을 개선하기 위한 기술들을 개발하였다. 이들 기술들의 실시예들은 컨볼루션 연산들을 행렬-벡터 곱 및/또는 다차원 어레이들의 곱으로 변환함으로써 컨볼루션 및 상호 상관을 계산하는 것을 포함한다. 이 기술들의 실시예들은 이산 변환(discrete transform)에 따라 컨볼루션들을 계산하는 것을 더 포함한다.
본 발명자들은 컴퓨팅 컨볼루션들 및 상호 상관들이 의도된 응용에 따라 다양한 방식들로 수행될 수 있다는 것을 더 인식하여 알았다. 입력 및 출력 신호들은 이산적이거나 연속적일 수 있다. 신호들이 구성되는 데이터 값들은 실수들, 복소 평면, 또는 유한 정수 링과 같은 다양한 수치 도메인들에 걸쳐 정의될 수 있다. 신호들은 임의 수의 차원들을 가질 수 있다. 신호들은 또한 다수의 채널들을 가질 수 있으며, 이는 CNN(convolutional neural network)들에서 일반적으로 이용되는 기술이다. 본 명세서에 설명된 실시예들은 이러한 변형들을 임의의 조합으로 수용하도록 구현될 수 있다.
더욱이, 이 기법들의 실시예들은 행렬 연산들을 수행하도록 구성된 임의의 적절한 계산 시스템에서 구현될 수 있다. 본 명세서에 설명된 기법들로부터 이익을 얻을 수 있는 그러한 계산 시스템들의 예들은 CPU(central processing unit)들, GPU(graphic processing unit)들, FPGA(field programmable gate array)들, ASIC(application-specific integrated circuit)들, 및 광자 프로세서들을 포함한다. 본 명세서에 설명된 실시예들이 광자 프로세서들과 관련하여 설명될 수 있지만, 이 기법들은, 제한적인 것은 아니지만, 전술한 것들과 같은 다른 계산 시스템들에 적용가능할 수 있다는 것을 잘 알 것이다.
이하에서는 컨볼루션들 및 상호 상관들을 계산하기 위한 기법들과 관련된 다양한 개념들 및 그 실시예들에 대한 보다 상세한 설명들이 있다. 본 명세서에 설명된 다양한 양태들이 다양한 방식들 중 임의의 방식으로 구현될 수 있다는 것을 이해해야 한다. 특정한 구현들의 예들은 설명의 목적으로만 본 명세서에 제공된다. 또한, 이하의 실시예들에서 설명된 다양한 양태들은 단독으로 또는 임의의 조합으로 이용될 수 있고, 본 명세서에서 명시적으로 설명된 조합들로 제한되지 않는다.
본 발명자들은 전기 신호들 대신에 광 신호들을 이용하는 것이 전기 컴퓨팅에서의 전술한 문제점들 중 다수를 극복한다는 것을 더 인식하여 알았다. 광 신호들은 광이 이동하는 매질에서 광의 속도로 이동하며, 따라서 광자 신호들의 레이턴시는 전기적 전파 지연보다 훨씬 낮다. 추가적으로, 광 신호들이 이동하는 거리를 증가시킴으로써 전력이 소모되지 않고, 전기 신호들을 이용하여 실현가능하지 않을 새로운 토폴로지들 및 프로세서 레이아웃들을 가능하게 한다. 따라서, 광자 프로세서와 같은 광 기반 프로세서들은 일부 종래의 전기 기반 프로세서들보다 더 양호한 속도 및 효율 성능을 가질 수 있다.
포토닉스-기반 프로세서를 구현하기 위해, 본 발명자들은 입력 벡터와 행렬의 곱셈이 코히어런트 광 신호들, 예를 들어, 레이저 펄스들을, 상호접속된 가변 빔 스플리터(VBS)들의 제1 어레이, 상호접속된 가변 빔 스플리터들의 제2 어레이, 및 제1 어레이의 단일 출력을 제2 어레이의 단일 입력에 접속하는 2개의 어레이들 사이의 다수의 제어가능한 전기-광학 요소들을 통해 전파함으로써 달성될 수 있다는 것을 인식하여 알았다.
본 명세서에 설명된 바와 같이, n개의 광학 모드들을 갖는 광자 프로세서의 일부 실시예들은 크기 [n×n]의 행렬과 n요소 벡터 사이의 행렬-벡터 곱을 자연스럽게 계산한다. 이것은 크기들 [n×n]과 [n×1]의 행렬들 사이의 행렬-행렬 곱으로서 동등하게 표현될 수 있다. K개의 상이한 입력 벡터들 및 단일의 반복된 입력 행렬을 갖는 K개의 행렬-벡터 곱 연산들의 시퀀스는, 크기 [n×n]과 [n×K]의 행렬들 사이의 행렬-행렬 곱의 계산으로서 표현될 수 있다. 그러나, 본 명세서에 설명된 응용들 및 알고리즘들은 종종 임의의 크기의 행렬들 사이의 일반 행렬-행렬 곱셈(GEMM)의 계산, 즉 다음의 계산을 수반한다:
Figure pct00124
여기서 aij는 [I×J] 행렬 A의 i번째 행 및 j번째 열의 요소이고, bjk는 [J×K] 행렬 B의 j번째 행 및 k번째 열이고, cik는 [I×K] 행렬 C = AB의 i번째 행 및 k번째 열의 요소이다. 이러한 계산의 재귀적 성질로 인해, 이것은 아래와 같이 동등하게 표현될 수 있다.
Figure pct00125
여기서, A는
Figure pct00126
행렬로 먼저 패딩된 다음, 부행렬들(각각 크기 [n×n])의
Figure pct00127
격자로 분할되고, Aij는 이 격자의 i번째 행 및 j번째 열에서의 [n×n] 부행렬이고, B는 먼저
Figure pct00128
행렬로 패딩된 다음, 부행렬들(각각 크기 [n×K])의
Figure pct00129
격자로 분할되고, Bj는 이 격자의 j번째 행에서의 [n×K] 부행렬이고, C는 먼저
Figure pct00130
행렬로 패딩된 다음, 부행렬들(각각 크기 [n×K])의
Figure pct00131
격자로 분할되며, Ci는 이 격자의 i번째 행에서 [n×K] 부행렬이다.
일부 실시예들에 따르면, 이러한 프로세스를 이용하여, 광자 프로세서는
Figure pct00132
개의 상이한 행렬들을 광자 어레이로 로딩하고, 각각의 로딩된 행렬에 대해, 광자 어레이를 통해 K개의 상이한 벡터들을 전파함으로써 임의의 GEMM을 계산할 수 있다. 이것은 (각각 n개의 요소들로 구성된)
Figure pct00133
개의 출력 벡터들을 산출하며, 이들의 서브세트는 상기의 수학식에 의해 정의된 바와 같이, 원하는 [I×K]개의 출력 행렬들을 산출하도록 함께 가산될 수 있다.
본 발명자들은 광자 프로세서가 컨볼루션들 및 상호 상관들을 계산하는 프로세스를 가속화할 수 있지만, 본 명세서에 설명된 컨볼루션들 및 상호 상관들을 계산하기 위한 실시예들이 임의의 적절한 계산 시스템 상에 구현될 수 있다는 것을 인식하여 알았다. 본 명세서에 설명된 실시예들은 2차원 컨볼루션들의 관점에서 논의되지만, 임의의 수의 차원으로 일반화될 수 있다. [Ih×Iw] 입력(여기서는 "이미지"라고 지칭되지만, 입력은 임의의 적절한 데이터를 나타낼 수 있다는 것을 이해해야 함) G 및 [Kh×Kw] 필터 F에 대해, 2차원 컨볼루션에 대한 수학식은 다음과 같다:
Figure pct00134
2차원 상호 상관은 다음과 같이 주어진다:
Figure pct00135
여기서
Figure pct00136
는 경계 조건들에 의해 결정된 G의 함수이고,
Figure pct00137
는 복소 공액(complex conjugation)을 나타내며, ·는 스칼라 곱셈을 나타낸다.
일부 구현들에서, 복소수 값 2차원 신호들 G 및 F의 상호 상관이 아래의 수학식을 통해 컨볼루션으로 변환될 수 있기 때문에, 컨볼루션 및 상호 상관 연산들은 상호교환가능할 수 있다.
Figure pct00138
본 명세서에 설명된 실시예들은 컨볼루션 경우에 초점을 둘 것이지만, 본 명세서에 설명된 실시예들은 컨볼루션들 및 상호 상관들을 계산하는데 이용될 수 있다는 것을 이해해야 한다.
컨볼루션 및 상호 상관 둘다에서, 경계 조건들이 어떻게 처리되는지에 따라 상이한 변형들이 존재한다. 본 명세서의 일부 실시예들에서 설명된 2개의 경계 조건들은 원형을 포함한다:
Figure pct00139
그리고 패딩된다:
Figure pct00140
(0≤x≤Ih 및 0≤y≤Iw)인 경우; 그렇지 않은 경우 0
여기서 a % n은 a mod n을 나타낸다.
일부 실시예들에 따르면, 추가적인 경계 조건 변형들이 이용될 수 있다. 이러한 경계 조건들은 이미지가 경계에 걸쳐 반사되는 대칭(미러 또는 반사성이라고도 함) 경계 조건들을 포함한다. 패딩된 경계 조건은 일부 실시예들에서 다양하게 선형 또는 채움(fill)이라고 지칭될 수 있다. 원형 경계 조건은 래핑(wrapped)이라고도 알려져 있다.
추가적으로, 어느 요소들이 경계 조건과 상호작용하는지를 결정하기 위해 상이한 출력 모드들이 이용될 수 있다. 이러한 출력 모드들은 유효, 동일(또는 하프-패딩된(half-padded)) 및 전체(full) 출력 모드들을 포함한다. 유효 출력 모드는 출력이 경계 조건에 의존하지 않는 요소들만으로 이루어질 것을 요구한다. 동일한 출력 모드는 출력이 입력과 동일한 크기일 것을 요구한다. 전체 출력 모드는 출력이 경계 조건에 배타적으로 의존하지 않는 모든 요소들로 이루어질 것을 요구한다.
상이한 출력 모드들은 출력이 정의되는 포인트들 [x,y]의 수를 제어한다. 따라서, 본 명세서에 설명된 각각의 실시예는 임의의 주어진 출력 모드에서 동작하도록 수정될 수 있다. 본 명세서에 설명된 실시예들은 동일-모드 컨볼루션 경우에 초점을 두지만, 이러한 구현들은 본 명세서에 설명된 실시예들 대신에 또는 그에 부가하여 상호 상관 및/또는 대체 출력 모드들을 계산하도록 확장될 수 있다는 것을 이해해야 한다.
CNN들에서와 같은 일부 구현들에서, 이러한 동작들은 다중 채널 데이터에 적용될 수 있고/있거나 다중 채널 데이터를 생성할 수 있도록 일반화될 수 있다. 예로써, RGB 이미지는 3개의 컬러 채널을 갖는다. 2개의 공간 차원들 및 C 채널들을 갖는 입력 G에 대해, 다중 채널 연산은 다음과 같이 정의된다:
Figure pct00141
여기서,
Figure pct00142
는 컨볼루션 또는 상호 상관을 나타내고, M은 출력 채널들의 수이고, G는 3차원 [C×Ih×Iw] 텐서이고, F는 4차원 [M×C×Ih×Iw] 텐서이고,
Figure pct00143
는 3차원 [M×Ih×Iw] 텐서이다. 위에서, F[m,c]가 F의 2차원 [Kh×Kw] 공간 슬라이스에 액세스하고, G[c]가 G의 2차원 [Ih×Iw] 공간 슬라이스에 액세스하도록, 공간 차원이 억제된 슬라이스 인덱싱 표기법이 이용된다.
일반적으로, 컨볼루션들을 행렬 연산들로서 표현하는 기법들은 도 3a의 프로세스를 따를 수 있다. 동작(3-102)에서, 행렬들이, 예를 들어, 정확한 차원수(dimensionality), 준수 경계 조건들(obey boundary conditions), 및/또는 출력 모드들임을 확실히 하기 위해, 행렬 연산 이전에 이미지 및/또는 필터 행렬들의 전처리가 발생될 수 있다. 동작(3-104)에서, 코어 행렬 또는 행렬-벡터 연산이 적용되어, 컨볼루션의 출력을 생성할 수 있다. 동작(3-106)에서, 컨볼루션의 출력의 후처리가, 본 명세서에서 보다 상세히 논의되는 바와 같이, 예를 들어, 출력을 재형성하기 위해 발생될 수 있다.
일부 실시예들은 광자 프로세서를 이용하여 컨볼루션들을 행렬-벡터 곱으로서 계산할 수 있다. 본 발명자들은, 본 명세서에서 앞서 설명된 광자 프로세서의 일부 실시예들에 포함될 수 있는 것들과 같은, 가변 빔 스플리터(VBS)들의 어레이가 임의의 단위 행렬을 나타내는데 이용될 수 있다는 것을 인식하여 알았다. 예로써, 확장된 이미지 Gmat를 나타내기 위해 이들 기법을 이용함으로써, 행렬이 다음과 같이 특이값 분해로 분해될 수 있다.
Figure pct00144
광자 프로세서의 일부 실시예들에서, 2개의 단위 행렬들 U 및 V는 이어서, 전술한 알고리즘으로 분해될 수 있다. 그 계산으로부터 생기는 위상들은 특이값들과 함께 광자 어레이로 프로그래밍된다. 일부 실시예들에서, 프로세서는 이미지 대신에 필터를 분해하며, 따라서 필터는 이미지들의 전체 배치에 대해 로딩되어 유지될 수 있다.
일부 실시예들에 따르면, 광자 프로세서에서 컨볼루션을 계산하기 위한 프로세스의 예가 도 3b에 도시되어 있다. 동작(3-202)에서, 프로세스는 입력 이미지 행렬 G로부터 행렬 Gmat를 구성한다. 행렬 Gmat는, 제한적인 것은 아니지만, 이중 블록 순환 행렬(doubly-block circulant matrix) 또는 이중 블록 토플리츠 행렬(double-block Toeplitz matrix)로서 Gmat를 구성하는 것을 포함하는, 선택된 경계 조건들에 따라 임의의 적절한 방식으로 구성될 수 있다.
동작(3-204)에서, 분해된 행렬 Gmat는 이어서 광자 어레이로 로딩될 수 있다. 입력 배치에서의 각각의 필터 F에 대해, 루프가 반복되고, 여기서 필터 F는 동작(3-206)에서 열 벡터로 평탄화되고, 동작(3-208)에서 광자 어레이를 통과하여 행렬 곱셈 연산을 수행하고, 그 후 동작(3-210)에서 적절한 차원수를 갖는 출력으로 재형성된다. 동작(3-212)에서, 임의의 추가 필터들 F가 남아 있는지가 결정된다. 추가의 필터들 F가 컨볼루션 계층을 통과해야 하는 경우, 프로세스는 동작(3-206)으로 되돌아간다. 그렇지 않으면, 프로세스는 종료된다. 컨볼루션들의 가환적 성질(commutative nature) 때문에, 프로세스(3-200)는 필터 F가 Fmat로 확장되고, 이미지들 G가 동작(3-208)에서 열 벡터들로 평탄화되고 광자 어레이를 통과하여 수행될 수 있다.
광자 프로세서는 임의의 적합한 행렬-곱셈-기반 알고리즘을 구현하는데 이용될 수 있다. 행렬-곱셈-기반 알고리즘들은 계산이 일부 전처리 및/또는 후처리를 갖는 일반 행렬-행렬 곱셈(GEMM)으로서 표현될 수 있도록 입력 신호들을 재정렬 및/또는 확장한다. 광자 프로세서 상에서 구현될 수 있는 일부 예시적인 행렬-곱셈-기반 알고리즘들은 im2col, kn2row, 및 MEC(memory-efficient convolution)를 포함한다.
일부 실시예들에 따르면, im2col 알고리즘은 광자 프로세서 상에서 구현될 수 있다. im2col 알고리즘에서, 전처리 동안, 이미지 G는 [Ih×Iw] 행렬로부터 [(Kh·Kw)×(Ih·Iw)] 행렬로 확장될 수 있다. 필터 F는 [Kh×Kw] 행렬로부터 [1×(Kh·Kw)] 행 벡터로 평탄화될 수 있다. 이어서, 출력은 이미지와 필터의 행렬-벡터 곱에 의해 생성될 수 있는데, 그 이유는 이 전처리 단계가 각각의 열이 출력에서의 각각의 위치에 대해 스케일링되고 누적될 수 있는 모든 (Kh×Kw) 요소의 사본을 포함하는 확장된 데이터 행렬을 생성하기 때문이다. 그러므로, im2col 알고리즘은 O(Kh·Kw·Ih·Iw) 데이터 사본들 및 O(Kh·Kw·Ih·Iw) 임시 저장소를 필요로 할 수 있다.
일부 실시예들에 따르면, kn2row 알고리즘은 광자 프로세서 상에 구현될 수 있다. kn2row 알고리즘은 수정되지 않은 이미지와 필터 신호들의 외적을 계산하여, 크기 [(Kh·Kw)×(Ih·Iw)]의 임시 행렬을 생성한다. 이후, kn2row 알고리즘은 외적의 각각의 행으로부터의 특정 요소들을 함께 가산하여 [1×(Ih·Iw)] 출력 벡터를 생성한다. 따라서, kn2row 알고리즘은 또한 O(Kh·Kw·Ih·Iw) 데이터 사본들 및 O(Kh·Kw·Ih·Iw) 임시 저장소를 필요로 할 수 있다.
일부 실시예들에 따르면, MEC 알고리즘은 광자 프로세서 상에서 구현될 수 있다. MEC 알고리즘은 im2col 알고리즘에서와 같이 (Kh·Kw)의 인자가 아니라, 단지 Kh 또는 Kw의 인자만큼 입력 이미지를 확장할 수 있다. 더 작은 필터 치수가 확장을 위해 선택되는 경우, 알고리즘은 단지 O(min(Kh,Kw)·Ih·Iw) 임시 저장소 및 데이터 사본들만을 필요로 한다. 단일 행렬-벡터 곱을 계산하는 im2col 또는 kn2row와 달리, MEC 알고리즘은 일련의 더 작은 행렬-벡터 곱을 계산하고 결과들을 연결시킨다.
전술한 실시예들에서, 필터 행렬은 컨볼루션들의 가환적 특성 때문에 이미지보다는 전처리 동안 확장될 수 있다. 이미지 또는 필터가 행렬로 타일링되고 재형성되어야 하는지의 선택은 어느 연산들이 더 빠르고/거나 더 적은 계산 에너지를 요구하는지에 의해 결정될 수 있다.
Ⅶ. 2차원 행렬-행렬 곱셈을 통한 다차원 컨볼루션
본 발명자들은 위에서 논의된 컴퓨팅 컨볼루션들에 대한 행렬-곱셈-기반 알고리즘들이 일부 컴퓨팅 아키텍처들 또는 응용들에 적합하지 않을 수 있다는 것을 인식하여 알았다. 본 발명자들은 im2col 또는 kn2row의 계산 효율을 MEC 알고리즘의 메모리 효율적인 특징들과 결합할 수 있는 접근법이 컨볼루션들 및 상호 상관들의 계산에 유익할 것이라는 것을 더 인식하여 알았다. 특히, 본 발명자들은 이러한 이점들이 전처리 단계와 후처리 단계 사이에 입력 및 출력 행렬들의 재정렬 및 재형성을 분리함으로써 달성될 수 있고, 그러한 방법이 N차원 컨볼루션들(여기서 N≥ 2)로 일반화될 수 있다는 것을 인식하였다.
일부 실시예들에 따르면, 2차원 행렬-행렬 곱셈 알고리즘(본 명세서에서 "cng2" 알고리즘)을 통한 다차원 컨볼루션은 3개의 단계를 포함한다. 높은 레벨에서, 2차원 원형 컨볼루션의 비제한적인 예에 대해, 전처리 단계는 [Ih×Iw] 입력 행렬의 행들을 복제 및 회전시킴으로써 [Kw×(Ih·Iw)] 행렬을 구축하며, 일부 구현들에서 "회전"은 벡터의 요소들의 순환 순열(cyclic permutation), 예를 들어, 회전([1,2,3,4],-1)⇒[2,3,4,1]을 지칭한다. GEMM 단계에서, 전처리 단계로부터의 [Kh×Kw] 필터 행렬과 [Kw×(Ih·Iw)] 행렬의 곱이 계산된다. 후처리에서, GEMM에 의해 생성된 [Kh×(Ih·Iw)] 행렬의 행들이 회전 및 가산되어 출력을 구축한다.
일부 실시예들에 따르면, cng2 알고리즘은 다른 경계 조건들을 구현하도록 수정될 수 있다. 예로써, 전처리 및 후처리 동안의 패딩된 컨볼루션의 경우, 벡터 행들은 회전되는 것이 아니라 시프트된다. 즉, 회전 단계 동안 행 벡터들 주위를 다른 방식으로 둘러쌀 요소들은 0으로 설정된다. cng2 알고리즘에서 구현될 수 있는 다른 경계 조건들은, 제한적인 것은 아니지만, 대칭 또는 미러 경계 조건들을 포함한다.
추가적으로, 일부 실시예들에 따르면, cng2 알고리즘의 전처리 단계는 좌측 입력(본 명세서에서, 이미지)에만 적용되는 것으로 한정되지 않고, 오히려 우측 입력(본 명세서에서, 필터)에 적용될 수 있다. 전체 또는 유효 모드 컨볼루션에 대해, 연산은 가환적이고, 전처리 단계가 어느 하나의 입력에 적용될 수 있다. 동일 모드 컨볼루션에 대해, 연산은 Ih≠Kh 또는 Iw·Kw일 때 비가환적이지만, 전처리 단계는 우측에 여전히 적용될 수 있지만, 필터는 먼저 출력 크기에 매칭하도록 각각의 차원에서 0 패딩(zero-padded) 및/또는 크로핑(cropped)되어야 한다.
일부 구현들에서, 도 3ca에서 설명된 바와 같이, cng2 알고리즘은 추가적인 단계들을 포함할 수 있다. 전술한 바와 같은 전처리 단계 이전에, 동작(3-302)에 나타낸 바와 같이, 입력 필터 행렬 또는 행렬들이 적절한 차원들을 갖는 필터 행렬 F로 재형성될 필요가 있을 수 있다. 이 재형성은 입력 필터 행렬 또는 행렬들을 임의의 적절한 방식으로 연결시킴으로써 행해질 수 있다. 동작(3-304)에서, 순환 행렬 H를 구축하는 전처리 단계가 수행되고, 도 3cb를 참조하여 보다 상세히 설명될 것이다. 동작(3-306)에서, GEMM 단계가 수행되고, 중간 행렬 X=F×H가 생성된다. 다음, 후처리 단계들이 수행될 수 있다. 동작(3-308)에서, 행렬 X의 벡터 행들이 회전 및/또는 시프트되어 행렬 X'을 형성한다. 동작(3-310)에서, 행렬 Z를 형성하기 위해 행렬 X'의 행들에 대해 벡터 행 가산이 수행된다. 특정의 처리 시스템의 메모리 레이아웃에 따라, 동작(3-312)에서 행렬 Z가 적어도 하나의 출력 행렬로 재형성될 수 있다.
행렬 H를 구축하는 방법은, 일부 실시예들에 따르면, 도 3cb의 동작(3-304)의 확장에 도시된 바와 같이, 원하는 경계 조건들에 의존할 수 있다. 동작(3-314)에서, 경계 조건이 원형인지가 결정될 수 있다. 경계 조건이 원형인 것으로 결정되는 경우, 처리 시스템은 동작(3-316)으로 진행할 수 있고, 여기서, 행렬 H는 적어도 하나의 입력 행렬의 행들을 복제 및 회전하는 것에 의해 생성된다. 그 대신에, 동작(3-314)에서, 경계 조건이 원형이 아니라 패딩된 것으로 결정되는 경우, 처리 시스템은 동작(3-318)으로 진행할 수 있다. 동작(3-318)에서, 앞서 논의된 바와 같이, 적어도 하나의 입력 행렬의 행들을 복제 및 시프트하는 것에 의해 행렬 H가 생성된다. 패딩된 경계 조건 이외의 다른 경계 조건들이 일부 실시예들에서 동작(3-318)에서 이용될 수 있다는 것을 이해해야 한다.
대안적으로, 일부 실시예들에 따르면, 상호 상관을 계산할 때, 문제는 프로세스(3-300)에서와 같이 컨볼루션으로 명시적으로 변환될 필요가 없을 수 있다. 대신에, 요소 반전 단계(3-302)는 생략될 수 있고, cng2 알고리즘의 전처리 및 후처리 단계들은 그에 따라 수정될 수 있다. 즉, 요소-반전 단계는 cng2 알고리즘의 전처리 및 후처리 단계들과 조합될 수 있다. 이것이 행해지는 방법은 전처리 확장이 좌측 또는 우측 입력에 적용되는지에 의존한다. 좌측 입력이 확장되면, 전처리 단계 및 후처리 단계 둘다에서의 시프트들 또는 회전들은 반대 방향으로 수행될 수 있다. 우측 입력이 확장되면, 전처리 단계 동안 생성된 순환 행렬들 각각은 역순으로 전치 및 연결될 수 있고, GEMM 출력 행렬의 i번째 행은 후처리 단계에서 i·n 요소들보다는 (i-n+ 1)·n 요소들만큼 시프트 또는 회전될 수 있다. 복소수 값 데이터의 경우, 상호 상관은 여전히 하나의 입력의 복소 공액을 필요로 한다.
CNN들에서와 같은 일부 구현들에서, 전술한 동작들을 일반화하여, 이들이 다중 채널 데이터에 적용될 수 있고/있거나 다중 채널 데이터를 생성하는 것이 바람직할 수 있다. C 입력 채널들 및 M 출력 채널들의 문제에 대하여, 필터 행렬는 [(M·Kh)×(Kw·C)]의 형태를 취하고, 입력 행렬은 [(Kw·C)×(Ih·Iw)]의 형태를 취하고, 출력 행렬은 [(M·Kh)×(Ih·Iw)]의 형태를 취한다.
도 3da 내지 도 3df를 참조하면, 일부 실시예들에 따른, 다중 채널 입력들 및 출력들에 대한 프로세스(3-300)의 예가 도시되어 있다. 4개의 출력 채널을 포함하는 [2×2] 필터들 f 및 3개의 입력 채널을 포함하는 [3×3] 이미지들 G에 대해, 동작(3-402)이 도 3da에서 시각화된다. 그러나, 임의의 크기의 필터 행렬들, 이미지 행렬들, 및/또는 입력 및/또는 출력 채널들의 수가 구현될 수 있다. 동작(3-402)의 예에서, 필터들 f의 [6×8] 필터 행렬 F로의 재형성이 수행된다. 이 예에서, 필터 f의 재형성은 행렬 요소들의 순서를 변경하지 않고 필터들 f를 연결함으로써 행해지지만, 필터들 f의 행들의 회전, 시프트 또는 변경과 같은 다른 방법들이 이용될 수 있다. 필터들 f의 재형성은 필터 행렬 F가 나중의 GEMM 연산에 적절한 차원수인 것을 보장한다. 그러나, 메모리가 적절히 레이아웃되는 일부 구현들에서, 동작(3-402)은 이하에서 설명되는 바와 같이 동작(3-404) 이전에 필요하지 않을 수 있다.
일부 실시예들에 따르면, 동작(3-402) 이후에, 도 3db에 도시된 바와 같이, 동작(3-404)에서 이미지 G의 전처리가 수행될 수 있다. 이 예에서, 이미지 G는 동일 모드 컨볼루션을 수행하도록 형성되지만, 임의의 출력 모드가 이용될 수 있다. 이 예에서 순환 행렬 H는 원형 경계 조건들에 기초하여 형성되지만, 예를 들어, 패딩된 경계 조건들과 같은 임의의 경계 조건들이 이용될 수 있다. 동작(3-404) 이후에, 도 3dc에 도시된 바와 같이, 동작(3-406)의 GEMM 연산 F×H=X가 수행될 수 있다. 이 예에서, 중간 행렬 X는 [9×8]의 차원들을 갖는다.
GEMM 연산 후에, 도 3dd 내지 도 3de에 도시된 바와 같이, 후처리 단계들이 발생할 수 있다. 도 3dd에서, 이 예의 원형 경계 조건들에 따라 행렬 X'을 형성하기 위해 중간 행렬 X의 행들이 회전되는 동작(3-408)이 도시되어 있다. 비제한적인 예로서, 패딩된 경계 조건들과 같은 다른 경계 조건들은 전처리 및 후처리 단계들의 경계 조건들이 서로 동일한 한 전처리 및 후처리에서 구현될 수 있다.
동작(3-410)이 도시되어 있는 도 3de를 참조하면, 후처리의 다음 단계는 행렬 X'의 행들을 가산하여 출력 행렬 Z를 형성한다. 즉, 이 예에서, x00+x16=z00,x01+x17=z01 등이다. 일부 구현들에서, 처리 시스템의 메모리가 어떻게 레이아웃되는지에 따라, 동작(3-410 )이후에 동작(3-412)에서 출력 행렬 Z의 재형성이 수행되어야 할 수 있다. 도 3df의 예시적인 시각화에서, 출력 행렬 Z는 차원들 [3×3]의 4개의 출력 행렬 A로 재형성된다.
다수의 입력 채널들로 일반화될 수 있는 것에 부가하여, 일부 실시예들에 따르면, cng2 알고리즘은 고차원 신호들(즉, 2보다 더 큼)로 일반화될 수 있다. 크기 [Kn×Kn-1×...×K1]의 필터 텐서와 크기 [In×In-1×...×I1]의 이미지 사이의 n차원 컨볼루션에 대해, 2차원 신호들에 대해 취해진 것들과 유사한 단계들을 갖는 2차원 행렬 곱셈을 이용하여 원하는 출력을 계산하는 것이 가능하다. 전처리 동안, 입력 텐서는 (Ka·Ka-1·...·K1)의 인자에 의해 확장될 수 있고, 여기서 a는 전처리 단계 동안 처리된 차원들의 수로 간주될 수 있고, 범위 1≤a≤n-1에서의 임의의 값이 선택될 수 있다. GEMM 단계에서, [(Kn·Kn-1·...·Ka+1)×(Ka·Ka-1·...·K1)] 행렬로서 분할된 필터 텐서와 전처리 단계로부터의 확장된 행렬의 곱이 수행될 수 있다. 후처리 단계 동안, GEMM 동안 생성된 행렬의 서브벡터들이 회전되고 누적될 수 있다.
전처리 단계에 의해 생성되는 확장된 행렬은 (Ii·In-1·...·Ia+1) 수평으로 연결된 부행렬들로 구성될 수 있으며, 여기서 각각의 부행렬은 정도(degree) a의 네스팅된 토플리츠 행렬이고, 가장 안쪽의 토플리츠 행렬들은 이들이 2차원 cng2 구현에 있음에 따라 정의된다. 후처리 단계는 (n-a) 라운드들의 회전들 및 가산들을 수행할 수 있으며, 여기서 i번째 라운드는 이전 라운드에 의해(또는, 초기에, GEMM 연산에 의해) 생성된 행렬을 크기 [Ka+i×(Ia+i·Ia+i-1·...·I1)]의 부행렬들로 분할한다. 각각의 부행렬에 대해, 이하의 연산들이 이어서 수행된다. 첫째, j번째 행은 (j·(Ia+i-1·Ia+i-2·...·I1)) 요소들만큼 회전 또는 시프트될 수 있다. 그 후, 모든 행들이 함께 가산될 수 있다.
상기의 설명은 차원들을 순서대로 다루지만, 즉, 전처리 단계가 처음 a 차원을 따라 데이터를 확장하고, 후처리 단계가 최종 n-a 차원을 따라 데이터를 감소시키지만, 일부 실시예들에 따르면, 이것이 그럴 필요는 없다. 전처리 단계는 2차원 경우에 대해 설명된 것과 동일한 방식으로 입력 및 출력 데이터를 재정렬함으로써 임의의 a 차원들을 따라 데이터를 확장할 수 있다.
cng2 알고리즘은, 본 명세서에 설명된 몇몇 대안적인 실시예들과 함께, 컨볼루션을 계산하기 위한 유연한 프레임워크를 제공한다. 일부 구현예들에서, 출력에서의 주어진 포인트에 대한 입력 신호들의 중첩 영역들은 일정한 오프셋만큼 시프트될 수 있다. 그러한 오프셋은 출력 모드에 관계없이 적용될 수 있지만, 가장 자주 동일 모드 출력과 페어링된다. 동일 모드에서 연산하는 컨볼루션(상호 상관) 및 위에서 주어진 정의들에 대해, 경계 조건은 입력 이미지 G의 최상부(최하부) 에지를 따르는 (Kh-1)·Iw 요소들 및 좌측(우측) 에지를 따르는 (Kw-1)·Ih 요소들에 적용될 수 있다. 이 거동은 필터 위치와 출력 위치 사이의 일정한 오프셋을 갖는 동작을 재정의함으로써 변경될 수 있다. 컨볼루션(상호 상관)을 계산할 때, 이러한 수정은 전처리 단계에서 시프트 또는 회전 양들에 대해 오프셋을 감산(가산)하고 후처리 단계에서 시프트 또는 회전 양들에 대해 오프셋·Iw를 감산(가산)함으로써 cng2에 적용될 수 있다.
추가적으로, 일부 실시예들에 따르면, kn2row 후처리 단계의 시간 및 저장 요건들 모두를 감소시키기 위해 제안된 방법들은 유사하게 cng2 알고리즘에 적용될 수 있다. kn2row 알고리즘의 경우, GEMM 연산은 일련의 Kw·Kh의 더 작은 GEMM 연산들로 분할될 수 있고, 이러한 더 작은 GEMM 연산들의 결과들이 함께 계속 누적된다. 이는 후처리 가산들이 최종 출력의 저장과 관련하여 최적화된 방식으로 및 제자리에서 수행될 수 있게 한다. kn2row의 경우, 이것은 경계 조건들이 무시될 수 있거나 추가적인(그리고 일반적으로 비효율적인) 소위 홀 펀칭 프로세스(hole-punching process)가 도입되는 경우에만 동작한다. 그러나, cng2 알고리즘의 경우, 이 프로세스는 정확도를 희생하거나 또는 추가 처리 없이 직접 적용될 수 있어, 후처리 단계의 계산 비용을 효과적으로 제거하고, cng2 알고리즘에 대해 요구되는 임시 저장소를 O(Kw·Ih·Iw)로 감소시킨다.
일부 실시예들에서, 공간 차원들은 프로세스(3-300)에서 설명된 것과 반대 순서로 처리될 수 있다. cng2 알고리즘은 프로세스(3-300)의 시작에서의 입력 신호들 모두에 적용된 전치 연산들 뿐만 아니라, 최종 출력에 대한 전치 연산 으로 보강될 수 있다. 이것은 여전히 원하는 결과를 생성하지만, 필터의 형상이 엄격하게 직사각형일 때(즉, Kw≠Kh) 거동을 변경한다. 이 경우, 입력 이미지는 Kw가 아니라 Kh의 인자만큼 확장되고, 후처리 단계는 O(Kh·Ih·Iw)가 아니라 O(Kw·Ih·Iw) 가산들로 구성된다. 상기의 로우-메모리 통합-후처리 변형과 이러한 변형을 조합하는 구현은 cng2 알고리즘에 대해 요구되는 임시 저장을 O(min(Kh,Kw)·Ih·Iw)로 더 감소시킬 수 있다.
대안적인 구현으로서, GEMM 연산으로 전달되는 행렬들에서의 행들 및/또는 열들이 재정렬될 수 있다. GEMM 연산이 C=AB로서 정의되면, 적절한 순열이 다른 입력 행렬(A의 열들 또는 B의 행들을 재순서화하는 경우) 또는 출력 행렬(A의 행들 또는 B의 열들을 재순서화하는 경우)에 적용되는 한, 입력 행렬 A 또는 B의 행들 및/또는 열들은 재정렬될 수 있다. 특히, 다수의 출력 채널들의 경우에 A의 행들을 재정렬하는 것은 벡터 프로세서들 또는 SIMD(single-instruction-multiple-data) 아키텍처들에 매우 적합한 방식으로 후처리 단계에서 이용가능한 데이터 레벨 병렬성을 재구성할 수 있다.
컨볼루션 계산은 또한 일부 실시예들에 따라 스트라이드(stride)를 이용하여 계산될 수 있다. 제1 차원에서의 스트라이드 Sx 및 제2 차원에서의 스트라이드 Sy에 대해, 컨볼루션 연산은 다음과 같이 정의된다:
Figure pct00145
이 정의는 Sx·Sy의 인자만큼 출력 신호의 크기를 감소시키고, 필터가 각각의 출력 포인트에 대해 이미지에 걸쳐 슬라이딩되는 단계 크기(step size)를 증가시키는 것과 동등하다. 이것은 스트라이딩되지 않은 컨볼루션을 계산한 다음 결과를 각각의 차원에서 적절한 양만큼 다운샘플링함으로써 구현될 수 있지만, 이것은 필요한 것보다 O(Sx·Sy) 더 많은 계산 단계들을 필요로 한다. 최소한, 이러한 계산 페널티는 각각의 개별 순환 행렬에서의 모든 Sx 번째 열만을 생성하도록 전처리 단계(3-304)를 수정하고, 각각의 행을 i·Iw가 아니라 i·(Iw/Sx)만큼 시프트 또는 회전시키도록 후처리 단계를 수정함으로써 cng2에서 O(Sy)로 감소될 수 있다. 일부 구현들에서, 계산 페널티는 각각의 단계에 대한 추가적인 수정들로 완전히 제거될 수 있다. 먼저, 전처리 단계(3-304)는 단일 행렬이 아니라 Sy 확장 행렬들을 생성하도록 수정될 수 있고, 여기서 j=i mod S인 경우 i번째 순환 행렬이 j번째 확장 행렬에 할당된다. 코어 처리 단계는 Sy GEMM 연산들―확장 입력 행렬당 하나의 GEMM 연산―을 수행해야 하며, Sy GEMM 연산들 각각은 필터 행렬의 Kw/Sy 행들만을 이용한다. 후처리 단계들(3-308, 3-310)은 이후 결과적인 행렬들의 행들을 인터리빙하고, Sy 행들의 각각의 그룹을 직접(즉, 행들을 시프트 또는 회전하지 않고) 추가하고, i·(Iw/Sx)의 시프트 또는 회전 양들을 갖는 표준 후처리 로직을 통해 Kw/Sy 행들을 실행할 수 있다.
대안적으로, 컨볼루션은 일부 실시예들에 따라 팽창될 수 있다. 제1 차원에서의 팽창(dilation) Dx 및 제2 차원에서의 팽창 Dy에 대해, 컨볼루션 연산은 다음과 같이 정의된다:
Figure pct00146
팽창은 각각의 출력 포인트에 대해 이미지의 더 큰 패치(patch)에 걸쳐 필터의 수용 필드(receptive field)를 증가시키고, 필터의 요소들 사이에 공간들을 삽입하는 것으로 보여질 수 있다. cng2 알고리즘은 전처리 및 후처리 단계들 둘다에서의 회전 또는 시프트 양들을 각각 Dx 및 Dy만큼 증가시킴으로써 팽창 컨볼루션을 구현하도록 수정될 수 있다. 팽창 컨볼루션은 인과적(causal) 출력 모드에 의해 계산되도록 추가로 제한될 수 있다.
본 발명자들은 컨볼루션들 및 상호 상관들이 변환 기반 알고리즘을 이용하여 계산될 수 있다는 것을 더 인식하여 알았다. 변환 기반 알고리즘들은 먼저 대안의 수치 도메인(예를 들어, 주파수 도메인)에서 입력 신호들의 등가 표현을 계산하고, 대안의 선형 연산(예를 들어, 요소별 곱셈)을 수행하며, 이어서 신호의 원래의 수치 도메인(예를 들어, 시간 도메인)으로 되돌아가기 위해 결과의 역변환을 계산하는 것에 의해 계산 문제의 속성을 변경한다. 그러한 변환들의 예들은 이산 푸리에 변환들(discrete Fourier transform)(DFT)들, 이산 사인 변환들, 이산 코사인 변환들, 이산 하틀리 변환들(discrete Hartley transforms), 데시메이트되지 않은 이산 웨이블릿 변환들(undecimated discrete wavelet transforms), 월시-하다마드 변환들(Walsh-Hadamard transforms), 한켈 변환들(Hankel transforms), 및 위노그라드의 최소 필터링 알고리즘(Winograd's minimal filtering algorithm)과 같은 유한 임펄스 응답(finite impulse response)(FIR) 필터들을 포함한다. DFT에 기초한 변환 기반 알고리즘의 예가 본 명세서에 설명될 것이지만, 임의의 적절한 변환이 변환 기반 알고리즘에서 그리고 광자 프로세서 상에서 구현될 수 있다.
단위 정규화를 위해, 1차원 신호의 이산 푸리에 변환(DFT)은 다음과 같이 계산된다.
Figure pct00147
이 변환의 역
Figure pct00148
은 복소 공액을 취함으로써 계산될 수 있다. 유사하게, 2차원에서, 단위 정규화된 DFT는 다음과 같이 계산될 수 있다.
Figure pct00149
크기 N의 벡터에 대해 앞서 정의된 1차원 DFT를 수행하는 것은 행렬-벡터 곱
Figure pct00150
를 계산함으로써 달성될 수 있다. 행렬 W는 다음과 같이 주어지는 변환 행렬로서 지칭된다:
Figure pct00151
여기서,
Figure pct00152
이다. 역변환은 W-1의 요소들이 복소 공액들인 유사한 행렬-벡터 곱에 의해 계산될 수 있다. DFT는 분리가능한 변환이므로, 직교 축들을 따라 2개의 1차원 변환들을 계산하는 것으로 간주될 수 있다. 따라서, [M×N](즉, 직사각형) 입력 x의 2차원 DFT는 다음의 행렬 3중 곱을 통해 계산될 수 있다:
Figure pct00153
여기서 W는 열들과 연관된 [M×M] 변환 행렬이고, Y는 행들과 연관된 [N×N] 변환 행렬이고, 위첨자 T는 행렬 전치를 나타낸다. 크기 [N×N]의 제곱 입력 x의 경우에, 열들 W에 대한 변환 행렬은 행들 Y에 대한 변환 행렬과 동일하다.
동등하게, 이것은 크기 M·N의 열 벡터 xcol로 x행별로 먼저 평탄화하고, 다음의 행렬-벡터 곱을 계산함으로써 계산될 수 있다:
Figure pct00154
여기서,
Figure pct00155
는 크로넥커 곱(Kronecker product)을 나타낸다. 일부 실시예들에 따르면, 결과 벡터 Xcol은 이후 [M×N] 2차원 어레이 X로 재형성될 수 있다:
Figure pct00156
순방향 변환 행렬 W 및 역변환과 연관된 행렬 W-1이 상기의 다른 변환들에 따라 임의의 적절한 방식으로 정의되는 다른 이산 변환들에 대해 유사한 프로세스가 수행될 수 있다.
1차원 DFT의 경우, 행렬 W는 단위 행렬이고, 따라서 전술한 실시예들에 따라 광자 어레이로 직접 프로그래밍될 수 있다. 다른 이산 변환들의 경우, 행렬 W는 단일체(unitary)가 아닐 수 있으며, 따라서 전술한 방법에 따라 광자 어레이로 프로그래밍되기 전에 분해를 필요로 한다. 일부 실시예들에 따르면, 벡터에 대해 1차원 변환을 수행하기 위한 프로세스(3-500)가 도 3e에 도시되어 있다. 동작(3-502)에서, 행렬 W는 광자 어레이로 프로그래밍되고, 동작(3-504)에서, 벡터 x는 어레이를 통해 전파된다.
일부 구현들에서, 2차원 변환은 도 3f의 프로세스(3-600)에 설명된 바와 같이 계산될 수 있다. 크기가 N×N인 2차원 입력 x에 대해, 프로세스(3-500)는 앞서 정의된 바와 같이 2차원 변환을 생성하도록 수정될 수 있다. 동작(3-602)에서, 크기 N의 1차원 입력에 대응하는 변환 행렬 Wsmall이 생성된다. 다음, 동작(3-604)에서, W를 대각선을 따라 타일링하는 것에 의해 크기 N2×N2의 블록 대각선 행렬 B가 생성된다. 동작(3-606)에서 입력 x를 행별로 평탄화함으로써 크기 N2의 열 벡터 xcol이 생성된다. 동작(3-608)에서, 광자 어레이를 통해 벡터 x를 전파함으로써, 곱셈 Xpartial = Bx가 수행될 수 있다. 동작(3-610)에서, 행렬 Xpartial은 이어서 동작(3-612)에서 크기 N2 열 벡터로 열별로 추가로 평탄화될 수 있는 N×N 행렬로 재형성될 수 있다. 동작(3-614)에서, 곱셈 X = BXpartial은 광자 어레이를 통해 Xpartial을 전파함으로써 수행될 수 있다. 동작(3-616)에서, 결과적인 벡터 X가 출력을 위해 N×N 행렬로 재형성될 수 있다.
일부 실시예들에서, [N×N] 입력 x의 2차원 변환은 그 후 먼저 행렬 W를 광자 어레이로 프로그래밍함으로써 계산될 수 있다. 둘째, 광자 어레이를 통해 x의 열들을 전파함으로써 Xpartial = Wx를 계산한다. 셋째, 부분적인 결과 Xpartial을 전치한다. 넷째, 어레이를 통해 Xpartial T의 열들을 두 번째로 전파하여 WXpartial T를 계산한다. 마지막으로, 결과를 전치하여 X=WxWT를 생성한다.
본 명세서에 설명된 광자 기반 시스템들의 일 실시예와 같은 일부 시스템들은 실제 단위 행렬들(즉, 직교 행렬들)을 구현하는 것으로 제한된다. 그러한 구현들에서, 변환은 여전히 계산될 수 있지만, 추가적인 단계들이 필요하다. 시스템은 변환 행렬 및 입력 벡터 또는 이미지의 실수부 및 허수부를 개별적으로 추적해야 한다. 전술한 바와 같은 광자 어레이를 통한 모든 통과에 대해, 알고리즘이 4개의 패스를 수행해야 한다는 점을 제외하고는, 곱들을 계산하기 위한 위에서 정의된 실시예들은 직교 행렬들에 적응될 수 있다. 변수의 실수부를 Re(x)로 나타내고, 허수부를 Im(x)로 나타내면, 곱의 실수부는 Re(Wx) = Re(W)Re(x) - Im(W)Im(x)이고, 마찬가지로 곱의 허수부는 Im(Wx) = Re(W)Im(x) + Im(W)Re(x)이다. 일부 실시예들에 따르면, 실수 행렬들만을 표현하는 광자 프로세서의 포토코어(photocore)에서, 도 3g의 프로세스(3-700)가 수행될 수 있다. 입력의 차원수에 따르면, 프로세스(3-500 또는 3-600) 중 어느 하나가 프로세스(3-700)에서 이용될 수 있다. 동작(3-702)에서, Re(W)가 광자 어레이로 로딩된다. 동작(3-704)에서, Re(x) 및 Im(x)에 대해, 다시 입력의 차원수에 따라, 프로세스(3-500 또는 3-600) 중 어느 하나가 수행될 수 있다. 이것은 Re(W)Re(x) 및 Re(W)Im(x)를 생성한다. 동작(3-706)에서, Im(W)이 광자 어레이에 로드된다. 동작(3-708)에서, Re(x) 및 Im(x)에 대해, 다시 입력의 차원수에 따라, 프로세스(3-500 또는 3-600)가 수행될 수 있다. 이것은 Im(W)Re(x) 및 Im(W)Im(x)를 생성한다. 동작(3-710)에서, Re(W)Re(x) 및 Im(W)Im(x)가 감산되어 Re(Wx)를 생성한다. 그리고, 동작(3-712)에서, Re(W)Im (x) 및 Im(W)Re(x)가 가산되어 Im(Wx)를 생성한다.
전술한 프로세스들(3-500, 3-600, 및 3-700)에서, 입력 행렬이 그의 변환으로 변환될 수 있다. 일부 실시예들에 따르면, 컨볼루션 필터 F 및 이미지 G가 그들의 변환 대응물들로 변환되는 경우, 컨볼루션 정리가 적용될 수 있다. 컨볼루션 정리는 2개의 신호들의 컨볼루션이 2개의 신호들의 요소별 곱의 변환에 대응한다고 명시한다. 수학적으로, 이것은 다음과 같이 표현된다:
Figure pct00157
또는 등가적으로
Figure pct00158
여기서,
Figure pct00159
는 요소별 곱셈을 나타내고,
Figure pct00160
은 역변환을 나타낸다. 일부 실시예들에서, 이미지의 그리고 필터의 차원들은 상이할 수 있고; 그러한 경우에, 적절한 차원 변환 행렬들은 순방향 변환들 및 역변환 각각을 계산하는데 이용될 수 있다는 것을 이해해야 한다. 따라서, 필터 및 이미지의 일반적인 변환 및 일반적인 차원수를 갖는 1차원 컨볼루션을 나타내는 행렬-곱셈 수학식은 다음과 같다:
Figure pct00161
여기서 WB는 필터 F의 변환과 연관된 행렬이고, WD T는 이미지 G의 변환과 연관된 행렬이며, WA T는 결합된 신호의 역변환과 연관된 행렬이다.
유사하게, 직사각형 필터들 및 이미지들에 대한 일반적인 변환을 갖는 2차원 컨볼루션을 나타내는 행렬-곱셈 수학식은 따라서 다음과 같다:
Figure pct00162
여기서, WB 및 WC T는 필터 F의 변환과 연관된 행렬들이고, WD T 및 WE는 이미지 G의 변환과 연관된 행렬들이고, WA T 및 WF는 결합된 신호의 역변환과 연관된 행렬들이다.
도 3h를 참조하면, 변환 기반 알고리즘을 이용하여 광자 프로세서의 포토코어에서 컨볼루션들을 수행하는 일부 실시예들은 이하의 동작들을 포함할 수 있다. 동작(3-802)에서, 이미지 G의 변환은 프로세스들(3-500, 3-600, 및/또는 3-700) 중 임의의 것을 이용하여 수행될 수 있다.
일부 실시예들에서, 필터 F는 이어서 이미지 G의 크기에 매칭하도록 동작(3-804)에서 0들로 패딩될 수 있고, 그 후에 동작(3-806)에서 프로세스들(3-500, 3-600, 및/또는 3-700) 중 임의의 것을 이용하여 필터 F에 대해 변환이 수행될 수 있다. 동작(3-808)에서, 변환된 필터 F는 이어서 광자 어레이의 요소별 곱셈기로 로딩될 수 있고, 동작(3-810)에서, 이미지 G가 광자 어레이를 통해 전파될 수 있다. 동작(3-812)에서, 프로세스들(3-500, 3-600, 및/또는 3-700) 중 임의의 프로세스를 이용하여 이전의 계산의 결과에 대해 역변환이 수행될 수 있다. 동작(3-812)의 결과는 이어서 동작(3-814)에서 G의 크기로 재형성되고, 최종 컨볼빙된 이미지 G*F를 생성하도록 크로핑(cropped)될 수 있다.
일부 실시예들에서, 컨볼루션 G*F는 하나의 입력이 타일들의 세트로 분할되고, 각각의 타일이 제2 입력으로 개별적으로 컨볼빙되는 분할 정복(divide-and-conquer) 방식으로 계산될 수 있다. 각각의 개별 컨볼루션의 결과들은 이어서 원하는 출력으로 재결합될 수 있지만, 이 분할 정복 접근법을 구현하는 알고리즘(예를 들어, 오버랩-애드(overlap-add), 오버랩-세이브(overlap-save))은 간단하지 않다. 하나의 입력이 다른 입력보다 훨씬 더 작고, 변환 기반 알고리즘이 컨볼루션 연산을 위해 이용될 때, 이러한 접근법은 이미지의 크기에 매칭하도록 패딩되는 필터를 갖는 전술한 바와 같은 하나의 연산에서 전체 컨볼루션을 계산하는 것보다 훨씬 더 효율적일 수 있다. 광자 어레이 상에서 타일들의 변환들을 수행함으로써, 변환 기반 컨볼루션들에 대한 그러한 분할 정복 알고리즘이 광자 프로세서 상에서 구현될 수 있다는 것을 알 수 있다.
일부 실시예들에서, 필터 F 및 이미지 G는 다수의 채널들을 가질 수 있다. 위에서 정의된 바와 같이, 이것은 이미지의 각각의 채널이 필터 텐서의 대응하는 채널과 컨볼빙되고, 결과들이 요소별로 함께 가산되는 것을 의미한다. 다중 채널 컨볼루션이 변환 기반 방법으로 계산될 때, 채널들에 걸친 합산이 변환 또는 출력 도메인에서 수행될 수 있다. 실제로, 이것은 출력 변환이 적용되어야 하는 데이터의 양을 감소시키기 때문에, 변환 도메인에서 합산을 수행하도록 종종 선택된다. 이 경우에, 요소별 곱셈 및 그에 뒤이은 채널별 합산은 행렬-행렬 곱셈들(GEMM들)의 시퀀스로서 표현될 수 있다. 수학적으로, 이것은 다음과 같이 표현될 수 있다:
G가 N×N 이미지들의 C 데이터 채널들을 포함하는 입력 신호라고 한다. F를 N×N 필터들의 M·C 데이터 채널들을 포함하는 입력 신호라고 한다. C 및 M은 각각 입력 및 출력 데이터 채널들의 수라고 한다. Qm,c는 필터 텐서의 m번째 출력 채널 및 c번째 입력 채널의 변환된 데이터라고 한다(즉, Qm,c = WBFm,cWC T). R은 변환된 3차원 [C×N×N] 입력 텐서라고 하고, Rc는 변환된 입력 텐서의 c번째 채널이라고 한다(즉, Rc = WD TGcWE). 그러면, 다수의 출력 채널들을 생성하는 F와 G의 컨볼루션은 다음과 같다:
Figure pct00163
Sij가 3차원 [C×N×N] 텐서 S에서의 각 채널의 (i,j)번째 위치에서의 C개의 요소들로 이루어진 열 벡터를 나타내는 경우, 이는 등가적으로 다음과 같이 표현된다:
Figure pct00164
Qm ijRij 행렬-행렬 곱셈들 각각은 전술한 바와 같이 광자 프로세서 상에서 계산될 수 있다. 이것은 위에서 설명된 분할 정복 접근법들과 더 조합될 수 있다.
본 출원의 양태들은 CPU, GPU, ASIC, FPGA 또는 임의의 다른 적절한 프로세서와 같은 처리 디바이스 상에서 수행될 수 있는 방법들, 절차들 및 알고리즘들을 제공한다. 예를 들어, 처리 디바이스는 본 명세서에 설명된 광자 프로세서의 포토코어의 변조기들 및 가변 빔 스플리터들에 대한 설정들을 생성하기 위해 전술한 절차들을 수행할 수 있다. 처리 디바이스는 또한 본 명세서에 설명된 광자 프로세서에 입력될 입력 데이터를 생성하기 위해 전술한 절차들을 수행할 수 있다.
컴퓨팅 디바이스의 하나의 예시적인 구현은 적어도 하나의 프로세서 및 비일시적 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 컴퓨팅 디바이스는, 예를 들어, 데스크톱 또는 랩톱 개인용 컴퓨터, PDA(personal digital assistant), 스마트 모바일 폰, 태블릿 컴퓨터, 서버, 또는 임의의 다른 적절한 컴퓨팅 디바이스일 수 있다. 컴퓨터 판독가능 매체는 프로세서에 의해 처리될 데이터 및/또는 실행될 명령어들을 저장하도록 구성될 수 있다. 프로세서는 데이터의 처리 및 명령어들의 실행을 가능하게 한다. 데이터 및 명령어들은 컴퓨터 판독가능 저장 매체 상에 저장될 수 있고, 예를 들어, 컴퓨팅 디바이스의 컴포넌트들 사이의 통신을 가능하게 할 수 있다. 컴퓨터 판독가능 저장 매체 상에 저장된 데이터 및 명령어들은 본 명세서에 설명된 원리들에 따라 동작하는 기술들을 구현하는 컴퓨터 실행가능 명령어들을 포함할 수 있다.
컴퓨팅 디바이스는 입력 및 출력 디바이스들을 포함하는 하나 이상의 컴포넌트 및 주변 장치를 추가로 가질 수 있다. 이들 디바이스들은, 다른 것들 중에서, 사용자 인터페이스를 제시하는데 이용될 수 있다. 사용자 인터페이스를 제공하는데 이용될 수 있는 출력 디바이스들의 예는, 출력의 시각적 표현을 위한 프린터들 또는 디스플레이 스크린들, 및 출력의 청각적 표현을 위한 스피커들 또는 다른 사운드 생성 디바이스들을 포함한다. 사용자 인터페이스용으로 이용될 수 있는 입력 디바이스들의 예들은, 키보드, 및 마우스들, 터치 패드들, 및 디지타이징 태블릿들(digitizing tablets)과 같은 포인팅 디바이스들을 포함한다. 다른 예로써, 컴퓨팅 디바이스는 음성 인식을 통해 또는 다른 가청 포맷으로 입력 정보를 수신할 수 있다. 다른 예로써, 컴퓨팅 디바이스는 카메라, 라이다(lidar), 또는 시각 데이터를 생성하는 다른 디바이스로부터 입력을 수신할 수 있다.
컴퓨팅 디바이스의 실시예들은 또한 본 명세서에 설명된 것과 같은 광자 프로세서를 포함할 수 있다. 컴퓨팅 디바이스의 프로세서는 하나 이상의 인터페이스를 통해 정보를 광자 프로세서로 전송 및 수신할 수 있다. 전송 및 수신되는 정보는 광자 프로세서의 가변 빔 스플리터 및 변조기의 설정 및/또는 광자 프로세서의 검출기들로부터의 측정 결과들을 포함할 수 있다.
Ⅳ. 광자 인코더
본 발명자들은, 광학 신호들의 위상 및 강도 변조가 서로 상호의존하는 위상-강도 관계들이, 광학적 처리를 위해 광 필드들에서 벡터들을 정밀하게 인코딩하기 위한 도전과제를 제기한다는 것을 인식하여 알았다.
일부 광학 변조기들은 광학 도메인에서 숫자 벡터들을 인코딩하며, 여기서 숫자들은 광학 신호의 위상 또는 강도로 인코딩된다. 이상적인 세계에서, 광학 강도 변조기는 광학 신호의 위상을 변경하지 않고 유지하면서 광학 신호의 강도를 변조할 수 있고, 광학 위상 변조기는 광학 신호의 강도를 변경하지 않고 유지하면서 광학 신호의 위상을 변조할 수 있다. 그러나, 현실 세계에서, 광학 신호의 위상 및 강도는 상호의존적이다. 그와 같이, 강도 변조는 대응하는 위상 변조를 발생시키고, 위상 변조는 대응하는 강도 변조를 발생시킨다.
예를 들어, 강도 및 위상이 크레이머스-크로닉 수학식들(Kramers-Kronig equations)(복소 분석 함수의 실수부와 허수부를 접속하는 양방향 수학적 관계들)에 의해 서로 관련된 통합된 포토닉스 플랫폼들을 고려한다. 이러한 경우들에서, 광학 필드는 함수의 실수부 및 허수부(및 그 결과, 강도 및 위상)가 서로 관련되는 복소 함수에 의해 표현될 수 있다. 또한, 강도 및 위상 변조기들의 현실적인 구현들은 일반적으로 이들이 (위상 또는 강도를) 부여하는 변조의 양이 이들의 현재 설정들에 의존하는 동적 손실을 겪는다. 이러한 변조기들은 위상 변조가 발생하지 않을 때 특정 전력 손실을 겪고, 위상 변조가 발생할 때 상이한 전력 손실을 겪는다. 예를 들어, 무위상 변조에서 겪게 되는 전력 손실은 L1일 수 있고, π/2 위상 변조에서 겪게 되는 전력 손실은 L2일 수 있고, π 위상 변조에서 겪게 되는 전력 손실은 L3일 수 있고, L1, L2 및 L3은 서로 상이하다. 이러한 거동은 위상 변조에 더하여 신호가 강도 변조를 더 겪기 때문에 바람직하지 않다.
광학 변조기(4-10)의 예가 도 4a에 도시되며, 여기서 Ψin은 입력 광학 필드를 나타내고, Ψout은 변조기(4-10)에 의해 출력된 광학 필드를 나타내고, α는 진폭 변조 인자를 나타내며, θ는 위상 변조 인자를 나타낸다. 이상적으로, 변조기(4-10)는 임의의 감쇠와 조합하여 광학 필드 Ψin의 엔트리들을 임의의 위상으로
Figure pct00165
로서 설정할 수 있고, α≤1 및 θ∈ [0,2π]이다. 변조기들은 전형적으로 연관된 크레이머스-크로닉 관계를 갖고/갖거나 동적 손실을 겪기 때문에, α 및 θ의 값들을 단순히 설정하는 것은 쉽게 달성될 수 없다. 종래에는, 2개의 독립적으로 제어가능한 변조 신호들을 갖는 2개 이상의 변조기들이 이용되어, 실수의 부호 있는 숫자를 나타내는 방식으로 광학 필드의 진폭 및 위상 모두를 인코딩한다. 그러나, 다수의 제어가능한 변조 신호들을 갖는 것은, 종종 광학 신호의 위상 및 강도를 동시에 제어하기 위한 피드백 루프들을 수반하는 복잡한 다변수 인코딩 방식들(multi-variable encoding schemes)을 필요로 한다.
전기 광학 재료들에 기초한 변조기들 포함하여, 위상에 영향을 주지 않고 강도를 변조할 수 있는 광학 변조기들이 존재한다. 불행하게도, 전기 광학 변조기들은 제조하기에 비현실적인 재료들의 이용을 수반한다는 사실로 인해 대규모 상업적 맥락들에서 작업하기 어렵다.
종래의 컴퓨터들은 기본적으로 복소수 연산을 수행하지 않는다. 오히려, 그것들은 부호 있는 산술(signed arithmetic)을 이용하는데, 여기서 숫자들은 양 또는 음일 수 있고, 복소 산술은 몇 개의 계산들을 수행하고 결과들을 결합함으로써 구축될 수 있다. 본 발명자들은 이 사실이 동적 손실 및/또는 비이상적인 위상 또는 강도 변조기들이 존재하더라도, 실수의 부호 있는 선형 변환들의 구현을 극적으로 단순화하기 위해 이용될 수 있다는 것을 인식하여 알았다.
일부 실시예들은 비이상적인 광학 변조기들(강도 변조가 위상 변조를 발생시키고, 위상 변조가 강도 변조를 발생시키는 변조기들)을 이용하여 부호 있는 실수들의 벡터들을 인코딩하는 기술들에 관한 것이다. 다른 구현들과 달리, 일부 그러한 실시예들은 광학 신호의 강도 뿐만 아니라 위상을 제어하기 위해 단일 변조 신호를 이용하는 것을 수반한다. 본 발명자들은, 단일 변조 신호를 이용하여 부호 있는 실수들을 광학 필드 상에 인코딩할 때, 위상 공간(예를 들어, 실수부 및 허수부, 또는 진폭 및 위상)에서의 광학 신호의 정확한 위치는 디코딩의 목적으로 중요하지 않다는 것을 인식하였다. 일부 실시예들에 따르면, 정확한 디코딩에 중요한 것은 실수 축(또는 측정 축으로서 미리 선택된 다른 임의의 축들) 상의 광학 신호의 투영이다. 미리 선택된 축 상의 투영을 수행하기 위해, 일부 실시예들에서, 코히어런트 검출 방식들이 이용된다.
본 명세서에 설명된 타입들의 광학 도메인 인코딩 기술들은 감지, 통신 및 컴퓨팅을 위한 칩-위상 민감 측정들에 대한 짧은, 중간 및 긴-홀(haul) 응용들을 위한 고속 전기통신들, 및 광자 프로세서들을 이용한 광학 기계 학습을 포함하지만 이들로 제한되지 않는 다양한 문맥들에서 이용될 수 있다.
보다 일반적으로, 본 명세서에 설명된 타입들의 인코딩 기법들은 광학 신호들이 (복소 변환들과 달리) 실수 변환들에 따라 처리되는 어떤 상황에서도 이용될 수 있다. 종래의 컴퓨터들은 복소 산술을 직접 수행하지 않는다. 오히려, 종래의 컴퓨터들은 숫자가 양 또는 음일 수 있는 부호 있는 실수 산술을 이용한다. 일부 실시예들에서, 실수 산술을 수반하는 수 개의 계산들을 수행함으로써 광학 도메인에서 복소 산술이 구축될 수 있다. 예를 들어, 다음의 표현에 따라 광학 신호들을 변환하도록 구성된 광학 선형 시스템을 고려한다:
Figure pct00166
여기서 x는 입력 벡터를 나타내고, M은 변환 행렬을 나타내고, y는 출력 벡터를 나타내고, i는 i2=-1이 되도록 정의된 허수를 나타낸다. 실수 변환들(Im(M)=0)을 고려하면, y는 다음과 같이 다시 기재될 수 있다:
Figure pct00167
이 수학식에 기초하여, 입력 필드 x의 실수부 및 허수부는 결과 필드 y의 선형 독립 성분들에만 기여한다는 점에 유의해야 한다. 본 발명자들은, y는, 복소 평면에서의 임의의 축 상에 y를 투영함으로써 코히어런트 수신기를 이용하여 디코딩될 수 있다는 것을 인식하여 알았다.
일부 실시예들에서, 본 명세서에 설명된 타입들의 인코딩 기술들이 광자 처리 시스템의 일부로서 이용될 수 있다. 예를 들어, 일부 실시예들에서, 도 1a의 광학 인코더(1-101) 및/또는 도 1k의 광학 인코더들(1-1103) 및/또는 도 1lb의 광학 인코더들(1-1211)은 본 명세서에 설명된 타입들의 인코딩 기술들을 구현할 수 있다.
도 4ba는 일부 실시예들에 따른, 광학 인코딩 기술들을 구현하는 광자 시스템의 블록도이다. 광자 시스템(4-100)은 광학 소스(4-102), 인코더(4-104), 광학 변조기(4-106), 광학 변환 유닛(4-108), 코히어런트 수신기(4-110), 국부 발진기(4-112) 및 디코더(4-114)를 포함한다. 일부 실시예들에서, 광자 시스템(4-100)은 도 4ba에 도시되지 않은 추가적인 또는 대안적인 컴포넌트들을 포함할 수 있다. 일부 실시예들에서, 도 4ba의 컴포넌트들의 일부 또는 전부는 동일한 반도체 기판(예를 들어, 실리콘 기판) 상에 배치될 수 있다.
광학 소스(4-102)는, 예를 들어, 광학 코히어런트 소스들을 이용하는 것을 포함한, 다수의 방식들로 구현될 수 있다. 일례에서, 광학 소스(4-102)는 파장 λ0의 광을 방출하도록 구성된 레이저를 포함한다. 방출의 파장은 전자기 스펙트럼의 가시, 적외선(근적외선, 중적외선 및 원적외선을 포함함) 또는 자외선 부분에 있을 수 있다. 일부 실시예들에서, λ0은 O-대역, C-대역 또는 L-대역에 있을 수 있다. 광학 소스(4-102)에 의해 방출된 광은 광학 변조기(4-106)를 이용하여 변조된다. 광학 변조기(4-106)는 비이상적인 변조기이고, 따라서 위상 변조는 강도 변조를 발생시키고, 강도 변조는 위상 변조를 발생시킨다. 일부 실시예들에서, 위상 변조는 크레이머스-크로닉 수학식들에 따른 강도 변조와 관련될 수 있다. 대안적으로 또는 추가적으로, 변조기(4-106)는 위상 시프트가 감쇠를 초래하는 동적 손실을 겪을 수 있다.
일부 실시예들에서, 변조기(4-106)는 단일 전기 변조 신호(4-105)에 의해 구동된다. 따라서, 단일 변조 신호는 광학 필드의 위상 및 진폭 모두를 변조한다. 이것은 광학 필드의 복소 진폭에서 심볼들을 인코딩하기 위해 광학 통신들에서 통상적으로 이용되는 변조기들과 대조적인데, 각각의 심볼은 하나보다 많은 비트를 나타낸다. 그러한 타입들의 변조기들에서, 실제로, 다중 변조 신호들은 광학 필드를 변조한다. 예를 들어, QPSK(quadrature phase-shift keying) 변조 방식들을 제공하도록 구성된 광학 변조기들을 고려한다. 이러한 타입들의 변조기들에서, 하나의 변조 신호는 광학 필드의 실수부를 변조하고, 하나의 변조 필드는 광학 필드의 허수부를 변조한다. 따라서, QPSK 변조기들에서, 광학 필드의 위상 및 진폭은 2개의 변조 신호를 이용하여 집합적으로 변조된다.
변조기(4-106)에 이용될 수 있는 변조기들의 예들은, 다른 가능한 타입들의 변조기들 중에서도, 마하 젠더 변조기들, 전기 광학 변조기들, 링 또는 디스크 변조기들 또는 다른 타입들의 공진 변조기들, 전기 흡수 변조기들, 프랭크-켈디시 변조기들(Frank-Keldysh modulators), 음향 광학 변조기들, 스타크 효과 변조기들(Stark-effect modulators), 자기 광학 변조기들, 열 광학 변조기들, 액정 변조기들, 양자 구속 광학 변조기들(quantum-confinement optical modulators), 및 광자 결정 변조기들을 포함한다.
인코더(4-104)는 인코딩될 실수에 기초하여 변조 신호(4-105)를 생성한다. 예를 들어, 일부 실시예들에서, 인코더(4-104)는 변조 신호에 대한 진폭들에 실수들을 맵핑하는 테이블을 포함할 수 있다.
광학 변환 유닛(4-108)은 수신된 광학 필드의 강도 및/또는 위상을 변환하도록 구성될 수 있다. 예를 들어, 광학 변환 유닛(4-108)은 광섬유, 광학 도파관, 광학 감쇠기, 광학 증폭기(예를 들어, 에르븀 도핑된 섬유 증폭기(erbium-doped fiber amplifier)), 빔 스플리터, 빔 결합기, 변조기(예를 들어, 다른 것들 중에서도, 전기 광학 변조기, 프란츠-켈디시 변조기, 공진 변조기, 또는 마하 젠더 변조기), 위상 시프터(예를 들어, 플라즈마 분산 효과에 기초한 열 위상 시프터 또는 위상 시프터), 광학 공진기, 레이저, 또는 이들의 임의의 적절한 조합을 포함할 수 있다. 광학 통신들의 맥락에서, 광학 변환 유닛(4-108)은 광섬유 통신 채널을 포함할 수 있다. 광학 통신 채널은, 예를 들어, 광섬유들, 및 선택적으로 광학 리피터들(optical repeaters)(예를 들어, 에르븀 도핑된 섬유 증폭기들)을 포함할 수 있다. 광학 처리의 맥락에서, 광학 변환 유닛(4-108)은 광자 처리 유닛을 포함할 수 있으며, 그것의 예는 이하에서 추가로 상세히 논의된다. 일부 실시예들에서, 광학 변환 유닛(4-108)은, 변환의 허수부가 실질적으로 0과 동일하도록, 실수 변환을 구현한다.
광학 변환 유닛(4-108)에 의해 출력된 광학 필드가, (예를 들어, 하나 이상의 다른 광자 컴포넌트를 통과한 후에) 직접 또는 간접적으로, 코히어런트 수신기(4-110)에 제공된다. 코히어런트 수신기(4-110)는 호모다인 광학 수신기 또는 헤테로다인 광학 수신기를 포함할 수 있다. 수신된 신호를 통제하는 참조 신호는, 도 4ba에 도시된 바와 같이, 국부 발진기(4-112)에 의해 제공될 수 있거나, 광학 변환 유닛(4-108)을 통과한 후에 변조된 광학 필드와 함께 제공될 수 있다. 디코더(4-114)는 코히어런트 수신기(4-112)에 의해 출력된 신호로부터 실수(또는 실수들의 벡터)를 추출하도록 배열될 수 있다.
도 1a의 광자 처리 시스템(1-100)이 본 명세서에 설명된 타입들의 인코딩 기법들을 구현하는 실시예들 중 적어도 일부에서, 광학 변조기(4-106)는 광학 인코더(1-101)의 일부일 수 있고, 광학 변환 유닛(4-108)은 광자 프로세서(1-103)의 일부일 수 있으며, 코히어런트 수신기(4-110)는 광학 수신기(1-105)의 일부일 수 있다.
도 4bb는 일부 실시예들에 따른, 광학 도메인에서 실수들을 처리하기 위한 방법을 도시하는 흐름도이다. 방법(4-150)은 도 4ba의 시스템을 이용하여, 또는 임의의 다른 적절한 시스템을 이용하여 수행될 수 있다. 방법(4-150)은, 실수를 나타내는 값이 제공되는 동작(4-152)에서 시작한다. 일부 실시예들에서, 실수는 부호가 있을 수 있다(즉, 양 또는 음일 수 있다). 실수는 물리적 조건(예를 들어, 온도, 압력 등), 물체와 연관된 정보(예를 들어, 위치, 모션, 속도, 회전 속도, 가속도 등), 멀티미디어 파일과 연관된 정보(예를 들어, 오디오 파일들의 음향 강도, 이미지 또는 비디오 파일들의 픽셀 컬러 및/또는 강도), 특정 화학/유기 요소 또는 화합물과 연관된 정보(예를 들어, 농도), 금융 자산들과 연관된 정보(예를 들어, 특정 증권의 가격), 또는 전술한 예들로부터 도출된 정보를 포함하는 임의의 다른 적절한 타입의 정보와 같은 특정 환경적 변수 또는 파라미터를 나타낼 수 있다. 부호 있는 실수로 표현된 정보는, 예를 들어, 기계 학습 알고리즘을 트레이닝하거나, 예보, 데이터 분석들, 문제해결(troubleshooting)을 수행하거나, 또는 단순히 미래의 이용을 위해 데이터를 수집하는 것을 포함하는 다양한 이유들로 유용할 수 있다.
동작(4-154)에서, 실수를 나타내는 값이 광학 필드 상으로 인코딩될 수 있다. 일부 실시예들에서, 값을 광학 필드 상으로 인코딩하는 것은 값에 기초하여 광학 필드의 위상 및 강도를 변조하는 것을 수반한다. 그 결과, 광학 필드의 위상 및 진폭은 인코딩된 값을 반영한다. 동작(4-154)은 일부 실시예들에서 인코더(4-104) 및 변조기(4-106)(도 4ba 참조)를 이용하여 수행될 수 있다. 일부 그러한 실시예들에서, 값에 기초하여 위상 및 진폭을 변조하는 것은 단일 변조기를 단일 전기 변조 신호로 구동하는 것을 포함한다. 따라서, 단일 변조 신호는 광학 필드의 위상 및 진폭 모두를 변조한다. 제한이 아닌 예로써 도 4ba를 다시 참조하면, 인코더(4-104)는 단일 변조 신호(4-105)를 이용하여 광학 변조기(4-106)를 구동할 수 있다.
변조기를 구동하기 위해 단일 변조 신호가 이용된다는 사실은 변조기가 동작하는 환경을 제어하기 위한 다른 제어 신호들의 이용을 배제하지 않는다는 점에 유의해야 한다. 예를 들어, 변조기의 온도 또는 변조기의 특정 부분의 온도를 제어하기 위해 하나 이상의 제어 신호가 이용될 수 있다. 변조기의 동작에 전력을 공급하기 위해 하나 이상의 제어 신호가 이용될 수 있다. 변조기를 그의 선형 영역으로 바이어스하거나 변조기의 파장을 광학 소스의 파장(예를 들어, 도 4ba의 λ0)과 매칭시키도록 설정하는 것과 같이, 하나 이상의 제어 신호가 변조기를 특정 동작 영역으로 바이어스하는데 이용될 수 있다.
일부 실시예들에 따른, 특정 타입의 변조기가 도 4ca에 도시되어 있다. 변조기(4-206)는 링 공진 변조기이다. 위에서 열거된 것들을 포함하는 임의의 다른 적절한 타입의 변조기가 대안적으로 이용될 수 있기 때문에, 링 변조기들은 본 명세서에서 단지 예로서 설명된다는 점에 유의해야 한다. 변조기(4-206)는 도파관(4-208), 링(4-210), 및 위상 시프터(4-212)를 포함한다. 링(4-210)은 공진 파장을 나타내고, 그 값은, 다른 파라미터들 중에서, 링의 둘레의 길이에 의존한다. 광학 필드 Ψin이 도파관(4-208) 내로 론칭될 때, 광학 필드는 링(4-210)의 공진 파장에 대해 Ψin의 파장에 따라 링(4-210)에 결합하거나 결합하지 않을 수 있다. 예를 들어, Ψin의 파장이 공진 파장과 매칭되면, Ψin의 에너지의 적어도 일부가 소멸성 결합을 통해 링(4-210)으로 전달된다. 링에 전달되는 전력은 완전히 산란되거나 다른 방식으로 소산될 때까지 링 내부에서 무한히 발진할 것이다. 대조적으로, Ψin의 파장이 공진 파장과 매칭되지 않으면, Ψin은 어떠한 현저한 감쇠 없이 도파관(4-208)을 통해 직진으로 진행할 수 있다.
따라서, 광학 필드는 공진 파장에 대한 Ψin의 파장에 따라 변할 수 있다. 특히, 광학 필드의 위상 및 강도는 공진 파장에 대한 Ψin의 파장에 따라 변할 수 있다. 도 4cb는 공진 파장에 대한 Ψin의 파장에 따라 강도(상부 차트) 및 위상(하부 차트)이 어떻게 변화할 수 있는지를 도시한 도면이다. 상부 차트는 Ψin이 가질 수 있는 모든 가능한 파장(λ)의 함수로서 강도 스펙트럼 응답 α를 도시한다. 하부 차트는 동일한 파장의 함수로서 위상 스펙트럼 응답 θ를 도시한다. 공진 주파수에서, 강도 응답은 딥(dip)을 나타내고, 위상 응답은 변곡점(inflection point)을 나타낸다. 공진 주파수보다 실질적으로 더 낮은 파장들은 낮은 강도 감쇠(α~1) 및 낮은 위상 변화(θ~0)를 겪는다. 공진 주파수보다 실질적으로 더 큰 파장들은 낮은 강도 감쇠(α~1) 및 부호의 변화(θ~-π)를 겪는다. 공진 파장에서, Ψin의 강도는 딥에 대응하는 값에 의해 감쇠되고, 변곡점의 값(즉, -π/2)과 동일한 위상 시프트를 겪는다. 도 4cb의 예에서, Ψin의 파장(λ0)은 공진 주파수에 대하여 약간 오프셋된다. 이 경우, Ψin의 강도는 αV0(여기서, 0<αV0<1)만큼 감쇠되고, 위상은 θV0(여기서, -π<θV0<-π/2)만큼 시프트된다.
도 4ca를 다시 참조하면, Ψin의 진폭 및 위상의 변조는 전압 V를 이용하여 수행될 수 있으며, 이 경우 도 4ba의 변조 신호(4-105)가 구현된다. 전압 V가 위상 시프터(4-212)에 인가될 때, 위상 시프터의 굴절률이 변하며, 따라서, 그 결과, 링의 둘레의 유효 길이가 변한다. 이것은, 결국, 링의 공진 주파수의 변동으로 이어진다. 유효 둘레 길이(및 그에 따라, 공진 주파수)가 변하는 범위는 V의 진폭에 의존한다.
도 4cb의 예에서, 전압 V는 0으로 설정된다. 도 4cc의 예에서, 전압은 V1로 설정된다. 도 4cc에 도시된 바와 같이, 위상 시프터(4-212)에 V1을 인가하는 것은 파장 축을 따라 변조기의 강도 및 위상 스펙트럼 응답들의 시프트를 초래한다. 이 경우, 응답들은 레드시프트(redshift)(즉, 더 큰 파장들을 향한 시프트)를 나타낸다. 그 결과, Ψin의 강도는 이제 αV1V1은 αV0과 상이함)만큼 감쇠되고, 위상은 θV1V1은 θV0과 상이함)만큼 시프트된다.
따라서, 변화하는 전압 V는 Ψin의 강도 및 위상의 변화를 초래한다. 즉, V는 변조 신호로서 보여질 수 있다. 일부 실시예들에서, 전압 V는 유일한 변조 신호 구동 변조기(4-210)일 수 있다. 전압 V는 일부 실시예들에서 다음의 표현식 V = VDC + V(t)를 가정할 수 있으며, 여기서 VDC는 상수이고, V(t)는 인코딩할 실수들에 따라 시간에 걸쳐 변한다. VDC는 공진 주파수가 Ψin의 파장(λ0)에 근접하도록 링을 사전 바이어싱할 수 있다.
도 4cd는 일부 실시예들에 따른, 실수들이 변조기(4-206)를 이용하여 광학 필드의 위상 및 강도로 어떻게 인코딩될 수 있는지의 예를 제공하는 인코더 테이블(예를 들어, 룩업 테이블)이다. 이 경우, 예로써, 1과 동일한 증분들을 갖는 -10과 10 사이의 실수가 광학 도메인에서 인코딩되는 것으로 가정될 것이다("인코딩할 실수"로 라벨링된 열 참조). 물론, 임의의 적합한 세트의 실수들이 본 명세서에 설명된 기술들을 이용하여 인코딩될 수 있다. "V(인가 전압)"로 라벨링된 열은 위상 시프터(4-212)에 인가되는 전압을 표시한다. "α(진폭 변조)"로 라벨링된 열은 에서 Ψin의 파장(λ0)에서의 강도 스펙트럼 응답의 값을 나타낸다(도 4cb 및 4cc, 상부 차트들을 참조). "θ(위상 변조)"로 라벨링된 열은 Ψin의 파장(λ0)에서의 위상 스펙트럼 응답의 값을 나타낸다(도 4cb 및 4cc, 하부 차트들을 참조). 이 경우, 실수 "-10"은 특정 전압 V1에 맵핑되어, 진폭 변조 α1 및 위상 변조 θ1을 초래하고; 실수 "-9"는 특정 전압 V2에 맵핑되어, 진폭 변조 α2 및 위상 변조 θ2를 초래하는 등으로 된다. 실수 "10"은 특정 전압 VN에 맵핑되고, 이는 진폭 변조 αN 및 위상 변조 θn을 유도한다. 따라서, 상이한 실수들은 상이한 강도/위상 쌍들로 인코딩된다.
도 4ce는 일부 실시예들에 따른, 도 4cd의 인코딩 테이블의, 복소 평면에서의, 시각적 표현을 제공한다. 라인(4-300)을 따르는 상이한 포인트들은, 전압이 변화함에 따라, 도 4cb 및 도 4cc의 스펙트럼 응답들에 따라, 상이한 강도/위상 쌍들을 나타낸다. 심볼 Sin은, 예를 들어, 강도 변조 α 및 위상 변조 θ에 의해 특징지어지는 특정 심볼을 나타낸다. Sin은 도 4cd의 표로부터의 특정 행을 나타낸다. 표의 각각의 행은 라인(4-300)의 상이한 포인트에 맵핑된다.
도 4bb를 다시 참조하면, 동작(4-156)에서, 변환이 변조기에 의해 출력된 변조된 광학 신호에 적용된다. 변환은 인코딩된 실수들을 처리하기를 원하는 방식에 따라, 강도 변환 및/또는 위상 변환을 수반할 수 있다. 일부 실시예들에서, 광학 변환 유닛(4-108)은 변조기(4-106)에 의해 출력된 신호의 변환을 위해 이용될 수 있다. 광학 변환 유닛(4-108)은 강도 α 및 위상 θ에 의해 특징지어지는 심볼 Sin을 강도 αβ 및 위상 θ+Δθ에 의해 특징지어지는 심볼 Sout으로 변환하도록 구성될 수 있다. 즉, 광학 변환 유닛(4-108)은 강도 변조 β 및 위상 시프트 Δθ를 도입한다. β 및 Δθ의 값들은 이용되는 특정 광학 변환 유닛에 의존한다.
예를 들어, 도 4ce의 입력 심볼 Sin을 고려하면, 도 4da 내지 도 4dc는 광학 변환 유닛이 어떻게 변환을 수행할 수 있는지에 대한 예들을 제공한다. 도 4da의 변환은 β<1 및 Δθ=0이 된다. 즉, 광학 변환 유닛은 감쇠를 도입하지만, 입력 광학 필드의 위상을 변경하지 않는다. 이것은, 예를 들어, 광학 리피터들이 없는 광섬유의 경우일 수 있고, 광섬유는 입력 위상을 유지하도록 선택된 길이를 갖는다. 그 결과, 라인(4-300)이 라인(4-401)으로 변환되고, 여기서 라인(4-401)은 라인(4-300)의 압축된 버전이다. 출력 샘플 Sout은 Sin과 동일한 위상을 갖지만, 강도는 αβ와 동일하다(즉, β에 의해 감쇠된다).
도 4db의 변환은 위상 시프트 뿐만 아니라 감쇠를 도입한다. 이것은, 예를 들어, 광학 리피터들이 없는 광섬유의 경우일 수 있고, 광섬유는 임의의 길이를 갖는다. 그 결과는 라인(4-300)이 라인(4-402)으로 변환되고, 여기서 라인(4-402)은 라인(4-300)의 압축되고 회전된 버전이다. 출력 샘플 Sout은 위상 θ+Δθ 및 강도 αβ를 갖는다.
도 4dc의 변환은 다중 모드 변환을 수반한다. 이것은 입력 광학 필드가 하나 이상의 다른 광학 필드와 결합될 때 발생할 수 있다. 다중 모드 변환의 경우, 라인(4-403)이 임의의 적절한 방식으로 재형성될 수 있다. 다중 모드 변환들의 예는 광학 처리 유닛들을 포함하며, 이들 중 일부는 이하에서 더 상세히 설명된다.
도 4bb를 다시 참조하면, 동작(4-158)에서, 코히어런트 수신기는 변환된 변조된 광학 필드를 참조 광학 신호와 혼합하여 전기 출력 신호를 획득할 수 있다. 일부 실시예들에서, 혼합은 도 4ba의 코히어런트 수신기(4-110)를 이용하여 수행될 수 있다. 참조 광학 신호는 국부 발진기(예를 들어, 도 4ba의 국부 발진기(4-112))에 의해 생성된 신호일 수 있거나, 광학 변환 유닛을 통해 변조된 광학 필드와 함께 송신된 신호일 수 있다. 혼합의 효과는, 제한이 아닌 예로써, 도 4e에 도시되어 있다. 라인(4-403)(도 4dc에 도시된 동일한 라인)은 특정의 다중 모드 변환으로부터 나오는 모든 가능한 강도/위상 쌍들을 나타낸다. 도 4e는, 예를 들어, 도 1a의 광자 프로세서(1-103)를 통해 광학 신호를 전파하는 효과를 도시할 수 있다.
Sout이 특정 시간에 변환으로부터 나오는 심볼이라고 가정한다. 전술한 바와 같이, 심볼 Sout은 강도 αβ 및 위상 θ+Δθ에 의해 특징지어진다. 변환된 필드가 참조 신호와 혼합될 때, 라인(4-403)을 따른 포인트들이 참조 축(4-500) 상에 투영된다. 따라서, 예를 들어, 심볼 Sout이 축(4-500) 상의 포인트 A 상으로 투영된다. 포인트 A는 혼합으로부터 발생되는 전기 출력 신호를 나타내고, 0과
Figure pct00168
사이의 거리와 동일한 진폭에 의해 특징지어진다. 실수 축에 대한 축(4-500)의 각도(즉, 각도 φ)가 변환된 변조된 광학 필드에 대한 참조 신호의 위상에 의존한다는 것에 유의해야 한다. 이 예에서, 0<φ<π/4이다.
도 4bb를 다시 참조하면, 동작(4-160)에서, 디코더는 동작(4-158)에서 획득된 전기 출력 신호에 기초하여 디코딩된 실수를 나타내는 값을 획득할 수 있다. 일부 실시예들에서, 광학 변환을 통해 획득된 심볼들을 디코딩할 때, 복소 평면에서의 심볼의 정확한 위치는 중요하지 않을 수 있다. 일부 실시예들에 따르면, 정확한 디코딩에 중요한 것은 알려진 참조 축 상의 광학 신호의 투영이다. 즉, 심볼 Sout이 포인트 A에 맵핑되는 것처럼, 라인(4-403)을 따른 심볼들이 참조 축을 따른 포인트들에 맵핑될 수 있다. 따라서, 일부 실시예들은 참조 축을 따른 포인트들이 복소 평면에서의 특정 심볼들에 대응하는 광학 디코딩 방식들을 구현한다.
참조 축을 따른 포인트들이 복소 평면에서의 심볼들에 맵핑되는 방식은 교정 절차를 이용하여 결정될 수 있다. 교정 절차 동안, 알려진 강도 및 위상의 입력 심볼들(실수들의 세트를 나타내는 심볼들)의 세트는 특정 광학 변환 유닛을 통과하고, 결과적인 심볼들은 알려진 위상을 갖는 참조 신호를 이용하여 코히어런트하게 검출된다. 결과적인 전기 출력 신호의 진폭(즉, 참조 축을 따른 투영의 진폭)이 기록되고, 테이블(예를 들어, 룩업 테이블)에 저장된다. 테이블은 이어서 참조 축을 따른 투영의 진폭에 기초하여 실수들을 디코딩하기 위한 동작 동안 이용될 수 있다.
일부 실시예들에 따른, 그러한 테이블의 예가 도 4f에 도시되어 있다. 이 테이블은 참조 신호의 위상에 대한 열("참조 위상 φ"), 참조 축을 따른 투영에 대한 열("투영
Figure pct00169
", 즉, 전기 출력 신호의 진폭), 및 디코딩된 실수("디코딩된 실수")에 대한 열을 포함한다. 테이블은 1) 알려진 강도 및 위상의 심볼을 알려진 광학 변환 유닛을 통해 전달하는 것, 2) 참조 신호의 위상을 알려진 값으로 설정하는 것, 3) 변환된 심볼을 참조 신호와 혼합함으로써 변환된 심볼을 알려진 참조 축 상에 투영하는 것, 4) 참조 축을 따른 투영의 진폭을 결정하는 것, 및 5) 예상된 출력 실수를 기록하는 것을 수반하는 교정 절차 동안 채워질 수 있다. 동작 동안, 사용자는 참조 위상의 값 및 측정된 투영에 기초하여 테이블을 이용해서 디코딩된 실수를 추론할 수 있다.
도 4f의 예에서, 2개의 참조 위상만이 예로써 고려되며, 제한적인 것은 아니다―0 및π/6. φ=0에서, 투영들 -1, -0.8 및 1은 실수들 -9.6, 0.2 및 8.7에 각각 맵핑된다. φ=π/6에서, 투영들 -0.4, 0.6 및 0.9가 실수들 3.1, -5 및 10에 각각 맵핑된다. 따라서, 예를 들어, 사용자가 π/6의 참조 위상을 이용할 때 -0.4의 투영을 획득하면, 사용자는 디코딩된 실수가 3.1이라고 추론할 수 있다.
도 4g는 일부 실시예들에 따른, 광학 변환 유닛이 광섬유(4-708)를 포함하는 광자 시스템(4-700)의 특정 예를 도시한다. 이 예는 본 명세서에 설명된 타입들의 인코딩 기법들이 광학 통신들의 맥락에서 어떻게 이용될 수 있는지를 나타낸 것이다. 이 구현에서, 광섬유(4-708)는 송신기(4-701)를 수신기(4-702)로부터 분리한다.
송신기(4-701)는 광학 소스(4-102), 인코더(4-104) 및 광학 변조기(4-106)(도 4ba와 관련하여 전술됨)를 포함하고, 수신기(4-702)는 코히어런트 수신기(4-110) 및 디코더(4-114)(도 4ba와 관련하여 또한 전술됨)를 포함한다. 전술한 바와 같이, 일부 실시예들에서, 광학 변조기(4-106)는 단일 변조 신호(4-105)를 이용하여 구동될 수 있다. 일부 그러한 실시예들에서, 광학 변조기(4-106)는 OOK(on-off keying) 변조 방식을 구현할 수 있다.
(다른 구현들은 수신기(4-702)에서 국부 발진기들을 포함할 수 있지만) 이 구현에서는, 코히어런트 검출에 이용된 참조 신호가 수신기(4-702)에서 로컬로 생성되기보다는 송신기(4-701)로부터 직접 제공된다는 점에 유의해야 한다. 이 개념을 설명하기 위해, 예를 들어, 도 4h의 도면을 고려한다. 도 4h는 송신기(4-701)의 출력에서의 광학 필드의 전력 스펙트럼 밀도의 예를 도시한다. 도시된 바와 같이, 전력 스펙트럼 밀도는 캐리어(4-801) 뿐만 아니라 신호(4-800)를 포함한다. 신호(4-800)는 변조기(4-106)를 이용하여 인코딩된 정보를 나타낸다. 캐리어(4-801)는 광학 소스(4-102)의 파장(λ0)에서의 톤(tone)을 나타낸다. 광섬유(4-708)를 통한 이 광학 필드의 송신 시에, 코히어런트 수신기(4-110)는 캐리어(4-801) 자체를 참조 신호로서 이용하여 혼합을 수행할 수 있다.
일부 실시예들은 본 명세서에 설명된 타입들의 광자 시스템들을 제조하는 방법에 관한 것이다. 일부 실시예들에 따른 하나의 그러한 방법이 도 4i에 도시되어 있다. 방법(4-900)은 변조기가 제조되는 동작(4-902)에서 시작한다. 변조기는 단일 전기 변조 신호로 구동되도록 제조될 수 있다. 변조기의 예는 변조기(4-106)(도 4ba)이다. 동작(4-904)에서, 코히어런트 수신기가 제조된다. 일부 실시예들에서, 코히어런트 수신기는 변조기가 그 위에 제조되는 동일한 반도체 기판 상에 제조된다. 동작(4-906)에서, 광학 변환 유닛이 제조된다. 광학 변환 유닛은 코히어런트 수신기가 그 위에 제조되는 동일한 기판 상에 및/또는 변조기가 그 위에 제조되는 동일한 반도체 기판 상에 제조될 수 있다. 광학 변환 유닛은 변조기와 코히어런트 수신기 사이에 결합되도록 제조될 수 있다. 광학 변환 유닛의 예는 광학 변환 유닛(4-108)(도 4ba)이다.
Ⅴ. 차동 수신기
본 발명자들은 일부 종래의 광학 수신기들이 전압 공급들로부터 발생된 잡음, 광검출기들이 불가피하게 암전류들을 발생시킨다는 사실로부터 발생되는 잡음, 및 다른 형태들의 잡음에 특히 영향을 받는다는 것을 인식하여 알았다. 잡음의 존재는 신호-대-잡음비를 감소시키고, 따라서, 이들 광검출기들이 인입 광학 신호들을 정확하게 감지하는 능력을 감소시킨다. 이것은 이러한 광검출기들이 배치되는 시스템의 성능에 부정적인 영향을 미칠 수 있다. 예를 들어, 이것은 시스템의 비트 에러 레이트 및 전력 예산에 부정적인 영향을 미칠 수 있다.
본 발명자들은 잡음에 대한 민감성이 감소된 광학 수신기들을 개발하였다. 본 출원의 일부 실시예들은 광학-전기 변환 및 증폭 둘다 차동 방식으로 수행되는 광학 수신기들에 관한 것이다. 본 명세서에 설명된 광학 수신기들에서, 2개의 개별 신호 감산들이 발생한다. 먼저, 광전류들은 서로로부터 감산되어 차동 전류들의 쌍을 생성한다. 그 후, 결과적인 차동 전류들은 서로로부터 더 감산되어 증폭된 차동 출력을 생성한다. 본 발명자들은 다중 레벨의 신호 감산을 수반하는 광학 수신기를 갖는 것이 다중 레벨의 잡음 소거를 야기하고, 따라서 시스템으로부터의 잡음을 실질적으로 감소시킨다는 것을 인식하여 알았다. 이것은 더 넓은 동적 범위, 더 큰 신호-대-잡음비, 더 큰 출력 스윙(output swing), 및 증가된 공급 잡음 내성을 포함하여, 종래의 광학 수신기들보다 몇 가지 이점들을 가질 수 있다.
명세서에 설명된 타입들의 광학 수신기들은, 예를 들어, 텔레콤(telecom) 및 데이터콤(datacom)(로컬 영역 네트워크들, 대도시 영역 네트워크들, 광역 네트워크들, 데이터 센터 네트워크들, 위성 네트워크들 등을 포함함), 라디오-오버-파이버(radio-over-fiber)와 같은 아날로그 응용들, 전체-광학 스위칭(all-optical switching), 라이다(Lidar), 위상 어레이들, 코히어런트 이미징, 기계 학습 및 다른 타입들의 인공 지능 응용들 뿐만 아니라, 다른 응용들을 비롯한, 다양한 설정들에서 이용될 수 있다. 일부 실시예들에서, 본 명세서에 설명된 타입들의 광학 수신기들은 광자 처리 시스템의 일부로서 이용될 수 있다. 예를 들어, 일부 실시예들에서, 본 명세서에 설명된 타입들의 광학 수신기들은 도 1a의 광학 수신기(1-105)(예를 들어, 도 1i의 하나 이상의 호모다인 수신기(1-901))를 구현하는데 이용될 수 있다.
도 5a는 본 출원의 일부 비제한적인 실시예들에 따른, 광학 수신기(5-100)의 비제한적인 예를 도시한다. 도시된 바와 같이, 광학 수신기(5-100)는 광검출기들(5-102, 5-104, 5-106 및 5-108)을 포함하지만, 다른 구현들은 4개보다 많은 광검출기를 포함한다. 광검출기(5-102)는 광검출기(5-104)에 접속될 수 있고, 광검출기(5-106)는 광검출기(5-108)에 접속될 수 있다. 일부 실시예들에서, 광검출기(5-102)의 애노드는 (노드 5-103에서) 광검출기(5-104)의 캐소드에 접속되고, 광검출기(5-106)의 캐소드는 (노드 5-105에서) 광검출기(5-108)의 애노드에 접속된다. 도 5a의 예에서, 광검출기들(5-102 및 5-108)의 캐소드들은 전압 공급부 VDD에 접속되고, 광검출기들(5-104 및 5-106)의 애노드들은 참조 전위에(예를 들어, 접지에) 접속된다. 일부 실시예들에서는 반대 배열이 또한 가능하다. 참조 전위는 0과 동일하거나 -VDD와 같은 임의의 적절한 값을 갖는 전위에 있을 수 있다. VDD는 임의의 적절한 값을 가질 수 있다.
광검출기들(5-102 내지 5-108)은, 예를 들어, pn-접합 포토다이오드들, 핀-접합(pin-junction) 포토다이오드들, 애벌란시(avalanche) 포토다이오드들, 포토트랜지스터들, 포토레지스터들 등을 포함한, 임의의 수많은 방식으로 구현될 수 있다. 광검출기들은 관심 파장에서 광을 흡수할 수 있는 재료를 포함할 수 있다. 예를 들어, O-대역, C-대역 또는 L-대역의 파장들에서, 광검출기들은 비제한적인 예로서 게르마늄으로 적어도 일부가 이루어진 흡수 영역을 가질 수 있다. 가시광에 대해, 광검출기들은, 다른 비제한적인 예로서, 실리콘으로 적어도 일부가 이루어진 흡수 영역을 가질 수 있다.
광검출기들(5-102 내지 5-108)은 동일한 기판의 일부로서 모놀리식으로 형성된 통합된 컴포넌트들일 수 있다. 기판은 일부 실시예들에서, 벌크 실리콘 기판 또는 실리콘-온-절연체(silicon-on-insulator)와 같은, 실리콘 기판일 수 있다. 예를 들어, 인듐 인화물(indium phosphide) 또는 임의의 적절한 반도체 재료를 포함하는 다른 타입의 기판들도 이용될 수 있다. 제조 공차들(fabrication tolerances)로 인한 광검출기들의 특성의 변동성을 감소시키기 위해, 일부 실시예들에서, 광검출기들은 서로 아주 근접하여 배치될 수 있다. 예를 들어, 광검출기들은 1 mm2 이하, 0.1 mm2 이하 또는 0.01 mm2 이하의 영역 내에서 기판 상에 배치될 수 있다.
도 5a에 더 도시된 바와 같이, 광검출기들(5-102 내지 5-108)은 차동 연산 증폭기(5-110)에 접속된다. 예를 들어, 광검출기들(5-102 및 5-104)은 DOA(5-110)의 비반전 입력("+")에 접속될 수 있고, 광검출기들(5-106 및 5-108)은 DOA(5-110)의 반전 입력("-")에 접속될 수 있다. DOA(5-110)는 출력들의 쌍을 갖는다. 하나의 출력은 반전이고 하나의 출력은 비반전이다.
일부 실시예들에서, 도 5b와 관련하여 상세히 설명되는 바와 같이, 광검출기들(5-102 및 5-106)은 동일한 광학 신호 "t"를 수신하도록 배열될 수 있고, 광검출기들(5-104 및 5-108)은 동일한 광학 신호 "b"를 수신하도록 배열될 수 있다. 일부 실시예들에서, 광검출기들(5-102 내지 5-108)은 실질적으로 서로 동일하도록 설계될 수 있다. 예를 들어, 광검출기들(5-102 내지 5-108)은 동일한 프로세스 단계들을 이용하고 동일한 포토마스크 패턴들을 이용하여 형성될 수 있다. 이러한 실시예들에서, 광검출기들(5-102 내지 5-108)은 실질적으로 동일한 응답도(광전류와 수신된 광학 전력 사이의 비율) 및/또는 실질적으로 동일한 암전류(광학 전력이 수신되지 않을 때 발생된 전류)와 같은, 실질적으로 동일한 특성들을 나타낼 수 있다. 이러한 실시예들에서, 신호 t의 수신에 응답하여 광검출기들(5-102 및 5-106)에 의해 생성된 광전류들은 실질적으로 서로 동일할 수 있다. 그러한 광전류들은 도 5a에서 "it"로서 식별된다. 광검출기들(5-102 및 5-106)의 배향들로 인해, 광검출기들(5-102 및 5-106)에 의해 생성된 광전류들은 반대 방향들로 배향된다는 점에 유의해야 한다. 즉, 광검출기(5-102)의 광전류는 노드(5-103) 쪽으로 지향되고, 광검출기(5-106)의 광전류는 노드(5-105)로부터 멀리 배향된다. 더욱이, 신호 b의 수신에 응답하여 광검출기들(5-104 및 5-108)에 의해 생성된 광전류들은 실질적으로 서로 동일할 수 있다. 그러한 광전류들은 "ib"로서 식별된다. 서로에 대한 광검출기들(5-104 및 5-108)의 배향들로 인해, 광검출기들(5-104 및 5-108)에 의해 생성된 광전류들은 반대 방향들로 배향된다. 즉, 광검출기(5-108)의 광전류는 노드(5-105) 쪽으로 지향되고, 광검출기(5-104)의 광전류는 노드(5-103)로부터 멀리 배향된다.
광검출기들의 배향들의 관점에서, 진폭 it-ib를 갖는 전류가 노드(5-103)로부터 나오고, 진폭 ib-it를 갖는 전류가 노드(5-105)로부터 나온다. 따라서, 전류들은 실질적으로 동일한 진폭들을 갖지만 반대 부호들을 갖는다. 광검출기들(5-102 내지 5-108)은 암전류들을 생성할 수 있다. 암전류들은 전형적으로 누설에 기인하며, 광검출기가 광에 노출되는지 여부에 관계없이 광검출기로부터 발생한다. 인입 광학 신호들의 부재시에도 암전류들이 발생하기 때문에, 암전류들은 광학 수신기에서의 잡음에 사실상 기여한다. 본 발명자들은 이러한 암전류들의 부정적인 영향들이 전술한 전류 감산 덕분에 상당히 감쇠될 수 있다는 것을 알았다. 따라서, 도 5a의 예에서, 광검출기(5-102)의 암전류 및 포토다이오드(5-104)의 암전류는 실질적으로 서로 상쇄되고(또는 적어도 상호 실질적으로 감소됨), 따라서 광검출기(5-106 및 5-108)의 암전류들을 제거한다. 결과적으로, 암전류들의 존재로 인한 잡음이 크게 감쇠된다.
도 5b는 일부 비제한적인 실시예들에 따른, 광검출기들(5-102 내지 5-108)에 2개의 광학 신호들을 제공하도록 배열된 광자 회로(5-200)를 도시한다. 광자 회로(5-200)는 광학 신호들을 광검출기들로 라우팅하기 위한 광학 도파관들을 포함할 수 있다. 광학 도파관들은 관심 파장에서 광에 대해 투명하거나 적어도 부분적으로 투명한 재료로 만들어질 수 있다. 예를 들어, 광학 도파관들은 실리콘, 실리콘 산화물, 실리콘 질화물, 인듐 인화물, 갈륨 비화물, 또는 임의의 다른 적절한 재료로 만들어진다. 도 5b의 예에서, 광자 회로(5-200)는 입력 광학 도파관들(5-202 및 5-204) 및 커플러들(5-212, 5-214 및 5-216)을 포함한다. 더 도시된 바와 같이, 광자 회로(5-200)의 출력 광학 도파관들은 광검출기들(5-102 내지 5-108)에 결합된다.
도 5b의 예에서, 커플러들(5-212, 5-214 및 5-216)은 지향성 커플러들을 포함하며, 여기서 소멸성 결합은 인접한 도파관들 사이에서 광학 전력의 전달을 가능하게 한다. 그러나, Y-접합들, X-접합들, 광학 크로스오버들, 반대-방향 커플러들 등과 같은 다른 타입들의 커플러들이 이용될 수 있다. 다른 실시예들에서, 광자 회로(5-200)는 다중 모드 간섭계(MMI)로 구현될 수 있다. 일부 실시예들에서, 커플러들(5-212, 5-214 및 5-216)은 (50%-50% 결합 비율을 갖는) 3dB 커플러들일 수 있지만, 51%-49%, 55%-45% 또는 60%-40%와 같은 다른 비율들도 가능하다. 제조 공차들로 인해, 실제 결합 비율은 의도된 결합 비율로부터 약간 벗어날 수 있다는 것을 알아야 한다.
신호 s1은 입력 광학 도파관(5-202)에 제공될 수 있고, 신호 s2는 입력 광학 도파관(204)에 제공될 수 있다. 신호들 s1 및 s2는, 예를 들어, 광섬유들을 이용하여 개개의 입력 광학 도파관들에 제공될 수 있다. 일부 실시예들에서, s1은 참조 레이저에 의해 생성된 신호와 같은 참조 국부 발진기 신호를 나타내고, s2는 검출될 신호를 나타낸다. 그와 같이, 광학 수신기는 호모다인 광학 수신기로 간주될 수 있다. 일부 그러한 실시예들에서, s1은 연속파(continuous wave)(CW) 광학 신호일 수 있는 반면, s2는 변조될 수 있다. 다른 실시예들에서, 본 출원은 임의의 특정 타입의 신호에 제한되지 않으므로, 두 신호들은 변조되거나, 두 신호들은 CW 광학 신호들이다.
도 5b의 예에서, 신호 s1은 진폭 ALO 및 위상 θ를 가지며, 신호 s2는 진폭 AS 및 위상 φ를 갖는다. 커플러(5-212)는 신호들 t 및 b가 커플러(5-212)의 개개의 출력들에서 나오도록 신호들 s1 및 s2를 결합한다. 커플러(5-212)가 3dB 커플러인 실시예들에서, t 및 b는 다음의 표현으로 주어질 수 있다:
Figure pct00170
그리고 (t 및 b 각각의) 전력들 T 및 B는 다음의 표현들에 의해 주어질 수 있다:
Figure pct00171
따라서, 커플러들(5-214 및 5-216)이 3dB 커플러들인 실시예들에서, 광검출기들(5-102 및 5-106) 각각은 T/2에 의해 주어진 전력을 수신할 수 있고, 광검출기들(5-104 및 5-108) 각각은 B/2에 의해 주어진 전력을 수신할 수 있다.
도 5a를 다시 참조하면, 그리고 광검출기들(5-102 내지 5-108)의 응답성들이 모두 서로 동일한 것으로 가정하면(모든 실시예들이 이 점에서 제한되는 것은 아님), 노드(5-103 및 5-105)로부터 나오는 전류들은 각각 다음의 표현들에 의해 주어질 수 있다:
Figure pct00172
DOA(5-110)는 "+" 및 "-" 입력들에서 수신된 차동 신호를 증폭하고, 전압들 Vout,n 및 Vout,p에 의해 도 5a에 표현된 증폭된 차동 출력을 생성하도록 배열된다. 일부 실시예들에서, DOA(5-110)는, 임피던스들 z와 결합하여, 차동 전류 쌍(ib-it, it-ib)에 기초하여 차동 전압 쌍(Vout,n, Vout,p)을 생성한다는 점에서, 차동 트랜스임피던스 증폭기로서 보여질 수 있다. 일부 실시예들에서, Vout,n, Vout,p 각각은 전류 it-ib와 전류 ib-it 사이의 차이에 비례할 수 있으며, 따라서 다음의 표현들을 야기한다:
Figure pct00173
이 차동 전압들의 쌍은 아날로그-대-디지털 변환기(도 5a에 도시되지 않음)를 포함하지만 이에 한정되지 않는 임의의 적절한 전자 회로에 대한 입력으로서 제공될 수 있다. 광학 수신기(5-100)가 2개 레벨의 잡음 제거를 제공한다는 점에 유의해야 한다. 제1 레벨의 잡음 제거는 광전류들의 감산 덕분에 발생하고, 제2 레벨의 잡음 제거는 차동 증폭 스테이지에서 발생하는 감산 덕분에 발생한다. 이는 잡음 제거의 상당한 증가를 초래한다.
도 5a의 예에서, 임피던스들 z는 서로 동일한 것으로 도시되지만, 다른 실시예들에서는 상이한 임피던스들이 이용될 수 있다. 이러한 임피던스들은 저항기들, 커패시터들 및 인덕터들과 같은 수동 전기 컴포넌트들, 및/또는 다이오드 및 트랜지스터들과 같은 능동 전자 컴포넌트들을 포함할 수 있다. 이러한 임피던스들을 구성하는 컴포넌트들은 다른 가능한 특성들 중에서, 원하는 이득 및 대역폭을 제공하도록 선택될 수 있다.
앞서 논의된 바와 같이, 광학 수신기(5-100)는 기판 상에 모놀리식으로 통합될 수 있다. 하나의 그러한 기판이 일부 비제한적인 실시예들에 따라 도 5ca에 도시되어 있다. 이 예에서, 광검출기들(5-102 내지 5-108), 광자 회로(5-200) 및 DOA(5-110)는 기판(5-301)의 일부로서 모놀리식으로 통합된다. 다른 실시예에서, 광검출기들(5-102 내지 5-108) 및 광자 회로(5-200)는 기판(5-301) 상에 통합될 수 있고, DOA(5-110)는 별개의 기판(5-302) 상에 통합될 수 있다. 도 5cb의 예에서, 기판들(5-301 및 5-302)은 서로 플립-칩 본딩된다. 도 5cc의 예에서, 기판들(5-301 및 5-302)은 서로 와이어 본딩된다. 또 다른 예(도시되지 않음)에서, 광검출기들(5-102 내지 5-108) 및 광자 회로(5-200)는 별개의 기판들 상에 제조될 수 있다.
본 출원의 일부 실시예들은 광학 수신기들을 제조하기 위한 방법들에 관한 것이다. 하나의 그러한 방법이 일부 비제한적인 실시예들에 따라 도 5d에 도시되어 있다. 방법(5-400)은 복수의 광검출기들이 제1 기판 상에 제조되는 동작(5-402)에서 시작한다.
일단 제조되면, 광검출기들은, 예를 들어, 도 5a에 도시된 배열로 함께 접속될 수 있다. 일부 실시예들에서, 광검출기들은 1 mm2 이하, 0.1 mm2 이하 또는 0.01 mm2 이하의 영역 내에서 제1 기판 상에 배치될 수 있다. 동작(5-404)에서, 제1 기판 상에 광자 회로가 제조된다. 광자 회로는 광학 신호들의 쌍을 광검출기들에, 예를 들어, 도 5b에 도시된 방식으로 제공하도록 배열될 수 있다. 동작(5-406)에서, 차동 연산 증폭기가 제2 기판 상에 제조될 수 있다. 차동 연산 증폭기의 예는 도 5a의 DOA(5-110)이다. 동작(5-408)에서, 제1 기판은, 예를 들어, (도 5ca에 도시된 바와 같은) 플립-칩 본딩, (도 5cb에 도시된 바와 같은) 와이어 본딩을 통해, 또는 임의의 다른 적절한 본딩 기술을 이용하여, 제2 기판에 본딩될 수 있다. 기판들이 본딩되면, 제1 기판의 광검출기들은, 예를 들어, 도 5a에 도시된 방식으로 제2 기판의 차동 연산 증폭기에 전기적으로 접속될 수 있다.
제조 프로세스들의 예들은 일부 실시예들에 따른, 도 5da 내지 도 5df에 개략적으로 도시되어 있다. 도 5da는 하부 클래딩(5-412)(예를 들어, 매립 산화물 층 또는 다른 타입들의 유전체 재료들과 같은 산화물 층) 및 반도체 층(5-413 (예를 들어, 실리콘 층 또는 실리콘 질화물 층, 또는 다른 타입들의 재료 층들)을 갖는 기판(5-301)을 도시한다. 도 5db에서, 반도체 층(5-413)은, 예를 들어, 포토리소그래피 노출을 이용하여 패터닝되어, 영역들(5-414)을 형성한다. 영역들(5-414)은 일부 실시예들에서 광학 도파관들을 형성하도록 배열될 수 있다. 일부 실시예들에서, 결과적인 패턴은, 도파관들(5-202 및 204) 및 커플러들(5-212, 5-214 및 5-216)이 하나 이상의 영역(5-414)에 내장되는, 광자 회로(5-200)(도 5b)와 유사하다. 도 5dc에서, 광검출기들(5-102, 5-104, 5-106, 5-108)(그리고, 선택적으로 다른 광검출기들)이 형성된다. 이 예에서, 광학 흡수 재료(5-416)는 영역(5-414)에 인접하도록 퇴적된다. 광학 흡수 재료(5-416)는 광검출기들을 형성하도록 패터닝될 수 있다. 광학 흡수 재료에 이용되는 재료는 검출될 파장에 의존할 수 있다. 예를 들어, L-대역, C-대역 또는 O-대역에서의 파장들에 대해 게르마늄이 이용될 수 있다. 실리콘은 가시 파장들에 대해 이용될 수 있다. 물론, 다른 재료들이 또한 가능하다. 광학 흡수 재료(5-416)는, 제한적인 것은 아니지만, 버트 결합(butt coupling), 테이퍼 결합(taper coupling) 및 소멸 결합(evanescent coupling)을 포함하는 임의의 적절한 방식으로 영역들(5-414)에 광학적으로 결합되도록 배치될 수 있다.
도 5dd에서, DOA(5-110)가 형성된다. 일부 실시예들에서, DOA(5-110)는 이온 주입을 통해 형성된 수 개의 트랜지스터들을 포함한다. 도 5dd는 DOA(5-110)의 하나 이상의 트랜지스터의 일부를 형성할 수 있는 주입된 영역들(5-418)을 도시한다. 하나의 이온 주입만이 도 5dd에 도시되어 있지만, 일부 실시예들에서, DOA(5-110)의 형성은 하나보다 많은 이온 주입들을 수반할 수 있다. 추가적으로, DOA(5-110)는, 예를 들어, 기판(5-301) 상에 형성된 하나 이상의 도전성 트레이스를 통해 광검출기들에 전기적으로 접속될 수 있다.
도 5dd의 배열은 광자 회로(5-200), 광검출기들(5-102 내지 5-108) 및 DOA(5-110)가 (도 5ca에 도시된 바와 같이) 공통 기판 상에 형성되도록 되어 있다. DOA(5-110)가 (도 5cb 또는 도 5cc에 도시된 바와 같이) 별개의 기판 상에 형성되는 배열들도 가능하다. 하나의 그러한 예에서, DOA(5-110)는 도 5de에 도시된 바와 같이 별개의 기판(5-302) 상에 형성되고, 여기서 주입된 영역들(5-428)은 하나 이상의 이온 주입을 통해 형성된다.
후속하여, 기판(5-301)은 기판(5-302)에 본딩되고, 광검출기들(5-102 내지 5-108)은 DOA(5-110)에 접속된다. 도 5df에서, 도전성 패드들(5-431)이 형성되어 광학 흡수 재료(5-416)와 전기 통신하도록 배치되고, 도전성 패드들(5-432)이 형성되어 주입된 영역들(5-428)과 전기 통신하도록 배치된다. 도전성 패드들은 (도 5df에 도시된 바와 같이) 와이어 본딩을 통해 또는 플립-칩 본딩을 통해 전기적으로 접속된다.
일부 실시예들은 입력 광학 신호들을 수신하기 위한 방법들에 관한 것이다. 일부 그러한 실시예들은 호모다인 검출을 수반할 수 있지만, 본 출원은 이 점에 제한되지 않는다. 다른 실시예들은 헤테로다인 검출을 수반할 수 있다. 또 다른 실시예들은 직접 검출을 수반할 수 있다. 일부 실시예들에서, 광학 신호들의 수신은 광학 수신기(5-100)(도 5a)를 수반할 수 있지만, 다른 타입들의 수신기들이 이용될 수 있다.
일부 실시예들에 따른, 입력 광학 신호를 수신하는 방법의 예가 도 5e에 도시되어 있다. 방법(5-500)은 동작(5-502)에서 시작하고, 여기서 입력 신호는 참조 신호와 결합되어 제1 및 제2 광학 신호들을 획득한다. 입력 신호는, 다른 타입들의 변조 중에서, 예를 들어, 진폭 변조, 펄스 폭 변조, 위상 또는 주파수 변조 형태의 데이터로 인코딩될 수 있다. 호모다인 검출을 수반하는 실시예들 중 일부에서, 참조 신호는 국부 발진기(예를 들어, 레이저)에 의해 생성된 신호일 수 있다. 다른 실시예들에서, 참조 신호는 또한 데이터로 인코딩될 수 있다. 일부 실시예들에서, 입력 신호 및 참조 신호는 광자 회로(5-200)(도 5b)를 이용하여 결합되지만, MMI들, Y-접합들, X-접합들, 광학 크로스오버들, 및 반대 방향 커플러들을 포함하지만, 이들로 제한되지 않는, 다른 타입들의 광학 결합기들이 이용될 수 있다. 광자 회로(5-200)가 이용되는 실시예에서, t 및 b는 입력 신호와 참조 신호의 결합으로부터 얻어진 신호들을 나타낼 수 있다.
동작(5-504)에서, 차동 전류들의 쌍을 생성하기 위해 제1 광학 신호가 제1 광검출기 및 제2 광검출기로 검출되고, 제2 광학 신호가 제3 광검출기 및 제4 광검출기로 검출된다. 일부 실시예들에서, 동작(5-504)은 광학 수신기(5-100)(도 5a)를 이용하여 수행될 수 있다. 일부 그러한 실시예들에서, 제1 광학 신호는 광검출기들(5-102 및 5-106)로 검출되고, 제2 광학 신호는 광검출기들(5-104 및 5-108)로 검출된다. 생성된 차동 전류들의 쌍은 집합적으로 전류들 ib-it 및 it-ib에 의해 표현된다. 차동인 것에 의해, 일부 실시예들에서, 전류들의 쌍은 실질적으로 동일한 진폭들을 가질 수 있지만, 실질적으로 반대 위상들(예를 들어, π-위상 차이)을 가질 수 있다.
동작(5-506)에서, 차동 연산 증폭기(예를 들어, 도 5a의 DOA(5-110))는 동작(5-504)에서 생성된 차동 전류들의 쌍을 이용하여 증폭된 차동 전압들의 쌍을 생성한다. DOA(5-110)를 이용하는 실시예들에서, 생성된 차동 전압들의 쌍은 전압들 Vout,n 및 Vout,p에 의해 표현된다. 차동인 것에 의해, 일부 실시예들에서, 전압들의 쌍은 실질적으로 동일한 진폭들을 가질 수 있지만, 실질적으로 반대 위상들(예를 들어, π-위상 차이)을 가질 수 있다.
방법(5-500)은, 예를 들어, 보다 넓은 동적 범위, 보다 큰 신호-대-잡음비, 보다 큰 출력 스윙, 및 증가된 공급 잡음 내성을 포함한, 광학 신호들을 수신하기 위한 종래의 방법들에 비해 하나 이상의 이점을 가질 수 있다.
Ⅵ. 위상 변조기
본 발명자들은 특정 광학 위상 변조기들이 높은 동적 손실 및 낮은 변조 속도를 겪으며, 그것은 이들 위상 변조기들이 배치될 수 있는 응용들의 범위를 상당히 제한한다는 것을 인식하여 알았다. 더 구체적으로, 일부 위상 변조기들은 변조 속도와 동적 손실 사이의 상당한 트레이드오프들을 수반하며, 따라서 변조 속도의 증가는 동적 손실의 증가를 야기한다. 본 명세서에서 이용된 바와 같이, "동적 손실"이라는 문구는 그 위상이 변조되는 정도에 의존하는 광학 신호가 겪는 광학 전력 손실을 지칭한다. 이상적인 위상 변조기들은 전력 손실이 위상 변조와 독립적이도록 한다. 그러나, 실세계의 위상 변조기들은 변조가 발생하지 않을 때 소정의 전력 손실을 겪고, 변조가 발생할 때 상이한 전력 손실을 겪는다. 예를 들어, 무위상 변조에서 겪게 되는 전력 손실은 L1일 수 있고, π/2 위상 변조에서 겪게 되는 전력 손실은 L2일 수 있고, π 위상 변조에서 겪게 되는 전력 손실은 L3일 수 있으며, L1, L2 및 L3은 서로 상이하다. 이러한 거동은 위상 변조에 더하여 신호가 진폭 변조를 더 겪기 때문에 바람직하지 않다.
또한, 일부 그러한 위상 변조기들은 충분히 큰 위상 시프트들을 제공하기 위해 수백 마이크로미터의 길이를 필요로 한다. 불행하게도, 오래 동안, 그러한 위상 변조기들은 단일 칩 상에 여러 위상 시프터들의 통합을 요구하는 응용들에서 이용하기에 적합하지 않다. 위상 변조기들은 단독으로 칩 상에서 이용가능한 공간의 대부분을 차지할 수 있고, 따라서 동일한 칩 상에 함께 통합될 수 있는 디바이스들의 수를 제한한다.
특정 위상 변조기들의 전술한 제한들을 인식하여, 본 발명자들은 동적 손실을 제한하면서 (예를 들어, 6-100MHz 또는 1GHz를 초과하는) 높은 변조 속도들을 제공할 수 있는 작은 풋프린트-광학 위상 변조기들을 개발하였다. 일부 실시예들에서, 위상 변조기는 300 μm2 만큼 작은 면적을 차지할 수 있다. 따라서, 예로서, 1 cm2의 면적을 갖는 레티클(reticle)은 다른 디바이스들에 대해 추가적인 50 mm2를 절감하면서 15,000 위상 변조기들만큼을 수용할 수 있다.
일부 실시예들은 서로 인접하여 배치되고 그 사이에 복수의 슬롯들을 형성하는 다수의 서스펜딩된 광학 도파관들을 갖는 NOEMS(Nano-Opto-Electromechanical Systems) 위상 변조기에 관한 것이다. 슬롯들의 치수는 슬롯 도파관들을 형성하기에 충분히 작으며, 따라서 모드 에너지의 상당 부분(예를 들어, 대부분)이 슬롯 자체에 한정된다. 이러한 모드들은 본 명세서에서 슬롯 모드들이라고 지칭된다. 슬롯들에서 모드 에너지의 상당 부분을 갖는 것은, 슬롯들의 치수들에서의 변동들을 야기함으로써, 모드의 유효 굴절률, 및 모드를 구현하는 광학 신호의 위상의 결과의 변조를 가능하게 한다. 일부 실시예들에서, 위상 변조는 슬롯들의 치수들의 변동들을 야기하는 기계적 힘들을 가함으로써 달성될 수 있다.
본 발명자들은 본 명세서에 설명된 NOEMS 위상 변조기들로 달성가능한 변조 속도가, 광학 변조가 발생하는 영역으로부터 기계적 드라이버들을 분리함으로써, 동적 손실의 상당한 증가 없이, 증가될 수 있다는 것을 인식하여 알았다. 기계적 드라이버들이 광학 변조 영역으로부터 분리되는 위상 변조기들에서, 전기 구동 신호들은 광학 변조 영역 자체에 인가되기보다는 기계적 드라이버들에 인가된다. 이러한 배열은 광학 변조 영역을 전기적으로 도전성으로 만들 필요성을 제거하여, 이 영역의 도핑의 감소를 가능하게 한다. 낮은 도핑은, 그렇지 않은 경우 광 흡수로 이어질 수 있는 자유 캐리어들의 감소로 이어지며, 따라서 동적 손실을 낮출 수 있다.
더욱이, 광학 변조 영역으로부터 기계적 드라이버들을 분리하는 것은 단위 길이당 더 큰 변조를 가능하게 하고, 결과적으로 더 짧은 변조 영역을 가능하게 한다. 더 짧은 변조 영역들은 이번에는 더 큰 변조 속도를 가능하게 한다.
본 발명자들은 변조 영역에 다수의 슬롯들을 포함하는 것이 위상 변조기의 길이의 추가 감소(그에 의해 그 크기의 감소)를 가능하게 할 수 있다는 것을 더 인식하여 알았다. 사실상, 하나보다 많은 슬롯을 가지면, 광이 변조 영역에 결합되는 전이 영역의 길이가 상당히 감소될 수 있다. 그 결과는 실질적으로 더 콤팩트한 폼 팩터(form factor)이다. 따라서, 본 명세서에 설명된 타입들의 NOEMS 위상 변조기들은 더 짧은 변조 영역들 및/또는 더 짧은 전이 영역들을 가질 수 있다. 일부 실시예들에서, 본 명세서에 설명된 타입들의 위상 변조기들은 20 ㎛ 또는 30 ㎛만큼 작은 길이를 가질 수 있다.
아래에 더 상세히 설명되는 바와 같이, 일부 실시예들은 트렌치가 칩에 형성되고, 변조 도파관들이 공기 중에 서스펜딩되고 공간에서 자유롭게 이동하도록 배열되는 위상 변조기들에 관한 것이다.
본 발명자들은 클래딩/에어 인터페이스들의 형성으로 인한 트렌치들의 이용과 연관된 잠재적인 단점을 인식하였다. 전파하는 광학 신호가 트렌치에 진입(또는 그로부터 진출)할 때, 그것은 클래딩/에어 인터페이스(또는 에어/클래딩 인터페이스)에 직면한다. 불행하게도, 인터페이스의 존재는 광학 반사들을 발생시킬 수 있고, 이는 결국 삽입 손실들을 증가시킬 수 있다. 본 발명자들은 인터페이스를 통과하는 영역에서 광학 모드의 물리적 확장을 감소시킴으로써 그러한 인터페이스의 부정적 효과가 완화될 수 있다는 것을 알았다. 이것은 다양한 방식들로 달성될 수 있다. 예를 들어, 일부 실시예들에서, 광학 모드의 확장은 리브(rib) 도파관 내에 모드를 단단히 제한함으로써 감소될 수 있다. 리브 도파관은 모드 에너지의 작은 분율(예를 들어, 20% 미만, 10% 미만, 또는 5% 미만)만이 도파관의 에지들 외부에 있도록 크기가 정해질 수 있다.
본 명세서에 설명된 타입들의 NOEMS 위상 변조기들은, 예를 들어, 텔레콤 및 데이터콤(로컬 영역 네트워크들, 대도시 영역 네트워크들, 광역 네트워크들, 데이터 센터 네트워크들, 위성 네트워크들 등을 포함함), 라디오-오버-파이버와 같은 아날로그 응용들, 전체-광학 스위칭, 코히어런트 라이다(coherent Lidar), 위상 어레이들, 코히어런트 이미징, 기계 학습 및 다른 타입들의 인공 지능 응용들을 포함하는 다양한 응용들에서 이용될 수 있다. 추가적으로, NOEMS 변조기들은, 예를 들어, 마하 젠더 변조기와 결합되는 경우 진폭 변조기들의 일부로서 이용될 수 있다. 예를 들어, 마하 젠더 변조기의 암(arm)들 중 하나 이상에 NOEMS 위상 변조기가 배치되는 마하 젠더 변조기가 제공될 수 있다. 예를 들어, ASK(amplitude shift keying), QAM(quadrature amplitude modulation), BPSK(phase shift keying), QPSK(quadrature phase shift keying) 및 고차 QPSK(higher order QPSK), OQPSK(offset quadrature phase-shift keying), DPQPSK(Dual-polarization quadrature phase shift keying), APSK(amplitude phase shift keying) 등을 비롯한, 수 개의 변조 방식들이 NOEMS 위상 변조기들을 이용하여 인에이블될 수 있다. 추가적으로, NOEMS 위상 변조기들은 광학 신호의 위상이 예측불가능하게 드리프트하는 경향이 있는 응용들에서 위상 정정기들(phase correctors)로서 이용될 수 있다. 일부 실시예들에서, 본 명세서에 설명된 타입들의 NOEMS 위상 변조기들은 광자 처리 시스템의 일부로서 이용될 수 있다. 예를 들어, 일부 실시예들에서, 본 명세서에 설명된 타입들의 NOEMS 위상 변조기들은 도 1b의 위상 변조기들(1-207)을 구현하고/하거나, 도 1d의 가변 빔 스플리터들(1-401)의 일부를 구현하고/하거나, 도 1e의 위상 시프터들(1-505, 1-507 및 1-509)을 구현하고/하거나, 도 1f의 위상 변조기(1-601)를 구현하고/하거나, 도 1f의 진폭 변조기들(1-603)의 일부를 구현하고/하거나, 도 1b의 진폭 변조기들(1-205)의 일부를 구현하는데 이용될 수 있다.
도 6aa는 일부 비제한적인 실시예들에 따른, NOEMS 위상 변조기를 개략적으로 도시하는 평면도이다. NOEMS 위상 변조기(6-100)는 입력 도파관(6-102), 출력 도파관(6-104), 입력 전이 영역(6-140), 출력 전이 영역(6-150), 서스펜딩된 멀티-슬롯 광학 구조체(6-120), 기계적 구조체들(6-130 및 6-132), 및 기계적 드라이버들(6-160 및 6-162)을 포함한다. NOEMS 위상 변조기(6-100)는 실리콘 광자 기법들을 이용하여 제조될 수 있다. 예를 들어, NOEMS 위상 변조기(6-100)는, 벌크 실리콘 기판 또는 SOI(silicon-on-insulator) 기판과 같이, 실리콘 기판 상에 제조될 수 있다. 일부 실시예들에서, NOEMS 위상 변조기(6-100)는 기계적 드라이버들(6-160 및 6-162)의 동작들을 제어하도록 구성된 전자 회로를 추가로 포함할 수 있다. 전자 회로는 도 6aa의 컴포넌트들을 호스팅하는 동일한 기판 상에, 또는 별개의 기판 상에 제조될 수 있다. 별개의 기판 상에 배치될 때, 기판들은 3D-본딩, 플립-칩 본딩, 와이어 본딩 등을 포함하는 임의의 적절한 방식으로 서로 본딩될 수 있다.
NOEMS 위상 변조기(6-100)의 적어도 일부는 트렌치(6-106)에 형성된다. 아래에 더 상세히 설명되는 바와 같이, 본 명세서에 설명된 타입들의 트렌치들은 클래딩의 일부를 에칭함으로써 형성될 수 있다. 도 6aa의 예에서, 트렌치(6-106)는 직사각형 형상을 갖지만, 임의의 다른 적당한 형상의 트렌치들이 이용될 수 있다. 이 예에서, 트렌치(6-106)는 4개의 측벽들을 갖는다. 측벽들(6-112 및 6-114)은 z-축(여기서는 전파 축이라고 지칭됨)을 따라 서로 이격되어 있고, 다른 2개의 측벽들(도 6aa에 라벨링되지 않음)은 x-축을 따라 서로 이격되어 있다.
일부 실시예들에서, 측벽들(6-112 및 6-114) 사이의 z-축을 따른 분리는 50㎛ 이하, 30㎛ 이하, 또는 20㎛ 이하일 수 있다. 따라서, 이 NOEMS 위상 변조기의 변조 영역은 광학 신호의 위상을 변조하기 위해 수백 마이크로미터를 필요로 하는 다른 타입들의 위상 변조기들보다 상당히 짧다. 비교적 짧은 길이는 다음의 인자들 중 하나 이상에 의해 가능하다. 첫째, 다수의 슬롯들을 갖는 것은 광학 변조 영역과의 결합을 개선하며, 이는 차례로 전이 영역의 길이의 감소를 가능하게 한다. 개선된 결합은 멀티-슬롯 구조체에서의 강화된 모드 대칭성의 결과일 수 있다. 둘째, 광학 변조 영역으로부터 기계적 드라이버들을 분리하는 것은 단위 길이당 더 큰 변조를 가능하게 하고, 결과적으로 더 짧은 변조 영역을 가능하게 한다.
동작 동안, 광학 신호가 입력 도파관(6-102)에 제공될 수 있다. 일례에서, 광학 신호는 연속파(CW) 신호일 수 있다. 위상 변조는 서스펜딩된 멀티-슬롯 광학 구조체(6-120)에서 발생될 수 있다. 위상 변조된 광학 신호는 출력 도파관(6-104)으로부터 NOEMS 위상 변조기(6-100)를 빠져나갈 수 있다. 전이 영역(6-140)은 입력 도파관(6-102)과 서스펜딩된 멀티-슬롯 광학 구조체(6-120) 사이의 무손실 또는 거의 무손실 광학 결합을 보장할 수 있다. 유사하게, 전이 영역(6-150)은 서스펜딩된 멀티-슬롯 광학 구조체(6-120)와 출력 도파관(6-104) 사이의 무손실 또는 거의 무손실 광학 결합을 보장할 수 있다. 전이 영역들(6-140 및 6-150)은, 이하에서 추가로 상세히 설명되는 바와 같이, 일부 실시예들에서 테이퍼링된 도파관들(tapered waveguides)을 포함할 수 있다. 앞서 논의된 바와 같이, 전이 영역들의 길이는 다른 구현들에 비해 더 짧을 수 있다.
입력 광학 신호는 O-대역, E-대역, S-대역, C-대역 또는 L-대역에서의 파장을 포함하지만 이에 제한되지 않는 임의의 적절한 파장을 가질 수 있다. 대안적으로, 파장은 850nm 대역에 또는 가시 대역에 있을 수 있다. NOEMS 위상 변조기(6-100)는, 재료가 관심 파장에서 투명하거나 적어도 부분적으로 투명하고 코어 영역의 굴절률이 주변 클래딩의 굴절률보다 큰 한, 임의의 적절한 재료로 만들어질 수 있다는 것을 이해해야 한다. 일부 실시예들에서, NOEMS 위상 변조기(6-100)는 실리콘으로 만들어질 수 있다. 예를 들어, 입력 도파관(6-102), 출력 도파관(6-104), 입력 전이 영역(6-140), 출력 전이 영역(6-150), 서스펜딩된 멀티-슬롯 광학 구조체(6-120), 및 기계적 구조체들(6-130 및 6-132)은 실리콘으로 만들어질 수 있다. 실리콘의 비교적 낮은 광학 밴드갭(대략 1.12eV)이 주어지면, 실리콘은 근적외선 파장들과 관련하여 이용하기에 특히 적합할 수 있다. 다른 예에서, NOEMS 위상 변조기(6-100)는 실리콘 질화물 또는 다이아몬드로 만들어질 수 있다. 실리콘 질화물 및 다이아몬드의 비교적 높은 광학 밴드갭들(각각 대략 5eV 및 대략 5.47eV)이 주어지면, 이러한 재료들은 가시 파장들과 관련하여 이용하기에 특히 적합할 수 있다. 그러나, 인듐 인화물, 갈륨 비화물, 및 또는 임의의 적절한 Ⅲ-Ⅴ 또는 Ⅱ-Ⅵ 합금을 포함하는 다른 재료들도 가능하다.
일부 실시예들에서, 입력 도파관(6-102) 및 출력 도파관(6-104)은 (다중 모드 도파관들이 또한 이용될 수 있지만) 동작의 파장에서 단일 모드를 지원하도록 크기가 정해질 수 있다. 예를 들어, NOEMS 위상 변조기가 1550 nm에서 동작하도록 설계되어 있는 경우(물론, 모든 실시예들이 이 점에서 제한되는 것은 아님), 입력 및 출력 도파관들(6-102 및 6-104)은 1550 nm에서 단일 모드를 지원할 수 있다. 이러한 방식으로, 도파관 내의 모드 제한이 향상될 수 있고, 따라서 산란 및 반사들로 인한 광학 손실을 감소시킬 수 있다. 도파관들(6-102 및 6-104)은 리브 도파관들(예를 들어, 직사각형 단면들을 가짐)일 수 있거나 임의의 다른 적절한 형상을 가질 수 있다.
전술한 바와 같이, 변조 영역에서의 도파관들이 공기에 의해 둘러싸이고 공간에서 자유롭게 이동하도록, NOEMS 위상 변조기(6-100)의 일부가 트렌치(6-106) 내에 형성될 수 있다. 트렌치를 포함하는 것의 단점은 전파 경로를 따르는 클래딩/에어 인터페이스 및 에어/클래딩 인터페이스의 형성이다. 따라서, 입력 광학 신호는 변조가 발생하는 영역에 도달하기 전에 (측벽(6-112)에 대응하는) 클래딩/에어 인터페이스를 통과하고, 변조 영역 후에 (측벽(6-114)에 대응하는) 에어/클래딩 인터페이스를 통과한다. 이들 인터페이스들은 반사 손실들을 도입할 수 있다. 일부 실시예들에서, (도 6aa에 도시된 바와 같이) 트렌치(6-106)의 외부가 아니라 내부에 전이 영역(6-140)을 위치시킴으로써 반사 손실들이 감소될 수 있다. 이러한 방식으로, 전이 영역과 연관된 모드 확장은 광학 신호가 클래딩/에어 인터페이스를 이미 통과한 곳에서 발생한다. 즉, 모드는, 서스펜딩된 멀티-슬롯 구조체(6-120)에 결합할 목적으로, 전이 영역을 이용하여, 클래딩/에어 인터페이스를 통과할 때 엄격하게 제한되지만, 트렌치에서 확장된다. 유사하게, 전이 영역(6-150)이 트렌치(6-106) 내부에 형성될 수 있고, 그에 의해 모드가 측벽(6-114)에 도달하기 전에 공간적으로 재한정될 수 있다.
도 6ab는 일부 비제한적인 실시예들에 따른, 서스펜딩된 멀티-슬롯 광학 구조체(6-120)를 추가로 상세히 도시한다. 도 6ab의 예에서, 멀티-슬롯 광학 구조체(6-120)는 3개의 도파관들(6-121, 6-122 및 6-123)을 포함한다. 슬롯(6-124)은 도파관(6-121)을 도파관(6-122)으로부터 분리하고, 슬롯(6-125)은 도파관(6-122)을 도파관(6-123)으로부터 분리한다. 슬롯들의 폭(d1 및 d2)은 슬롯 모드들을 형성하기 위해 (동작의 파장에서) 임계 폭보다 작을 수 있으며, 그에 의해 모드 에너지의 상당 부분(예를 들어, 40% 초과, 50% 초과, 60% 초과, 또는 75% 초과)이 슬롯들 내에 있다. 예를 들어, d1 및 d2 각각은 200 nm 이하, 6-150 nm 이하, 또는 6-100 nm 이하일 수 있다. 최소 폭은 포토리소그래피 해상도에 의해 설정될 수 있다.
도 6ac는 일부 비제한적인 실시예들에 따른, 도파관들(6-121, 6-122 및 6-123)에 의해 지원된 광학 모드의 예를 도시하는 도면이다. 더 구체적으로, 도면은 모드의 진폭(예를 들어, 전기장 Ex, Ey 또는 Ez, 또는 자기장 Hx, Hy 또는 Hz)을 도시한다. 도시된 바와 같이, 전체 에너지의 상당 부분은 슬롯 내에 한정되며, 모드는 진폭의 피크들을 나타낸다. 일부 실시예들에서, 개별 도파관들 중 임의의 도파관에서보다 슬롯들 중 하나의 슬롯에 더 많은 광학 에너지가 존재한다. 일부 실시예들에서, 함께 고려되는 모든 도파관들에서보다 슬롯들 중 하나의 슬롯에 더 많은 광학 에너지가 존재한다. 외부 도파관들의 외벽들 외부에서는, 모드 에너지가 (예를 들어, 지수적으로) 감쇠한다.
폭들 d1 및 d2는 서로 동일하거나 상이할 수 있다. 슬롯들 및 도파관들의 폭들은 (도 6ab에서와 같이) z-축을 따라 일정하거나 변할 수 있다. 일부 실시예들에서, 도파관들(6-121, 6-122 및 6-123)의 폭들은 입력 도파관(6-102)의 폭보다 작을 수 있다. 일부 실시예들에서, 동작의 파장이 C-대역에 있을 때, 도파관들(6-121, 6-122 및 6-123)의 폭들은, 200 nm와 400nm 사이, 250 nm와 350nm 사이, 또는 그러한 범위들 내에 또는 그 범위들 밖에 있든지 간에, 임의의 다른 적절한 범위 내에 있을 수 있다.
도 6ab의 예는 3개의 도파관들 및 2개의 슬롯들을 갖는 서스펜딩된 멀티-슬롯 광학 구조체(6-120)를 도시하지만, 임의의 다른 적절한 수의 도파관들 및 슬롯들이 이용될 수 있다. 다른 예들에서, 서스펜딩된 멀티-슬롯 광학 구조체(6-120)는 5개의 도파관들 및 4개의 슬롯들, 7개의 도파관들 및 6개의 슬롯들, 9개의 도파관들 및 8개의 슬롯들 등을 포함할 수 있다. 일부 실시예들에서, 구조체는 홀수의 도파관들(및 결과적으로 짝수의 슬롯들)을 포함하여, 대칭 모드들만이 여기되는 반면, 비대칭 모드들은 여기되지 않은 채로 남게 한다. 본 발명자들은 모드의 대칭을 향상시키는 것이 슬롯 구조체로의 결합을 향상시키고, 따라서 전이 영역의 길이의 실질적인 감소를 가능하게 한다는 것을 알았다. 그러나, 짝수의 도파관들을 갖는 구현들도 가능하다.
아래에 더 상세히 설명되는 바와 같이, 위상 변조는 외부 도파관들(도 6ab의 6-121 및 6-123)이 x-축을 따라 중심 도파관(도 6ab에서의 6-122)에 대해 이동하게 함으로써 발생한다. 도파관(6-121)이 도파관(6-122)에 대해 x-축으로 이동할 때, 슬롯(6-124)의 폭이 변하고, 구조체에 의해 지지된 모드의 형상은 그에 따라 변한다. 그 결과는 구조체에 의해 지원된 모드의 유효 굴절률의 변화이며, 결과적으로 위상 변조가 발생한다. 외부 도파관들의 이동은 기계적 구조체들(6-130 및 6-132)을 이용하여 유도될 수 있다.
일부 비제한적인 실시예들에 따른, 기계적 구조체(6-130)의 예가 도 6ad에 도시된다. 기계적 구조체(6-132)(도 6aa 참조)는 유사한 배열을 가질 수 있다. 도 6ad의 예에서, 기계적 구조체(6-130)는 빔들(6-133, 6-134, 6-135 및 6-136)을 포함한다. 빔(6-133)은 기계적 드라이버(6-160)를 빔(6-134)에 접속한다. 빔들(6-135 및 6-136)은 빔(6-134)을 외부 도파관에 접속한다. 광학 손실들을 제한하기 위해, 빔들(6-135 및 6-136)은 (이하에서 논의되는, 도 6ae에 도시된 바와 같이) 변조 영역에서보다는, 전이 영역들(6-140 및 6-150)에서, 각각, 외부 도파관에 부착될 수 있다. 그러나, 빔들(6-135 및 6-136)을 변조 영역에 대한 외부 도파관에 부착하는 것도 가능하다. 상이한 형상들, 크기들 및 배향들을 갖는 빔들은 도 6ad에 도시된 것들에 대안적으로 또는 부가하여 이용될 수 있다.
기계적 구조체(6-130)는 기계적 드라이버(6-160)에서 생성된 기계적 힘들을 도파관(6-121)에 전달할 수 있고, 이로써 도파관(6-121)이 도파관(6-122)에 대해 이동하게 한다. 기계적 드라이버들(6-160 및 6-162)은 임의의 적절한 방식으로 구현될 수 있다. 일례에서, 기계적 드라이버들은 압전 디바이스들을 포함할 수 있다. 일례에서, 기계적 드라이버들은 도전성 핑거들을 포함할 수 있다. 인접한 핑거들 사이에 전압이 인가될 때, 핑거들은 가속을 겪을 수 있고, 따라서 기계적 구조체들에 기계적 힘을 부여할 수 있다. 일부 실시예들에서, 기계적 드라이버들은 그 위에 인코딩된 패턴을 갖는 전기 신호로 구동될 수 있다. 이러한 방식으로, 변조는 패턴이 입력 광학 신호의 위상에 부여되게 한다.
특정한 종래의 위상 변조기들에서와 같이 전기 신호들이 직접 공급되기보다는, 서스펜딩된 멀티-슬롯 광학 구조체(6-120)의 도파관들이 외부 기계적 드라이버들을 이용하여 구동되기 때문에, 도파관들의 전도율이 완화될 수 있고, 따라서 자유 캐리어 흡수 손실, 그리고 결과적으로 동적 손실을 감소시킬 수 있다는 것을 이해해야 한다. 이것은 도파관 자체가 히터 또는 캐리어 축적 영역으로서 작용하도록 도핑되는 일부 종래의 위상 변조기들과 상이하다. 일부 실시예들에서, 도파관들(6-121, 6-122 및 6-123)은 도핑되지 않은 또는 저농도로 도핑된 반도체 재료(예를 들어, 도핑되지 않은 실리콘 또는 1014 cm-3 미만의 도핑 농도를 갖는 실리콘)로 만들어질 수 있다. 일부 실시예들에서, 도파관들을 형성하는 재료의 저항률(resistivity)은 1300 Ωcm보다 클 수 있다.
도 6ae는 일부 비제한적인 실시예들에 따른, 전이 영역(6-140)의 예를 도시한다. 이 구현에서, 도파관(6-122)은 입력 도파관(6-102)에 근접해 있다(예를 들어, 연속적이다). 도시된 바와 같이, 도파관(6-122)은 그것이 서스펜딩된 멀티-슬롯 광학 구조체(6-120)에 접근함에 따라 그의 폭이 감소하도록, 전이 영역에서 테이퍼링된다. 반대로, 도파관들(6-121 및 6-123)은 그들이 서스펜딩된 멀티-슬롯 광학 구조체(6-120)로부터 멀어짐에 따라 그들의 폭들이 증가하도록, 전이 영역에서 테이퍼링된다. 테이퍼링된 도파관들은 입력 도파관(6-102)의 모드와 서스펜딩된 멀티-슬롯 광학 구조체(6-120)의 모드 사이의 단열 결합(adiabatic coupling)을 허용할 수 있고, 그에 의해 결합 손실들을 제한한다. 유사한 배열이 전이 영역(6-150)에 대해 이용될 수 있다. 멀티-슬롯 구조체에 의해 지원된 모드의 향상된 대칭으로 인해, 전이 영역들(6-140 및 6-150)은 다른 구현들보다 상당히 짧다. 일부 실시예들에서, 전이 영역들은 10 ㎛ 이하 또는 5 ㎛ 이하만큼 짧을 수 있지만, 다른 값들도 가능하다.
도 6b는 일부 비제한적인 실시예들에 따른, 도파관(6-122)을 통과하는 yz-평면(도 6ab의 평면(6-190) 참조)에서 취해진 NOEMS 위상 변조기(6-100)의 단면도이다. 입력 도파관(6-102) 및 출력 도파관(6-104)은 코어 재료의 굴절률보다 낮은 굴절률을 갖는 재료(예를 들어, 실리콘 산화물)로 만들어진 클래딩에 의해 둘러싸인다. 하부 클래딩(6-202)은 도파관과 하부 기판(6-201) 사이에 있다. 상부 클래딩(6-206)은 도파관 위에 형성된다.
서스펜딩된 멀티-슬롯 광학 구조체(6-120)의 도파관들의 자유 이동을 가능하게 하기 위해, 트렌치(6-106)가 상부 클래딩(6-206)의 일부를 통해 형성된다. 일부 실시예들에서, 하부 클래딩(6-202)의 일부분이 서스펜딩된 멀티-슬롯 광학 구조체(6-120) 아래에서 제거되어, 언더컷(6-204)을 형성한다. 그 결과, 도파관들(6-121, 6-122 및 6-123)은 공기 중에 서스펜딩되고, 기계적 힘들에 응답하여 자유롭게 이동한다. 클래딩/에어 인터페이스가 트렌치 측벽(6-112)에 존재하고, 에어/클래딩 인터페이스가 트렌치 측벽(6-114)에 존재한다. 측벽들은, 예를 들어, 트렌치가 반응 이온 에칭(reaction ion etching)(RIE)에 의해 형성되는 경우에 실질적으로 수직일 수 있거나, 대안적으로 각을 이룰 수 있다. 언더컷(6-204)은, 등방성 에칭이 이용되는 경우, 도 6b에 도시된 바와 같이, 곡선형 측벽들을 가질 수 있거나, 또는 대안적으로 실질적으로 수직일 수 있다. 일부 실시예들에서, 트렌치(6-106) 및 언더컷(6-204)은 동일한 에칭의 일부로서 형성될 수 있는 반면, 다른 실시예에서는, 이들은 별개의 에칭들을 이용하여 형성될 수 있다.
도 6c는 일부 비제한적인 실시예들에 따른, 도파관들(6-121, 6-122 및 6-123)을 통과하는 xy-평면(도 6ab의 평면(6-191) 참조)에서 취해진 NOEMS 위상 변조기(6-100)의 단면도이다. 도 6c는 도파관들(6-121, 6-122 및 6-123) 및 빔들(6-134)이 (적어도 이 예에서) 동일 평면이고, 기판(6-201) 위의 공기 중에 서스펜딩되는 것을 도시한다. 이 도면에 더 도시된 바와 같이, 도파관들(6-121, 6-122 및 6-123)은 이 단면에서 하부 클래딩(6-202)과 접촉하지 않는다. 기계적 드라이버들(6-160 및 6-162)이 작동될 때, 빔들(6-134) 및 도파관들(6-121 및 6-123)은 x-축을 따라 진동하고, 따라서 슬롯들(6-124 및 6-125)의 폭들을 변화시킨다. 일부 비제한적인 실시예들에 따른, 도 6da 내지 도 6dc에 도파관들(6-121 및 6-123)의 진동 운동의 예가 집합적으로 도시되어 있다. 도 6da는 기계적 힘이 가해지지 않는 경우를 도시한다. 그 결과, 슬롯들의 폭들이 교란되지 않는다. 도 6db에서, 화살표들로 나타낸 바와 같이, 도파관들(6-121 및 6-123) 둘다가 도파관(6-122) 쪽으로 이동하도록 한 쌍의 힘들이 가해진다. 그 결과, 슬롯들의 폭들이 감소된다. 도 6dc에서, 한 쌍의 힘들이 가해져서 도파관들(6-121 및 6-123) 둘다가 화살표들에 의해 또한 도시된 도파관(6-122)으로부터 멀리 이동한다. 결과적으로, 슬롯들의 폭들이 증가된다. 일부 실시예들에서, 힘들은 주기적 방식으로, 및/또는 구동 전기 신호들의 패턴을 따라 가해질 수 있다. 일부 실시예들에서, 동일한 강도가 도파관들 둘다에 인가되지만 반대 부호들을 갖도록, 힘들이 도파관들(6-121 및 6-123)에 차등적으로 가해질 수 있다.
도 6e는 일부 비제한적인 실시예들에 따른, 서스펜딩된 멀티-슬롯 광학 구조체(6-120)에서 전파하는 모드의 유효 굴절률(Neff)이 폭 d1(도파관들(6-121 및 6-122) 사이의 슬롯의 폭)의 함수로서 어떻게 변하는지를 도시하는 도면이다. 유사한 응답이 d2의 함수로서 도시될 수 있다. 유효 굴절률 변동은, 가해진 기계적 힘의 영향 하에서 도파관들 사이의 분리가 변함에 따라, 모드의 형상이 도 6ac에 도시된 것에 대해 벗어난다는 사실에 의해 야기된다. 폭이 시간에 따라 변함에 따라, 모드 유효 굴절률이 변하며, 결과적으로 모드의 위상이 변한다.
도 6f는 일부 비제한적인 실시예들에 따른, NOEMS 위상 변조기를 제조하는 방법의 예를 도시하는 흐름도이다. 제조 프로세스들이 도 6f에 도시된 특정 순서로 제한되지 않기 때문에, 이하에서 설명된 방법의 단계들은 임의의 적절한 순서로 수행될 수 있다는 것을 이해해야 한다.
제조 방법(6-600)은 칩이 획득되는 단계(6-602)에서 시작된다. 일부 실시예들에서, 칩은 실리콘-온-절연체 칩, 또는 벌크 실리콘 칩일 수 있다. 칩은 기판 및 다음의 층들 중 임의의 것을 가질 수 있다: 하부 클래딩 층, 반도체 층 및 상부 클래딩 층. 일부 실시예들에서, 하부 클래딩 층은 실리콘 산화물을 포함할 수 있다. 반도체 층은 일부 실시예들에서, 실리콘, 실리콘 질화물 및/또는 도핑된 실리콘 산화물을 포함할 수 있다. 상부 클래딩 층은 하부 클래딩 층을 형성하는 동일한 재료 또는 상이한 재료를 포함할 수 있다. 도 6c는 하부 클래딩 층(클래딩(6-202)), 반도체 층(도파관들(6-121, 6-122 및 6-123)의 층) 및 상부 클래딩 층(클래딩(6-206))을 갖는 기판(기판(6-201))의 예를 도시한다. 위에서 식별된 층들 중 임의의 층은, 칩이 (NOEMS 위상 변조기가 제조되는) 제조 설비에 도달할 때 칩 상에 이미 존재할 수 있거나, 제조 프로세스의 일부로서 설비에서 형성될 수 있다는 것을 이해해야 한다.
단계(6-604)에서, 제1 및 제2 슬롯들(또는 2보다 더 큰 임의의 다른 수의 슬롯들)을 갖는 멀티-슬롯 광학 구조체로부터 반도체 층이 패터닝된다. 도 6c의 예에서, 도파관들(6-121, 6-122 및 6-123)은 단계(6-604)에서 형성될 수 있다. 반도체 층을 패터닝하는 것은 포토레지스트 층의 퇴적, 포토리소그래피 노출 및 반도체 층을 통한 에칭을 수반할 수 있다. 일부 실시예들에서, 기계적 구조체들(6-130 및 6-132), 기계적 드라이버들(6-160 및 6-162), 도파관들(6-102 및 6-104) 및 전이 영역들(6-140 및 6-142)(도 6aa 참조) 중 어느 하나는 동일한 포토리소그래피 노출의 일부로서 제조되지만, 하나 이상의 별개의 포토리소그래피 노출이 이용될 수 있기 때문에 모든 실시예들이 이 점에서 제한되는 것은 아니다. 일부 실시예들에서, 단계(6-604)에서, 기계적 드라이버들(6-160)은, 예를 들어, 이온 주입을 이용하여 도핑될 수 있다. 일부 실시예들에서, 멀티-슬롯 광학 구조체는 도핑되지 않은 채로 있을 수 있다.
단계(6-606)에서, 상부 클래딩 층을 통해 트렌치가 형성될 수 있다. 트렌치(트렌치(6-106))의 예가 도 6c에 도시되어 있다. 트렌치는, 예를 들어, 반응 이온 에칭과 같은 건식 에칭을 이용하여 형성될 수 있다. 그러나, 습식 에칭들이 대안적으로 또는 추가적으로 이용될 수 있다. 트렌치의 형성은 단계(6-604)에서 형성된 멀티-슬롯 광학 구조체 위의 영역에서 상부 클래딩 층의 일부를 제거하는 것을 수반할 수 있다. 그 결과, 멀티-슬롯 광학 구조체는 공기에 부분적으로 또는 전체적으로 노출될 수 있다.
단계(6-608)에서, 하부 클래딩 층에 언더컷이 형성될 수 있다. 언더컷(언더컷(6-204))의 예가 도 6c에 도시되어 있다. 언더컷은, 예를 들어, 습식 에칭을 이용하여 형성될 수 있지만, 건식 에칭들이 대안적으로 또는 추가적으로 이용될 수도 있다. 언더컷의 형성은 멀티-슬롯 광학 구조체 아래의 영역에서 하부 클래딩 층의 일부를 제거하는 것을 수반할 수 있다. 그 결과, 멀티-슬롯 광학 구조체의 적어도 일부가 공기에 서스펜딩될 수 있다.
이와 같이, 본 출원의 기술의 몇몇 양태들 및 실시예들을 설명하였지만, 본 기술분야의 통상의 기술자에게는 다양한 변경들, 수정들 및 개선들이 쉽게 떠오를 것임을 알아야 한다. 그러한 변경들, 수정들 및 개선들은 본 출원에 설명된 기술의 사상 및 범위 내에 있는 것으로 의도된다. 따라서, 상기의 실시예들은 단지 예로써 제시된 것이며, 첨부된 청구항들 및 그 등가물들의 범위 내에서, 본 발명의 실시예들은 구체적으로 설명된 것과는 다른 방식으로 실시될 수도 있다는 것을 이해해야 한다. 또한, 본 명세서에 설명된 둘 이상의 특징들, 시스템들, 제품들, 재료들 및/또는 방법들의 임의의 조합은, 그러한 특징들, 시스템들, 제품들, 재료들 및/또는 방법들이 상호 모순되지 않는 경우, 본 개시내용의 범위 내에 포함된다.
또한, 설명된 바와 같이, 일부 양태들은 하나 이상의 방법으로서 구현될 수 있다. 방법의 일부로서 수행된 동작들은 임의의 적절한 방식으로 순서가 정해질 수 있다. 따라서, 예시적인 실시예들에서는 순차적인 동작들로서 도시되어 있더라도, 소정 동작들을 동시에 수행하는 것을 포함한, 예시된 것과는 상이한 순서로 동작들이 수행되는 실시예들이 구성될 수 있다.
본 명세서에서 정의되고 이용된 모든 정의들은, 사전적 정의들, 참조에 의해 포함된 문서들에서의 정의들, 및/또는 정의된 용어들의 통상의 의미들을 통제하는 것으로 이해되어야 한다.
명세서 및 청구항들에서 이용된 단수 표현들은, 명확히 반대로 지시되지 않는 한, "적어도 하나"를 의미하는 것으로 이해되어야 한다.
본 명세서에 이용된 어구 "및/또는"은 명세서 및 청구항들에서, 그렇게 결합된 요소들의 "어느 하나 또는 둘다", 즉, 일부 경우들에서는 함께 존재하고 다른 경우들에서는 따로 존재하는 요소들을 의미하는 것으로 이해되어야 한다.
여기 본 명세서 및 청구항들에서 이용된 바와 같이, 하나 이상의 요소의 열거를 참조한 어구 "적어도 하나"는, 요소들의 목록에서의 요소들 중 임의의 하나 이상으로부터 선택된 적어도 하나의 요소를 의미하지만, 요소들의 목록 내에서 구체적으로 열거된 요소들의 각각의 및 모든 요소 중 적어도 하나를 반드시 포함할 필요는 없고, 요소들의 목록에서의 요소들의 임의의 조합을 배제하지 않는 것으로 이해되어야 한다. 이러한 정의는 또한, 어구 "적어도 하나"가 지칭하는 요소들의 목록 내에서 구체적으로 식별된 요소들 이외의 요소들이, 구체적으로 식별된 요소들과 관련되든 관련되지 않든지 간에, 선택사항적으로 존재할 수 있도록 허용한다.
"대략" 및 "약"이라는 용어들은 일부 실시예들에서 타겟 값의 ±20% 이내, 일부 실시예들에서 타겟 값의 ±10% 이내, 일부 실시예들에서 타겟 값의 ±5% 이내, 심지어는 일부 실시예들에서 타겟 값의 ±2% 이내를 의미하도록 이용될 수 있다. "대략" 및 "약"이라는 용어들은 타겟 값을 포함할 수 있다.

Claims (30)

  1. 광자 프로세서로서,
    제1 복수의 광학 입력들 및 제1 복수의 광학 출력들을 포함하는 상호접속된 가변 빔 스플리터(VBS)들의 제1 어레이;
    제2 복수의 광학 입력들 및 제2 복수의 광학 출력들을 포함하는 상호접속된 VBS들의 제2 어레이; 및
    복수의 제어가능한 광학 요소들―이러한 상기 복수의 제어가능한 광학 요소들 각각은 상기 제1 어레이의 상기 제1 복수의 광학 출력들 중 단일 광학 출력을 상기 제2 어레이의 상기 제2 복수의 광학 입력들 중 개개의 단일 광학 입력에 결합함―
    을 포함하는, 광자 프로세서.
  2. 제1항에 있어서,
    상기 제1 및 제2 어레이의 상기 VBS들 각각은 마하 젠더 간섭계를 포함하고, 상기 마하 젠더 간섭계는,
    제1 빔 스플리터;
    제2 빔 스플리터; 및
    상기 제1 빔 스플리터와 상기 제2 빔 스플리터를 결합하는 광학 모드의 광의 위상을 변조하도록 구성된 적어도 하나의 위상 변조기를 포함하는, 광자 프로세서.
  3. 제1항에 있어서,
    상기 제어가능한 광학 요소들 각각은 가변 감쇠기 및 적어도 하나의 위상 변조기를 포함하는, 광자 프로세서.
  4. 제3항에 있어서,
    상기 제어가능한 광학 요소들의 상기 가변 감쇠기들 각각은 마하 젠더 간섭계를 포함하는, 광자 프로세서.
  5. 제1항에 있어서,
    상기 상호접속된 VBS들의 제1 어레이와 상기 상호접속된 VBS들의 제2 어레이 사이에 적어도 하나의 폴드(fold)를 더 포함하고, 상기 제1 복수의 광학 출력들 각각의 광학 모드의 전파 방향은 상기 제2 복수의 입력들의 개개의 광학 입력의 광학 모드의 전파 방향과 반대인, 광자 프로세서.
  6. 제4항에 있어서,
    VBS들의 복수의 열들을 더 포함하고, 상기 복수의 열들 중 적어도 서브세트는, 상기 상호접속된 VBS들의 제1 어레이의 적어도 일부가 상기 상호접속된 VBS들의 제2 어레이의 적어도 일부와 인터리빙되도록, 상기 상호접속된 VBS들의 제1 어레이의 VBS들 중 적어도 하나 및 상기 상호접속된 VBS들의 제2 어레이의 VBS들 중 적어도 하나를 포함하는, 광자 프로세서.
  7. 광자 처리 시스템으로서,
    입력 벡터를 제1 복수의 광학 신호들로 인코딩하도록 구성된 광학 인코더;
    광자 프로세서―상기 광자 프로세서는,
    상기 제1 복수의 광학 신호들을 수신―상기 제1 복수의 신호들 각각은 상기 광자 프로세서의 복수의 입력 공간 모드들의 개개의 입력 공간 모드에 의해 수신됨―하고;
    상기 제1 복수의 광학 신호들에 대해 복수의 연산들을 수행―상기 복수의 연산들은 상기 입력 벡터와 행렬의 행렬 곱셈을 구현함―하고;
    출력 벡터를 나타내는 제2 복수의 광학 신호들을 출력―상기 제2 복수의 신호들 각각은 상기 광자 프로세서의 복수의 출력 공간 모드들의 개개의 출력 공간 모드에 의해 송신됨―하도록 구성됨―; 및
    상기 제2 복수의 광학 신호들을 검출하고, 상기 출력 벡터의 전기 디지털 표현을 출력하도록 구성된 광학 수신기
    를 포함하는, 광자 처리 시스템.
  8. 제7항에 있어서,
    상기 광학 수신기는 위상 민감 검출기들을 이용하여 상기 제2 복수의 광학 신호들을 검출하도록 구성되는, 광자 처리 디바이스.
  9. 제8항에 있어서,
    광원을 더 포함하고, 상기 광원은,
    상기 제1 복수의 광학 신호들을 인코딩하는데 이용하기 위해 제1 광을 상기 광학 인코더에 제공하고;
    상기 위상 민감 검출기들에 의해 국부 발진기로서 이용하기 위해 제2 광을 상기 광학 수신기에 제공하고,
    상기 국부 발진기는 상기 제1 복수의 광학 신호들 각각과 위상 코히어런트하고,
    상기 광원으로부터 상기 광학 수신기로의 상기 제1 복수의 광학 신호들의 제1 경로 길이는, 상기 광원으로부터 상기 광학 수신기로의 상기 국부 발진기의 제2 경로 길이와 실질적으로 동일한, 광자 처리 디바이스.
  10. 제7항에 있어서,
    상기 광학 인코더는,
    상기 입력 벡터의 벡터 성분의 절대값을 상기 제1 복수의 광학 신호들의 개개의 광학 신호의 진폭으로 인코딩하고;
    상기 입력 벡터의 상기 벡터 성분의 위상을 상기 제1 복수의 광학 신호들의 상기 개개의 광학 신호의 위상으로 인코딩하도록 구성되는, 광자 처리 디바이스.
  11. 제7항에 있어서,
    상기 행렬은 임의의 단위 행렬인, 광자 처리 디바이스.
  12. 제7항에 있어서,
    복수의 전단들―상기 복수의 전단들 각각은 상기 광자 프로세서의 상기 복수의 입력 공간 모드들 중 하나의 입력 공간 모드와 연관되고, 상기 복수의 전단들 각각은,
    복수의 광학 인코더들―상기 광학 인코더들 각각은 입력 벡터의 개개의 성분을 광학 신호로 인코딩하도록 구성되고, 각각의 광학 인코더는 다른 광학 인코더들에 의해 출력된 파장들과 상이한 파장의 광학 신호들을 출력하도록 구성됨―; 및
    입력 파장 분할 멀티플렉서(WDM)―상기 WDM은 상기 복수의 광학 인코더들 각각으로부터 상기 광학 신호들 각각을 개별 공간 모드에서 수신하고, 상기 광자 프로세서의 상기 복수의 입력 공간 모드들의 개개의 입력 공간 모드에 접속된 단일 공간 모드에서 상기 광학 신호들 각각을 출력하도록 구성됨―를 포함함―; 및
    복수의 후단들―상기 복수의 후단들 각각은 상기 광자 프로세서의 복수의 출력 공간 모드들 중 하나의 출력 공간 모드와 연관되고, 상기 복수의 후단들 각각은,
    출력 파장 분할 멀티플렉서(WDM)―상기 WDM은 상기 광자 프로세서의 상기 복수의 출력 공간 모드들의 개개의 출력 공간 모드로부터 상이한 파장들의 광학 신호들을 수신하고, 상기 WDM의 복수의 출력 공간 모드들의 개개의 공간 모드에서 상이한 파장들의 상기 광학 신호들 각각을 출력하도록 구성됨―; 및
    복수의 광학 수신기들―상기 광학 수신기들 각각은 상기 WDM의 개개의 출력 공간 모드와 연관된 개개의 광학 신호를 검출함으로써, 출력 벡터의 개개의 성분을 결정하도록 구성됨―을 포함함―을 더 포함하는, 광자 처리 디바이스.
  13. 제7항에 있어서,
    상기 광자 프로세서는,
    상기 제1 복수의 입력 공간 모드들에 대응하는 제1 복수의 광학 입력들 및 제1 복수의 광학 출력들을 포함하는 상호접속된 가변 빔 스플리터(VBS)들의 제1 어레이;
    제2 복수의 광학 입력들 및 상기 복수의 출력 공간 모드들에 대응하는 제2 복수의 광학 출력들을 포함하는 상호접속된 VBS들의 제2 어레이; 및
    복수의 제어가능한 광학 요소들―이러한 상기 복수의 제어가능한 광학 요소들 각각은 상기 제1 어레이의 상기 제1 복수의 광학 출력들 중 단일 광학 출력을 상기 제2 어레이의 상기 제2 복수의 광학 입력들 중 개개의 단일 광학 입력에 결합함―을 포함하는, 광자 처리 디바이스.
  14. 제13항에 있어서,
    제어기를 더 포함하고, 상기 제어기는,
    상기 행렬의 특이값 분해(SVD)를 수행하여 제1, 제2 및 제3 SVD 행렬을 결정하고;
    상기 제1 복수의 상호접속된 VBS들을 제어하여 상기 제1 SVD 행렬을 구현하고;
    상기 제2 복수의 상호접속된 VBS들을 제어하여 상기 제2 SVD 행렬을 구현하고;
    상기 복수의 제어가능한 광학 요소들을 제어하여 상기 제3 SVD 행렬을 구현―상기 제3 SVD 행렬은 대각선 행렬임―하도록 구성되는, 광자 처리 디바이스.
  15. 제14항에 있어서,
    상기 제어기는 상기 제1 복수의 상호접속된 VBS들 및 상기 제2 복수의 상호접속된 VBS들의 하나 이상의 파라미터를 조정하기 위한 적어도 하나의 디지털-대-아날로그 변환기(DAC)를 더 포함하는, 광자 처리 디바이스.
  16. 제15항에 있어서,
    상기 제1 복수의 상호접속된 VBS들의 VBS들 각각 및 상기 제2 복수의 상호접속된 VBS들의 VBS들 각각은 개개의 어드레스와 연관되고;
    상기 적어도 하나의 DAC는 상기 어드레스들을 이용하여 상기 제1 및/또는 제2 복수의 상호접속된 VBS들의 복수의 VBS들을 제어하는 단일 DAC를 포함하는, 광자 처리 디바이스.
  17. 제7항에 있어서,
    상기 행렬은 제1 행렬이고, 상기 광자 처리 디바이스는,
    (a) 제2 행렬의 각각의 열로부터 복수의 입력 벡터들을 결정하는 것;
    (b) 상기 복수의 입력 벡터들로부터 입력 벡터를 선택하는 것;
    (c) 상기 광학 인코더를 이용하여 상기 선택된 입력 벡터를 상기 제1 복수의 광학 신호들로 인코딩하는 것;
    (d) 상기 제1 입력 벡터와 연관된 상기 제1 복수의 광학 신호들에 대해 상기 복수의 연산들을 수행하는 것;
    (e) 상기 선택된 입력 벡터와 연관된 상기 제2 복수의 광학 신호들을 검출하는 것;
    (f) 상기 검출된 제2 복수의 광학 신호들에 기초한 디지털 검출 결과들을 저장하는 것;
    (g) 상기 복수의 입력 벡터들 중 다른 입력 벡터들에 대해 동작들 (b) 내지 (f)를 반복하는 것;
    (h) 상기 디지털 검출 결과들을 디지털적으로 결합하여 상기 제1 행렬과 상기 제2 행렬의 곱셈으로부터 생기는 결과 행렬을 결정하는 것
    에 의해 상기 제1 행렬과 제2 행렬의 곱셈을 수행하도록 상기 광자 처리 디바이스를 제어하도록 구성된 제어기를 더 포함하는, 광자 처리 디바이스.
  18. 제7항에 있어서,
    상기 광학 수신기는 상기 광자 프로세서의 상기 복수의 출력 공간 모드들의 각각의 출력 공간 모드와 연관된 다수의 후속 신호들의 아날로그 합산을 수행하도록 구성된 저역 통과 필터를 포함하는, 광자 처리 디바이스.
  19. 행렬-벡터 곱셈을 광학적으로 수행하는 방법으로서,
    입력 벡터의 디지털 표현을 수신하는 단계;
    광학 인코더를 이용하여, 상기 입력 벡터를 제1 복수의 광학 신호들로 인코딩하는 단계;
    프로세서를 이용하여, 행렬의 특이값 분해(SVD)를 수행해서 제1, 제2 및 제3 SVD 행렬을 결정하는 단계;
    복수의 가변 빔 스플리터(VBS)들을 포함하는 광자 프로세서를 제어하여 상기 제1, 제2 및 제3 SVD 행렬을 광학적으로 구현하는 단계;
    상기 광자 프로세서를 통해 상기 제1 복수의 광학 신호들을 전파하는 단계;
    상기 광자 프로세서로부터 수신된 제2 복수의 광학 신호들을 검출하는 단계; 및
    상기 검출된 제2 복수의 광학 신호들에 기초하여 출력 벡터를 결정하는 단계―상기 출력 벡터는 상기 행렬-벡터 곱셈의 결과를 나타냄―
    를 포함하는, 방법.
  20. 제19항에 있어서,
    상기 제2 복수의 광학 신호들을 검출하는 단계는 위상 민감 검출기들을 이용하여 수행되는, 방법.
  21. 제20항에 있어서,
    상기 제1 복수의 광학 신호들을 인코딩하기 위해 광원으로부터의 제1 광을 상기 광학 인코더에 제공하는 단계; 및
    상기 광원으로부터의 제2 광을 상기 위상 민감 검출기들에 제공하는 단계―상기 제2 광은 상기 위상 민감 검출기들에 의해 국부 발진기로서 이용됨―를 더 포함하는, 방법.
  22. 제21항에 있어서,
    상기 국부 발진기는 상기 제1 복수의 광학 신호들 각각과 위상 코히어런트하고,
    상기 광원으로부터 상기 위상 민감 검출기들로의 상기 제1 복수의 광학 신호들의 제1 경로 길이는, 상기 광원으로부터 상기 위상 민감 검출기들로의 상기 국부 발진기의 제2 경로 길이와 실질적으로 동일한, 방법.
  23. 제19항에 있어서,
    상기 입력 벡터를 인코딩하는 단계는,
    상기 입력 벡터의 벡터 성분의 절대값을 상기 제1 복수의 광학 신호들의 개개의 광학 신호의 진폭으로 인코딩하는 것; 및
    상기 입력 벡터의 상기 벡터 성분의 위상을 상기 제1 복수의 광학 신호들의 상기 개개의 광학 신호의 위상으로 인코딩하는 것을 포함하는, 방법.
  24. 제19항에 있어서,
    상기 행렬은 임의의 단위 행렬인, 방법.
  25. 제19항에 있어서,
    파장 분할 다중화를 이용하여 다수의 행렬-벡터 곱셈들을 동시에 수행하는 단계를 더 포함하는, 방법.
  26. 제25항에 있어서,
    상기 입력 벡터는 복수의 입력 벡터들 중 하나이고:
    상기 방법은 상기 복수의 입력 벡터들 각각을 특정 파장의 제1 복수의 광학 신호 중 개개의 광학 신호로 인코딩하는 단계를 더 포함하고, 상기 제1 복수의 광학 신호들 중 각각의 광학 신호와 연관된 각각의 파장은 상기 제1 복수의 광학 신호들 중 다른 광학 신호들의 다른 파장들과 상이한, 방법.
  27. 제19항에 있어서,
    상기 광자 프로세서는,
    상기 제1 복수의 입력 공간 모드들에 대응하는 제1 복수의 광학 입력들 및 제1 복수의 광학 출력들을 포함하는 상호접속된 가변 빔 스플리터(VBS)들의 제1 어레이;
    제2 복수의 광학 입력들 및 상기 복수의 출력 공간 모드들에 대응하는 제2 복수의 광학 출력들을 포함하는 상호접속된 VBS들의 제2 어레이; 및
    복수의 제어가능한 광학 요소들―이러한 상기 복수의 제어가능한 광학 요소들 각각은 상기 제1 어레이의 상기 제1 복수의 광학 출력들 중 단일 광학 출력을 상기 제2 어레이의 상기 제2 복수의 광학 입력들 중 개개의 단일 광학 입력에 결합함―을 포함하는, 방법.
  28. 제27항에 있어서,
    상기 제1 복수의 상호접속된 VBS들은 상기 제1 SVD 행렬을 구현하고;
    상기 제2 복수의 상호접속된 VBS들은 상기 제2 SVD 행렬을 구현하고;
    상기 복수의 제어가능한 광학 요소들은 상기 제3 SVD 행렬을 구현―상기 제3 SVD 행렬은 대각선 행렬임―하는, 방법.
  29. 제27항에 있어서,
    상기 제1 복수의 상호접속된 VBS들의 VBS들 각각 및 상기 제2 복수의 상호접속된 VBS들의 VBS들 각각은 개개의 어드레스와 연관되고;
    상기 제1 및/또는 제2 복수의 VBS들은 상기 어드레스들을 이용하여 복수의 상기 VBS들을 제어하는 적어도 하나의 디지털-대-아날로그 변환기(DAC)에 의해 제어되는, 방법.
  30. 제7항에 있어서,
    상기 행렬-벡터 곱셈은 행렬-행렬 곱셈을 수행하기 위해 수행된 복수의 행렬-벡터 곱셈들 중 하나이고, 상기 행렬은 제1 행렬이고, 상기 방법은, 상기 행렬-행렬 곱셈이 포함하는 상기 제1 행렬과 제2 행렬의 곱셈이 행해지도록 하는,
    (a) 상기 제2 행렬의 각각의 열로부터 복수의 입력 벡터들을 결정하는 단계;
    (b) 상기 복수의 입력 벡터들로부터 입력 벡터를 선택하는 단계;
    (c) 상기 광학 인코더를 이용하여 상기 선택된 입력 벡터를 상기 제1 복수의 광학 신호들로 인코딩하는 단계;
    (d) 상기 제1 입력 벡터와 연관된 상기 제1 복수의 광학 신호들에 대해 상기 복수의 연산들을 수행하는 단계;
    (e) 상기 선택된 입력 벡터와 연관된 상기 제2 복수의 광학 신호들을 검출하는 단계;
    (f) 상기 검출된 제2 복수의 광학 신호들에 기초한 디지털 검출 결과들을 저장하는 단계;
    (g) 상기 복수의 입력 벡터들 중 다른 입력 벡터들에 대해 단계들 (b) 내지 (f)를 반복하는 단계;
    (h) 상기 디지털 검출 결과들을 디지털적으로 결합하여 상기 제1 행렬과 상기 제2 행렬의 곱셈으로부터 생기는 결과 행렬을 결정하는 단계를 더 포함하는, 방법.
KR1020207036125A 2018-05-15 2019-05-14 광자 처리 시스템들 및 방법들 KR20210020912A (ko)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US201862671793P 2018-05-15 2018-05-15
US62/671,793 2018-05-15
US201862680557P 2018-06-04 2018-06-04
US62/680,557 2018-06-04
US201862689022P 2018-06-22 2018-06-22
US62/689,022 2018-06-22
US201862755402P 2018-11-02 2018-11-02
US62/755,402 2018-11-02
US201962792720P 2019-01-15 2019-01-15
US62/792,720 2019-01-15
US201962793327P 2019-01-16 2019-01-16
US62/793,327 2019-01-16
US201962834743P 2019-04-16 2019-04-16
US62/834,743 2019-04-16
PCT/US2019/032181 WO2019222185A1 (en) 2018-05-15 2019-05-14 Photonic processing systems and methods

Publications (1)

Publication Number Publication Date
KR20210020912A true KR20210020912A (ko) 2021-02-24

Family

ID=68534517

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207036125A KR20210020912A (ko) 2018-05-15 2019-05-14 광자 처리 시스템들 및 방법들

Country Status (9)

Country Link
US (4) US10763974B2 (ko)
EP (1) EP3803265A4 (ko)
JP (2) JP7362727B2 (ko)
KR (1) KR20210020912A (ko)
CN (2) CN114912604A (ko)
CA (1) CA3100326A1 (ko)
SG (1) SG11202011352SA (ko)
TW (2) TWI818020B (ko)
WO (1) WO2019222185A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11428785B2 (en) * 2020-06-12 2022-08-30 Ours Technology, Llc Lidar pixel with active polarization control

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9606803B2 (en) * 2013-07-15 2017-03-28 Texas Instruments Incorporated Highly integrated scalable, flexible DSP megamodule architecture
WO2018222896A1 (en) * 2017-05-31 2018-12-06 Intel Corporation Gradient-based training engine for quaternion-based machine-learning systems
US11113168B2 (en) * 2018-03-09 2021-09-07 Toyota Motor Engineering & Manufacturing North America, Inc. Distributed architecture for fault monitoring
KR20210020912A (ko) * 2018-05-15 2021-02-24 라이트매터, 인크. 광자 처리 시스템들 및 방법들
TW202032187A (zh) 2018-06-04 2020-09-01 美商萊特美特股份有限公司 實數光子編碼
CN113159306A (zh) 2018-06-05 2021-07-23 光子智能股份有限公司 光电计算系统
US11507818B2 (en) 2018-06-05 2022-11-22 Lightelligence PTE. Ltd. Optoelectronic computing systems
CN112997459B (zh) * 2018-11-05 2023-06-16 上海诺基亚贝尔股份有限公司 Mimo-ofdm的papr降低
US11734556B2 (en) * 2019-01-14 2023-08-22 Lightelligence PTE. Ltd. Optoelectronic computing systems
WO2020176393A1 (en) 2019-02-25 2020-09-03 Lightmatter, Inc. Path-number-balanced universal photonic network
CA3130114A1 (en) 2019-02-26 2020-09-03 Lightmatter, Inc. Hybrid analog-digital matrix processors
EP3973366A4 (en) * 2019-05-22 2023-04-19 Xanadu Quantum Technologies Inc. DEVICE AND METHOD FOR GAUSS-BOSON SCANNING
US11409991B2 (en) * 2019-05-24 2022-08-09 Google Llc Regularizing the training of convolutional neural networks
WO2020247243A1 (en) * 2019-06-04 2020-12-10 Delahoussaye Kevin Neuroscience based learning-computing
WO2021007163A1 (en) 2019-07-11 2021-01-14 Luminous Computing, Inc. Photonic bandgap phase modulator, optical filter bank, photonic computing system, and methods of use
WO2021021787A1 (en) 2019-07-29 2021-02-04 Lightmatter, Inc. Systems and methods for analog computing using a linear photonic processor
US11407672B2 (en) * 2019-10-03 2022-08-09 Northrop Grumman Systems Corporation Method for high fill-factor optical arrays manufacturing
CN115023909A (zh) 2019-11-22 2022-09-06 光物质公司 线性光子处理器和相关方法
US20230008139A1 (en) * 2019-12-05 2023-01-12 Asml Holding N.V. Overlay measurement system using lock-in amplifier technique
US11454862B2 (en) * 2019-12-18 2022-09-27 Xanadu Quantum Technologies Inc. Apparatus and methods for spatio-temporal implementation of arbitrary unitary transformations on optical modes
CN111198593B (zh) * 2019-12-31 2023-08-25 联合微电子中心有限责任公司 一种超线程光子计算结构
US11874582B2 (en) 2020-02-19 2024-01-16 Shanghai Jiao Tong University Monolithically integrated optical analog-to-digital conversion system based on lithium niobate-silicon wafer and method for manufacturing the same
CN111176053B (zh) * 2020-02-19 2021-07-27 上海交通大学 基于铌酸锂-硅晶圆的单片集成光模数转换系统及制备方法
CN113325808A (zh) * 2020-02-28 2021-08-31 上海诺基亚贝尔股份有限公司 控制方法、设备、装置、系统以及计算机可读介质
US11211941B2 (en) * 2020-03-14 2021-12-28 Luminous Computing, Inc. Digital-to-analog converter system and method of operation
KR20230008142A (ko) * 2020-04-27 2023-01-13 라이트매터, 인크. 포토닉스 프로세서 아키텍쳐
JP7044289B2 (ja) * 2020-05-03 2022-03-30 浙江大学 コプライム平面アレーのバーチャルドメインテンソル空間スペクトル検索に基づく高解像の正確な二次元到来方向推定方法
US11500410B1 (en) * 2020-05-06 2022-11-15 Luminous Computing, Inc. System and method for parallel photonic computation
US11490177B1 (en) * 2020-06-05 2022-11-01 Luminous Computing, Inc. Optical link system and method for computation
CN112232503B (zh) * 2020-06-09 2021-11-19 联合微电子中心有限责任公司 计算装置、计算方法以及计算系统
CN111723337B (zh) * 2020-06-16 2023-02-07 上海交通大学 用于神经网络训练的光子张量核集成电路架构及其神经网络训练方法
US11057143B1 (en) 2020-06-18 2021-07-06 Hewlett Packard Enterprise Development Lp Wavelength division multiplexing (WDM)-based and multipath interferometry based optical ternary content addressable memory (TCAM)
US11200929B1 (en) 2020-06-18 2021-12-14 Hewlett Packard Enterprise Development Lp Time division multiplexing (TDM) based optical ternary content addressable memory (TCAM)
WO2022015867A1 (en) * 2020-07-15 2022-01-20 Voyant Photonics, Inc. Optical phased array driver
US11700078B2 (en) 2020-07-24 2023-07-11 Lightmatter, Inc. Systems and methods for utilizing photonic degrees of freedom in a photonic processor
US11469764B2 (en) 2020-08-28 2022-10-11 Hewlett Packard Enterprise Development Lp Optical comb source for content-addressable memory encoders
CN112232487B (zh) * 2020-10-19 2023-09-22 中国科学院半导体研究所 光学神经网络芯片及其计算方法
WO2022104223A1 (en) * 2020-11-16 2022-05-19 Lightmatter, Inc. Parallelization and pipelining strategies for an efficient analog neural network accelerator
JP2024503991A (ja) * 2020-12-17 2024-01-30 セレッシャル エイアイ インコーポレイテッド 行列計算用のバランス型フォトニック・アーキテクチャ
CN117255967A (zh) * 2020-12-17 2023-12-19 天体人工智能公司 用于矩阵计算的平衡光子架构
KR102655199B1 (ko) * 2020-12-22 2024-04-08 재단법인대구경북과학기술원 재순환식 가변 광자 회로 및 그 동작 방법
US11573416B2 (en) 2020-12-22 2023-02-07 Daegu Gyeongbuk Institute Of Science And Technology Recirculating programmable photonic circuits and operating method thereof
CN112881972B (zh) * 2021-01-15 2022-06-21 电子科技大学 一种阵列模型误差下基于神经网络的波达方向估计方法
CN112904270B (zh) * 2021-01-15 2022-06-21 电子科技大学 一种阵列模型误差下基于拟合模型的波达方向估计方法
WO2022192312A1 (en) * 2021-03-12 2022-09-15 Siemens Corporation Method of producing and a photonic metasurface for performing computationally intensive mathematical computations
CN112988113B (zh) * 2021-04-29 2021-09-14 中国科学院西安光学精密机械研究所 一种光子矩阵向量乘法器
CN115407463A (zh) * 2021-05-26 2022-11-29 索尔思光电股份有限公司 光学装置及其组装方法
AT525103B1 (de) * 2021-05-28 2024-03-15 Ait Austrian Inst Tech Gmbh Optische Anordnung zur Emulation eines neuronalen Netzes
WO2022256905A1 (en) * 2021-06-11 2022-12-15 Huawei Technologies Canada Co., Ltd. System and method for optically performing computations using a photonic modulator
CN113452449B (zh) * 2021-07-08 2022-05-17 上海交通大学 对时域信号进行酉矩阵计算的光学装置
CN113761468A (zh) * 2021-07-16 2021-12-07 深圳大学 一种基于数学分解理论的光学矩阵运算模块实现方法
CN113595647B (zh) * 2021-07-21 2022-08-05 联合微电子中心有限责任公司 光子波束成形单元、发射系统和接收系统
CN114095317B (zh) * 2021-08-25 2024-02-13 郑州大学 一种适用于高阶apsk调制的载波参数估计解耦合方法和系统
WO2023191849A2 (en) * 2021-09-24 2023-10-05 Arizona Board Of Regents On Behalf Of The University Of Arizona Managing an optical probe beam for displacement sensing
WO2023050305A1 (en) * 2021-09-30 2023-04-06 Shanghai Xizhi Technology Co., Ltd. Integrated slot waveguide optical phase modulator
CN113644984B (zh) * 2021-10-14 2022-03-11 清华大学 光电数字逻辑运算的光学逻辑元件及其逻辑运算方法
US11907715B2 (en) * 2021-12-20 2024-02-20 International Business Machines Corporation Hardware acceleration with preconditioners
WO2023122369A1 (en) * 2021-12-20 2023-06-29 Massachusetts Institute Of Technology Photonic and electronic hamiltonian machines
GB2616428A (en) * 2022-03-07 2023-09-13 Optalysys Ltd Optical encoders
GB2616426A (en) * 2022-03-07 2023-09-13 Optalysys Ltd Optical encoders
GB2616425A (en) * 2022-03-07 2023-09-13 Optalysys Ltd Optical chiplet
CN116795171A (zh) * 2022-03-15 2023-09-22 上海曦智科技有限公司 数据处理方法及系统
CN114706161B (zh) * 2022-03-28 2023-07-18 上海科技大学 一种基于频率编码的片上集成光学矩阵矢量处理器
CN114815436B (zh) * 2022-04-21 2023-05-19 电子科技大学 基于邻域采样主成分分析的光学相控阵阵元互耦补偿方法
CN114861734B (zh) * 2022-05-26 2024-04-16 东南大学 一种基于光散射的矩阵运算立体结构单元
CN114861927B (zh) * 2022-07-04 2022-11-15 深圳市永达电子信息股份有限公司 基于冯氏计算机布尔数字逻辑的数字量子态的操作方法
CN114840255B (zh) * 2022-07-04 2022-09-27 飞腾信息技术有限公司 处理数据的方法、装置及设备可读存储介质
US20240045464A1 (en) 2022-08-04 2024-02-08 Lightmatter, Inc. Optical computing system with disaggregated memory
WO2024102416A1 (en) * 2022-11-10 2024-05-16 Rain Neuromorphics Inc. Error tolerant ai accelerators
CN117896011A (zh) * 2023-04-27 2024-04-16 光本位科技(苏州)有限公司 通过光子计算单元在光域中进行运算的方法
CN117055273B (zh) * 2023-08-14 2024-06-18 希烽光电科技(南京)有限公司 基于卷积神经网络的光学相控阵初始相位校准系统和方法
CN117675029B (zh) * 2024-01-31 2024-04-19 北京中科国光量子科技有限公司 一种用于光通信和量子密钥分发的不间断偏振补偿方法
CN117787369B (zh) * 2024-02-27 2024-05-10 苏州元脑智能科技有限公司 光计算系统、复值检测方法及数据处理方法

Family Cites Families (136)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3872293A (en) * 1972-01-07 1975-03-18 Us Navy Multi-dimensional fourier transform optical processor
US4567569A (en) 1982-12-15 1986-01-28 Battelle Development Corporation Optical systolic array processing
US4739520A (en) * 1983-09-14 1988-04-19 The Ohio State University Optical switching system
GB2154772B (en) * 1984-02-25 1987-04-15 Standard Telephones Cables Ltd Optical computation
US4607344A (en) * 1984-09-27 1986-08-19 The United States Of America As Represented By The Secretary Of The Navy Triple matrix product optical processors using combined time-and-space integration
US4686646A (en) * 1985-05-01 1987-08-11 Westinghouse Electric Corp. Binary space-integrating acousto-optic processor for vector-matrix multiplication
US4809204A (en) * 1986-04-04 1989-02-28 Gte Laboratories Incorporated Optical digital matrix multiplication apparatus
US4849940A (en) * 1987-12-10 1989-07-18 The Washington Technology Center Optical neural net memory
US4877297A (en) * 1988-04-29 1989-10-31 Rockwell International Corporation Reconfigurable 0ptical interconnect using dynamic hologram
GB2220780B (en) 1988-07-05 1992-12-23 Mitsubishi Electric Corp Neurocomputer
US5004309A (en) 1988-08-18 1991-04-02 Teledyne Brown Engineering Neural processor with holographic optical paths and nonlinear operating means
US4948212A (en) * 1988-08-22 1990-08-14 California Institute Of Technology Optical processing in III-V and II-VI compound semiconductors
US5077619A (en) 1989-10-25 1991-12-31 Tacan Corporation High linearity optical transmitter
JP3115589B2 (ja) * 1989-11-20 2000-12-11 ブリテイッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー 神経ネットワーク
US5220644A (en) * 1989-11-22 1993-06-15 Hitachi, Ltd. Optical neural network system
JPH03204624A (ja) * 1990-01-08 1991-09-06 Sumitomo Cement Co Ltd 光ニューラル演算装置
US5185715A (en) * 1990-03-30 1993-02-09 Hughes Aircraft Company Data processing systems and methods for linear programming
US5416616A (en) * 1990-04-06 1995-05-16 University Of Southern California Incoherent/coherent readout of double angularly multiplexed volume holographic optical elements
JP2762808B2 (ja) 1991-01-09 1998-06-04 松下電器産業株式会社 空間光変調素子および投写型ディスプレイ装置
GB2267165A (en) * 1992-05-11 1993-11-24 Sharp Kk Optical information processor
GB2269296A (en) * 1992-08-01 1994-02-02 Northern Telecom Ltd Telecommunications switch architecture
US5495356A (en) * 1993-04-30 1996-02-27 Nec Research Institute, Inc. Multidimensional switching networks
US5333117A (en) * 1993-10-04 1994-07-26 Nec Research Institute, Inc. Parallel MSD arithmetic using an opto-electronic shared content-addressable memory processor
EP0748472B1 (de) * 1994-03-02 1999-12-15 Matthias Budil Optischer vektormultiplizierer für neuronale netze
US5640261A (en) * 1994-08-18 1997-06-17 Fuji Photo Film Co., Ltd. Optical operation apparatus for finding an inner product of vectors using light
US5699449A (en) 1994-11-14 1997-12-16 The University Of Connecticut Method and apparatus for implementation of neural networks for face recognition
US6005998A (en) 1998-02-20 1999-12-21 Lucent Technologies Inc. Strictly non-blocking scalable matrix optical switch
US6060710A (en) 1998-12-21 2000-05-09 The United States Of America As Represented By The Secretary Of The Army Infrared Mueller matrix detection and ranging system
WO2000072105A1 (en) * 1999-05-19 2000-11-30 Jtc 2000 Development (Delaware), Inc. Input output matching in optical processing
US6178020B1 (en) * 1999-09-30 2001-01-23 Ut-Battelle, Llc Modules and methods for all photonic computing
US7369773B2 (en) * 2000-05-24 2008-05-06 Purdue Research Foundation Methods and systems for polarization control and polarization mode dispersion compensation for wideband optical signals
US20030235413A1 (en) * 2000-07-27 2003-12-25 Nadav Cohen Data processing using polarization-based optical switching and broadcasting
US6594050B2 (en) * 2001-01-03 2003-07-15 Physical Optics Corporation Optical communication switch node
US6728434B2 (en) 2001-06-04 2004-04-27 Axun Technologies, Inc. MEMS dynamic optical spectral filter
AUPR726901A0 (en) 2001-08-24 2001-09-20 Uniquest Limited Quantum optical cnot gate
IL145245A0 (en) * 2001-09-03 2002-06-30 Jtc 2000 Dev Delaware Inc System and method including vector-matrix multiplication
EP1490744A2 (en) 2001-11-06 2004-12-29 The John Hopkins University Techniques for performing logic operations using quantum states of single photons
US7136587B1 (en) * 2001-11-15 2006-11-14 Meshnetworks, Inc. System and method for providing simulated hardware-in-the-loop testing of wireless communications networks
US6690853B1 (en) * 2002-03-11 2004-02-10 Pts Corporation Tunable DWDM demultiplexer
US7317574B2 (en) 2002-05-20 2008-01-08 Magiq Technologies, Inc. Long-distance quantum communication
EP1376918B1 (de) 2002-06-24 2004-09-29 Alcatel Vorrichtung für ein passives optisches Netzwerk
AU2003304482A1 (en) 2002-12-09 2005-04-11 The Johns Hopkins University Method and apparatus for single-photon source and quantum memory
US7366416B2 (en) 2003-08-11 2008-04-29 General Instrument Corporation Hub for a passive optical network hub
US7271461B2 (en) * 2004-02-27 2007-09-18 Banpil Photonics Stackable optoelectronics chip-to-chip interconnects and method of manufacturing
US7133173B2 (en) 2004-07-26 2006-11-07 Hewlett-Packard Development Company, L.P. Nonlinear electromagnetic quantum information processing
US7492983B2 (en) 2004-08-04 2009-02-17 The Furukawa Electric Co., Ltd. Optical circuit device
US7660533B1 (en) 2004-08-04 2010-02-09 The United States Of America As Represented By The Secretary Of The Army Quantum Fourier transform based information transmission system and method
CN1243262C (zh) * 2004-09-09 2006-02-22 上海交通大学 可调谐波长选择/锁定光密集波分复用合波/分波器
US7751654B2 (en) 2005-03-04 2010-07-06 Cornell Research Foundation, Inc. Electro-optic modulation
US8560282B2 (en) 2005-07-11 2013-10-15 D-Wave Systems Inc. Quantum processor-based systems, methods and apparatus for solving problems as logic circuits
JP5371433B2 (ja) 2005-09-29 2013-12-18 ザ ジェネラル ホスピタル コーポレイション スペクトル符号化による光学イメージング方法および装置
WO2007041808A1 (en) 2005-10-13 2007-04-19 National Ict Australia Limited Method and apparatus for sampled optical signal monitoring
US8023828B2 (en) 2005-10-17 2011-09-20 Hewlett-Packard Development Company, L.P. Quantum information conversion between matter and light representations
US7774675B1 (en) * 2005-12-05 2010-08-10 Marvell International Ltd. LDPC codes and expansion method
JP4883273B2 (ja) * 2006-01-11 2012-02-22 日本電気株式会社 乱数品質管理装置および管理方法
AU2007209712A1 (en) 2006-01-27 2007-08-02 D-Wave Systems, Inc. Methods of adiabatic quantum computation
KR100890389B1 (ko) 2006-12-05 2009-03-26 한국전자통신연구원 편광 무의존 단방향 양자 암호 수신 및 송수신 장치
KR101446943B1 (ko) 2006-12-05 2014-10-06 디-웨이브 시스템즈, 인코포레이티드 양자 프로세서 요소들의 국부적 프로그래밍을 위한 시스템들, 방법들 및 장치
US8548334B2 (en) 2006-12-06 2013-10-01 Mohammad Mazed Dynamic intelligent bidirectional optical access communication system with object/intelligent appliance-to-object/intelligent appliance interaction
US7985965B2 (en) 2007-03-29 2011-07-26 Raytheon Company Quantum computing device and method including qubit arrays of entangled states using negative refractive index lenses
US7843209B2 (en) 2007-04-25 2010-11-30 D-Wave Systems Inc. Architecture for local programming of quantum processor elements using latching qubits
US7539375B2 (en) 2007-05-04 2009-05-26 Massachusetts Institute Of Technology Optical coupled resonator structures based on loop-coupled cavities and loop coupling phase
WO2009007741A1 (en) * 2007-07-09 2009-01-15 Bae Systems Plc Improvements relating to optical vector matrix multipliers
US8027587B1 (en) * 2007-08-21 2011-09-27 Sandia Corporation Integrated optic vector-matrix multiplier
CN101896855B (zh) * 2007-10-10 2013-04-03 日本电气株式会社 光调制器和光通信系统
US8190553B2 (en) 2007-12-20 2012-05-29 Routt Thomas J Methods and systems for quantum search, computation and memory
JP5091717B2 (ja) 2008-02-21 2012-12-05 株式会社東芝 量子計算方法および量子計算機
CN101630178B (zh) 2008-07-16 2011-11-16 中国科学院半导体研究所 一种硅基集成化的光学向量-矩阵乘法器
US8224139B2 (en) * 2008-08-21 2012-07-17 Infinera Corporation Tunable optical filter
JP4786727B2 (ja) 2009-03-27 2011-10-05 株式会社東芝 量子計算方法、量子計算機およびプログラム
US8620855B2 (en) 2009-04-17 2013-12-31 Microsoft Corporation Use of topological charge measurements to change between different qubit encodings
US8705900B2 (en) 2010-03-19 2014-04-22 Nippon Telegraph And Telephone Corporation Optical modulator
US8026837B1 (en) * 2010-04-22 2011-09-27 The Aerospace Corporation Systems and methods for converting wideband signals in the optical domain
US9002160B2 (en) 2011-07-28 2015-04-07 Jds Uniphase Corporation Optical switch having a multirow waveguide array
US8837544B2 (en) 2011-10-28 2014-09-16 Hewlett-Packard Development Company, L.P. Quantum optical device
US8693895B2 (en) 2011-11-11 2014-04-08 Wuhan Research Institute Of Posts And Telecommunications Signal transmission and reception device and method
US9494740B2 (en) * 2012-01-31 2016-11-15 Hewlett Packard Enterprise Development Lp Optical architecture with riser cards a matrix and optic cables to carry outbound signals of the matrix to the riser cards
US9014568B2 (en) 2012-02-16 2015-04-21 Nec Laboratories America, Inc. Next generation optical access network with centralized digital OLT
US9712235B2 (en) * 2012-02-28 2017-07-18 Spatial Digital Systems, Inc. Resource allocation in PON networks via wave-front multiplexing and de-multiplexing
US9485048B2 (en) * 2012-06-08 2016-11-01 The Royal Institution For The Advancement Of Learning/Mcgill University Methods and devices for space-time multi-plane optical networks
US8625936B1 (en) 2012-06-29 2014-01-07 Alcatel Lucent Advanced modulation formats using optical modulators
US10033477B2 (en) * 2012-07-27 2018-07-24 Hewlett Packard Enterprise Development Lp Spatial multiplexing for optical transmission
CN102866876B (zh) * 2012-08-22 2015-03-04 清华大学 一种单片集成的光学矩阵-向量乘法器
US10534189B2 (en) 2012-11-27 2020-01-14 The Board Of Trustees Of The Leland Stanford Junior University Universal linear components
US20140199065A1 (en) * 2013-01-15 2014-07-17 Hewlett-Packard Development Company, L.P. Multimode multiplexing
FR3002654A1 (fr) 2013-02-26 2014-08-29 St Microelectronics Sa Modulateur optique avec correction de polarisation automatique
US9465168B2 (en) 2013-04-24 2016-10-11 Nec Corporation Polarization beam splitter and optical device
WO2014192153A1 (ja) 2013-05-31 2014-12-04 株式会社日立製作所 半導体装置
JP6300049B2 (ja) 2013-07-09 2018-03-28 ザ ボード オブ トラスティーズ オブ ザ レランド スタンフォード ジュニア ユニバーシティー 光パラメトリック発振器のネットワークを使用する計算
GB201402736D0 (en) * 2013-07-26 2014-04-02 Isis Innovation Method of training a neural network
CN103473213A (zh) * 2013-09-12 2013-12-25 中国科学院半导体研究所 用于光学向量-矩阵乘法器并行信息加载和提取的系统
CN105531946B (zh) 2013-12-23 2018-01-19 华为技术有限公司 一种光差分信号的发送和接收方法、装置和系统
CN105917257B (zh) * 2014-02-24 2017-08-29 洛克利光子有限公司 检测器重调器和光电子交换机
JP2015169847A (ja) 2014-03-07 2015-09-28 国立大学法人徳島大学 位相感応型光増幅器及び励起光位相同期回路
US9354039B2 (en) * 2014-06-06 2016-05-31 Massachusetts Institute Of Technology Methods, systems, and apparatus for programmable quantum photonic processing
US9239264B1 (en) * 2014-09-18 2016-01-19 Joseph R. Demers Transceiver method and apparatus having phase modulation and common mode phase drift rejection
EP3202056B1 (en) * 2014-10-02 2019-06-19 B.G. Negev Technologies & Applications Ltd., at Ben-Gurion University All-optical silicon-photonic constellation conversion of amplitude-phase modulation formats
US9544062B2 (en) 2014-12-22 2017-01-10 Opel Solar, Inc. Coherent optical receiver
US10009135B2 (en) * 2015-02-06 2018-06-26 The Trustees Of Princeton University System and method for photonic processing
US9753224B2 (en) * 2015-03-25 2017-09-05 The Board Of Trustees Of The Leland Stanford Junior University Field-programmable optical component
WO2016191679A1 (en) * 2015-05-28 2016-12-01 Massachusetts Institute Of Technology Apparatus and methods for quantum key distribution
US9941957B2 (en) * 2016-01-07 2018-04-10 Luxtera, Inc. Method and system for connectionless integrated optical receiver and transmitter test
CN105681787B (zh) * 2016-01-22 2019-01-18 北京大学 对时空信号进行编码的方法和装置
GB2551685B (en) * 2016-02-16 2019-12-11 Toshiba Kk An optical device, a transmitter for a quantum communication system and a quantum communication system
US10126572B2 (en) 2016-03-31 2018-11-13 Huawei Technologies Co., Ltd. Automatic endless polarization controller for a silicon-on-insulator platform
KR102542496B1 (ko) * 2016-06-02 2023-06-13 메사추세츠 인스티튜트 오브 테크놀로지 광 신경망 용 장치 및 방법
US10148360B2 (en) * 2016-06-17 2018-12-04 Nxgen Partners Ip, Llc System and method for communication using prolate spheroidal wave functions
US10326526B2 (en) * 2016-09-08 2019-06-18 Nxgen Partners Ip, Llc Method for muxing orthogonal modes using modal correlation matrices
US10367590B2 (en) 2016-09-22 2019-07-30 Hewlett Packard Enterprise Development Lp Concurrently performing attribute-dependent operations on optical signals
US10274989B2 (en) * 2016-10-13 2019-04-30 Fathom Computing Wavelength multiplexed matrix-matrix multiplier
US20180260703A1 (en) 2016-11-22 2018-09-13 Massachusetts Institute Of Technology Systems and methods for training neural networks
US10095262B2 (en) * 2016-12-12 2018-10-09 The Aerospace Corporation Systems and methods for performing linear algebra operations using multi-mode optics
US10382139B2 (en) * 2016-12-21 2019-08-13 Ceragon Networks Ltd. Polarization pre-coding for a single carrier communication system
US11290150B2 (en) * 2017-05-03 2022-03-29 Assia Spe, Llc Systems and methods for implementing high-speed waveguide transmission over wires
US10634851B2 (en) 2017-05-17 2020-04-28 Massachusetts Institute Of Technology Apparatus, systems, and methods for nonblocking optical switching
WO2019014345A1 (en) * 2017-07-11 2019-01-17 Massachusetts Institute Of Technology OPTICAL ISING MACHINES AND OPTICAL CONVOLUTIVE NEURAL NETWORKS
US10197971B1 (en) * 2017-08-02 2019-02-05 International Business Machines Corporation Integrated optical circuit for holographic information processing
US10757450B2 (en) 2017-10-05 2020-08-25 Cable Television Laboratories, Inc System and methods for data compression and nonuniform quantizers
US10236952B1 (en) * 2018-01-17 2019-03-19 B. G. Negev Technologies And Applications Ltd., At Ben-Gurion University Energy-efficient power and offset allocation of spatial multiplexing in multimode fiber
WO2020027868A2 (en) * 2018-02-06 2020-02-06 Massachusetts Institute Of Technology Serialized electro-optic neural network using optical weights encoding
US11922136B2 (en) * 2018-02-23 2024-03-05 The George Washington University Residue arithmetic nanophotonic system
US10345519B1 (en) * 2018-04-11 2019-07-09 Microsoft Technology Licensing, Llc Integrated optical beam steering system
US11494461B2 (en) * 2018-04-17 2022-11-08 The Trustees Of The University Of Pennsylvania Metastructures for solving equations with waves
US10670860B2 (en) * 2018-04-30 2020-06-02 The Trustees Of Princeton University Photonic filter bank system and method of use
WO2019217835A1 (en) 2018-05-10 2019-11-14 The Board Of Trustees Of The Leland Stanford Junior University Training of photonic neural networks through in situ backpropagation
WO2019222150A1 (en) * 2018-05-15 2019-11-21 Lightmatter, Inc. Algorithms for training neural networks with photonic hardware accelerators
KR20210020912A (ko) * 2018-05-15 2021-02-24 라이트매터, 인크. 광자 처리 시스템들 및 방법들
TW202032187A (zh) * 2018-06-04 2020-09-01 美商萊特美特股份有限公司 實數光子編碼
US20190370644A1 (en) * 2018-06-04 2019-12-05 Lightmatter, Inc. Convolutional layers for neural networks using programmable nanophotonics
US11628902B2 (en) 2018-08-01 2023-04-18 Huffy Corporation Tool-less steering wheel assembly
WO2020096913A1 (en) * 2018-11-08 2020-05-14 Luminous Computing, Inc. System and method for photonic computing
US11073658B2 (en) * 2018-12-28 2021-07-27 Universitat Politècnica De València Photonic chip, field programmable photonic array and programmable circuit
US11551056B2 (en) * 2019-01-29 2023-01-10 Hewlett Packard Enterprise Development Lp Staged neural networks for solving NP hard/complete problems
CA3130114A1 (en) * 2019-02-26 2020-09-03 Lightmatter, Inc. Hybrid analog-digital matrix processors
US20220261645A1 (en) * 2021-02-16 2022-08-18 Lightmatter, Inc. The accuracy of low-bitwidth neural networks by regularizing the higher-order moments of weights and hidden states
IL291772A (en) * 2021-03-31 2022-10-01 Cognifiber Ltd Ultra wideband optical data processor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11428785B2 (en) * 2020-06-12 2022-08-30 Ours Technology, Llc Lidar pixel with active polarization control
CN115698752A (zh) * 2020-06-12 2023-02-03 我们科技有限责任公司 具有主动偏振控制的lidar像素
CN115698752B (zh) * 2020-06-12 2024-03-01 欧若拉运营公司 光检测和测距系统以及自动驾驶车辆控制系统

Also Published As

Publication number Publication date
US10763974B2 (en) 2020-09-01
US20190356394A1 (en) 2019-11-21
CA3100326A1 (en) 2019-11-21
TWI818020B (zh) 2023-10-11
US20220094443A1 (en) 2022-03-24
US20230412279A1 (en) 2023-12-21
CN112384748B (zh) 2022-06-17
EP3803265A4 (en) 2022-01-26
US11626931B2 (en) 2023-04-11
JP7362727B2 (ja) 2023-10-17
EP3803265A1 (en) 2021-04-14
JP2024001148A (ja) 2024-01-09
TW202020598A (zh) 2020-06-01
CN112384748A (zh) 2021-02-19
SG11202011352SA (en) 2020-12-30
US11218227B2 (en) 2022-01-04
CN114912604A (zh) 2022-08-16
JP2021523508A (ja) 2021-09-02
US20200396007A1 (en) 2020-12-17
TW202403491A (zh) 2024-01-16
WO2019222185A1 (en) 2019-11-21

Similar Documents

Publication Publication Date Title
JP7362727B2 (ja) フォトニック処理デバイス及び方法
US10608663B2 (en) Real-number photonic encoding
US20220366308A1 (en) Systems and methods for training matrix-based differentiable programs
TWI831932B (zh) 混合類比-數位處理器及該處理器中執行的方法
US20190370644A1 (en) Convolutional layers for neural networks using programmable nanophotonics
US11936434B2 (en) Systems and methods for analog computing using a linear photonic processor
US11719963B2 (en) Optical modulation for optoelectronic processing
CN113496281A (zh) 光电计算系统
CN113570051B (zh) 光电处理系统
US12025862B2 (en) Optical modulation for optoelectronic processing
US20210173238A1 (en) Optical modulaton for optoelectronic processing
US20230142781A1 (en) Photonic Ising Compute Engine with An Optical Phased Array
Cheng et al. Direct Optical Convolution Computing Based on Arrayed Waveguide Grating Router
Ou et al. Hypermultiplexed Integrated Tensor Optical Processor

Legal Events

Date Code Title Description
E902 Notification of reason for refusal