KR20240054223A - 머신러닝용 전자광학 네트워크 - Google Patents

머신러닝용 전자광학 네트워크 Download PDF

Info

Publication number
KR20240054223A
KR20240054223A KR1020237044346A KR20237044346A KR20240054223A KR 20240054223 A KR20240054223 A KR 20240054223A KR 1020237044346 A KR1020237044346 A KR 1020237044346A KR 20237044346 A KR20237044346 A KR 20237044346A KR 20240054223 A KR20240054223 A KR 20240054223A
Authority
KR
South Korea
Prior art keywords
photonic
processing element
optical
channel
clock signal
Prior art date
Application number
KR1020237044346A
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 KR20240054223A publication Critical patent/KR20240054223A/ko

Links

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
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B6/00Light guides; Structural details of arrangements comprising light guides and other optical elements, e.g. couplings
    • G02B6/10Light guides; Structural details of arrangements comprising light guides and other optical elements, e.g. couplings of the optical waveguide type
    • G02B6/12Light guides; Structural details of arrangements comprising light guides and other optical elements, e.g. couplings of the optical waveguide type of the integrated circuit kind
    • G02B6/12002Three-dimensional structures
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B6/00Light guides; Structural details of arrangements comprising light guides and other optical elements, e.g. couplings
    • G02B6/10Light guides; Structural details of arrangements comprising light guides and other optical elements, e.g. couplings of the optical waveguide type
    • G02B6/12Light guides; Structural details of arrangements comprising light guides and other optical elements, e.g. couplings of the optical waveguide type of the integrated circuit kind
    • G02B6/12004Combinations of two or more optical elements
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B6/00Light guides; Structural details of arrangements comprising light guides and other optical elements, e.g. couplings
    • G02B6/24Coupling light guides
    • G02B6/26Optical coupling means
    • G02B6/30Optical coupling means for use between fibre and thin-film device
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B6/00Light guides; Structural details of arrangements comprising light guides and other optical elements, e.g. couplings
    • G02B6/24Coupling light guides
    • G02B6/26Optical coupling means
    • G02B6/34Optical coupling means utilising prism or grating
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B6/00Light guides; Structural details of arrangements comprising light guides and other optical elements, e.g. couplings
    • G02B6/24Coupling light guides
    • G02B6/42Coupling light guides with opto-electronic elements
    • G02B6/43Arrangements comprising a plurality of opto-electronic elements and associated optical interconnections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5318Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with column wise addition of partial products, e.g. using Wallace tree, Dadda counters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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/045Combinations of networks
    • 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/048Activation functions
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Optics & Photonics (AREA)
  • Mathematical Optimization (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Neurology (AREA)
  • Optical Communication System (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Multi Processors (AREA)

Abstract

다양한 실시예는 복수의 처리 요소를 포함하는 전자 집적 회로 및 복수의 양방향 광자 채널(예: 전자 집적 회로 아래의 광자 집적 회로에 구현됨)을 포함하는 회로 패키지를 제공하여 처리 요소를 전기 광자 네트워크로 연결한다. 처리 요소에는 광자 채널 인터페이스가 있는 메시지 라우터가 포함된다. 각 양방향 광자 채널은 한쪽 끝에서 처리 요소 중 제1 처리 요소의 메시지 라우터의 광자 채널 인터페이스와 인터페이스하고 다른 쪽 끝에서 처리 요소 중 제2 처리 요소의 메시지 라우터의 광자 채널 인터페이스와 인터페이스하며 제1 및 제2 처리 요소의 메시지 라우터 간에 메시지(예: 패킷)를 광학적으로 전송하도록 구성된다.

Description

머신러닝용 전자광학 네트워크
본 발명은 2021년 6월 18일에 출원된 미국 가특허출원 일련번호 63/212,353에 대한 우선권을 주장하며, 이는 본 출원서 전체에 참조로 통합되어 있다.
머신 러닝(ML) 및 딥 러닝(DL)과 같은 인공 지능(AI) 컴퓨팅에 대한 수요는 사용 가능한 처리 용량의 증가로 충족할 수 있는 속도보다 더 빠르게 증가하고 있다. 이러한 수요 증가와 AI 모델의 복잡성 증가로 인해 많은 칩을 짧은 지연 시간과 빠른 속도로 서로 데이터를 전송할 수 있는 시스템에 연결해야 할 필요성이 커지고 있다. 현재 알려진 접근 방식에서는 병렬 메시지를 직렬 비트 스트림으로 변환하여 칩 간의 전기적 상호 연결 또는 광섬유를 통해 전송할 수 있는 직렬화/역직렬화(SerDes) 블록을 사용하여 칩 간 연결이 이루어진다. 이러한 시스템에서는 온칩 통신과 오프칩 통신이 구분된다. 칩의 컴퓨팅 요소는 금속 인터커넥트를 통해 패킷을 통신하는 반면, 다른 칩으로 향하는 메시지(예: 패킷)는 칩 레벨의 인터커넥트를 통해 인터페이스가 있는 곳으로 이동하여 데이터가 비트 스트림으로 변환되어 전송되는 SerDes로 이동한다. 수신 방향에서 비트는 광섬유 또는 전기 인터커넥트에 도착하여 단어로 조립된 다음 칩 내부의 금속 인터커넥트를 통해 목적지 프로세서 또는 메모리로 전송된다. 칩 내부의 데이터를 SerDes로 이동하고 SerDes에서 시스템의 다른 칩으로 이동하는 데 상당한 에너지가 소비된다. 또한, 현재 알려진 ML 모델의 하드웨어 구현은 ML 모델을 실행하는 동안 광범위하게 사용되는 곱하기-누적(MAC) 연산을 수행하는 데 있어 상대적으로 전력 효율이 떨어진다.
다음의 번호가 지정된 예는 예시적인 실시예이며, 제한적인 의도로 작성된 것은 아니다.
1. 회로 패키지로서, 회로 패키지는: 복수의 처리 요소(각각의 처리 요소는 광자 채널 인터페이스를 포함하는 메시지 라우터를 포함함)를 포함하는 전자 집적 회로; 및 복수의 처리 요소를 전자 광자 네트워크로 연결하는 복수의 양방향 광자 채널(여기서 각각의 양방향 광자 채널은 제1 단부에서 복수의 처리 요소 중 제1 처리 요소의 메시지 라우터의 광자 채널 인터페이스와 인터페이스하고 제2 단부에서 복수의 처리 요소 중 제2 처리 요소의 메시지 라우터의 광자 채널 인터페이스와 인터페이스하며 제1 처리 요소 및 제2 처리 요소의 메시지 라우터 간에 패킷을 광학적으로 전송하도록 구성됨)을 포함한다.
2. 예 1의 회로 패키지로서, 각각의 양방향 광자 채널은 양방향으로 하나 이상의 단방향 광자 링크를 포함한다.
3. 예 2의 회로 패키지로서, 각각의 양방향 광자 채널은 양방향의 복수의 단방향 광자 링크를 포함하고, 각각의 방향에서의 복수의 단방향 광자 링크가 함께 결합된다.
4. 예 2 또는 예 3의 회로 패키지로서, 각각의 단방향 광자 링크는 입력 단부의 광 변조기, 출력 단부의 광 감지기, 및 광 변조기를 광 감지기에 연결하는 광 도파관을 포함하고, 각각의 광자 채널 인터페이스는 입력 단부에서 인터페이스하는 각각의 단방향 광자 링크용 변조기 드라이버 및 출력 단부에서 인터페이스하는 각각의 단방향 광자 링크용 트랜스임피던스 증폭기를 포함한다.
5. 예 4의 회로 패키지로서, 광 변조기는 전자 흡수 변조기(electro-absorption modulators, EAM)이다.
6. 예 4의 회로 패키지로서, 광 변조기는 링 변조기, 마하-젠더 변조기, 양자 구속 스타크 효과(quantum-confined Stark effect, QCSE) 전기 흡수 변조기 중 적어도 하나를 포함한다.
7. 예 4 내지 6 중 어느 하나의 패키지로서, 전자 회로가 전자 회로층에 구현되며, 복수의 양방향 광자 채널이 광자 회로층에 구현된다.
8. 예 7의 회로 패키지로서, 전자 회로층은 제1 반도체 칩에 구현되고, 광자 회로층은 제2 반도체 칩에 구현된다.
9. 예 7 또는 예 8의 회로 패키지로서, 각각의 변조기 드라이버는 자신과 연결되어 있는 광 변조기의 바로 위 또는 아래에 배치되고 각각의 트랜스임피던스 증폭기는 자신과 연결되어 있는 광 감지기의 바로 위 또는 아래에 배치된다.
10. 예 8의 회로 패키지로서, 광 변조기와 관련된 변조기 드라이버 사이의 거리 및 광 감지기와 관련된 트랜스임피던스 증폭기 사이의 거리가 200㎛보다 작다.
11. 예 8 내지 10 중 어느 하나에 따른 회로 패키지로서, 반도체 칩의 광자 회로층에서, 하나 이상의 레이저 광원에 의해 제공되는 광 반송파 신호를 광자 링크의 광 변조기에 공급하는 광 입력 도파관을 더 포함하며, 광 반송파 신호는 관련된 변조기 드라이버에 의해 인가된 구동 신호에 따라 광 변조기에 의해 변조되어 패킷을 전달하는 변조된 광 신호를 생성한다.
12. 예 11의 회로 패키지로서, 회로 패키지에 통합된 하나 이상의 레이저 광원을 더 포함한다.
13. 예 12의 회로 패키지로서, 하나 이상의 레이저 광원은 광자 회로층에 있는 하나 이상의 광자 집적 회로(PIC)의 광 입력 도파관과 통합되어 있다.
14. 예 12의 회로 패키지로서, 하나 이상의 레이저 광원은 반도체 칩과 공동 패키징된 인터포저에 구현되며 광 입력 도파관을 포함하는 광자 회로층에서 하나 이상의 PIC와 에지 결합된다.
15. 예 11의 회로 패키지로서, 하나 이상의 레이저 광원은 회로 패키지의 외부에 구현되고 하나 이상의 광섬유를 통해 회로 패키지 내의 하나 이상의 PIC에 광학적으로 결합된다.
16. 예 15의 회로 패키지로서, 하나 이상의 광섬유는 PIC에 구현된 격자 커플러 위에 위치한 하나 이상의 광섬유 부착 유닛(FAU)을 통해 하나 이상의 PIC에 결합된다.
17. 예 15의 회로 패키지로서, 하나 이상의 광섬유는 하나 이상의 PIC에 에지 결합된다.
18. 예 15 내지 17 중 어느 하나에 따른 회로 패키지로서, 반도체 칩의 광자 회로층에서 하나 이상의 광 스플리터를 더 포함하되, 각각의 광 스플리터는 하나 이상의 레이저 광원 중 관련된 하나로부터 수신된 입력 광 반송파 신호를 복수의 입력 광 도파관들 사이에서 분할한다.
19. 예 1 내지 18 중 어느 하나에 따른 회로 패키지로서, 전자 집적 회로는 애플리케이션 특정 집적 회로(ASIC)이다.
20. 예 19의 회로 패키지로서, ASIC은 디지털 및 혼합 신호 전자 회로를 포함한다.
21. 예 19의 회로 패키지로서, 각각의 처리 요소는 벡터 간의 내적을 계산하기 위한 곱셈기와 덧셈기의 조합 트리를 구현하는 내적 엔진을 더 포함한다.
22. 예 21의 회로 패키지로서, 각각의 처리 요소는 내적 엔진의 출력으로 계산된 벡터를 획득하고 처리하기 위한 텐서 엔진을 더 포함한다.
23. 예 21 또는 예 22의 회로 패키지로서, 각각의 처리 요소는 메모리 시스템을 더 포함한다.
24. 예 19 내지 예 23 중 어느 하나에 따른 회로 패키지로서, 주변 장치 구성요소 상호 연결 익스프레스(PCIE) 인터페이스, 고급 RISC 머신 코어, 이미지 프로세서 또는 외부 메모리 컨트롤러 중 적어도 하나를 더 포함한다.
25. 예 19 내지 24 중 어느 하나에 따른 회로 패키지로서, 고 대역폭 메모리(HBM)를 더 포함하고, ASIC은 복수의 처리 요소를 HBM에 통신가능하게 결합하는 RAM 컨트롤러를 더 포함한다.
26. 예 1 내지 예 25 중 어느 하나에 따른 회로 패키지로서, 복수의 처리 요소의 메시지 라우터는 패킷의 일부에 라우팅 정보를 갖는 패킷을 라우팅하도록 구성되고, 라우팅 정보를 이용하여 전자-광자 네트워크를 통과하는 경로가 결정된다.
27. 예 26의 회로 패키지로서, 각각의 처리 요소의 메시지 라우터는, 자신의 광자 채널 인터페이스 중 하나를 통해 수신된 패킷의 라우팅 정보를 기반으로 패킷의 목적지를 결정하며, 목적지가 로컬 메모리 또는 처리 요소 내의 처리 엔진인 경우에는 로컬 포트로 패킷을 라우팅하고, 목적지가 처리 요소 내의 로컬 메모리 또는 처리 엔진이 아닌 경우에는 광자 채널 인터페이스 중 또 다른 하나로 패킷을 라우팅하도록 구성된다.
28. 예 26 또는 예 27의 회로 패키지로서, 복수의 처리 요소는 규칙적인 그리드에 배열되고, 패킷의 라우팅 정보는 패킷의 목적지인 처리 요소에 대해 그리드를 따라 제1 차원 및 제2 차원의 상대적 위치를 지정한다.
29. 예 28의 회로 패키지로서, 각각의 양방향 광자 채널은 제1 차원 또는 제2 차원 중 하나에서 그리드에서 바로 인접한 한 쌍의 처리 요소를 연결하며, 각각의 처리 요소의 메시지 라우터는 패킷을 제1 차원을 따라 바로 인접한 처리 요소로 라우팅할 경우 제1 차원의 상대 위치와 관련된 라우팅 정보의 값을 감소시키며 제2 차원을 따라 바로 인접한 처리 요소로 패킷을 라우팅할 경우 제2 차원의 상대 위치와 관련된 라우팅 정보의 값을 감소시키도록 구성된다.
30. 예 26 내지 예 29 중 어느 하나의 실시예의 회로 패키지로서, 복수의 양방향 광자 채널은 복수의 처리 요소를 적어도 2개의 차원을 정의하는 그리드 토폴로지를 갖는 전자-광자 네트워크 내로 연결하도록 구성되며, 패킷의 라우팅 정보는 패킷의 목적지인 처리 요소에 대해 적어도 2개의 차원 내의 좌표를 지정하고, 각각의 처리 요소의 메시지 라우터는, 적어도 2개의 차원 중 하나를 따라 위상적으로 바로 인접한 처리 요소로 패킷을 라우팅할 경우, 적어도 2개의 차원 중 하나와 관련된 값을 감소시킴으로써 패킷의 라우팅 정보를 수정한다.
31. 예 1 내지 예 30 중 어느 하나에 따른 회로 패키지로서, 전자 회로는 각각이 복수의 처리 요소 중 하나에 대응하는 타일의 배열로 구성된다.
32. 예 31의 회로 패키지로서, 타일은 직사각형 그리드 내에 배열된 직사각형 타일이다.
33. 예 32의 회로 패키지로서, 복수의 양방향 광자 채널은 전기-광자 네트워크의 사변형 메시 토폴로지를 생성하도록 직사각형 그리드 내에서 바로 인접한 타일의 각각의 쌍을 직접 연결하도록 구성된다.
34. 예 33의 회로 패키지로서, 복수의 양방향 광자 채널은 직사각형 그리드 내에서 인접하지 않은 타일의 하나 이상의 쌍을 직접 연결하도록 더 구성된다.
35. 예 33 내지 예 35 중 어느 하나에 따른 회로 패키지로서, 전자-광자 네트워크의 래핑된 토로이달 메시 토폴로지를 생성하도록 직사각형 그리드의 반대쪽 에지 상의 타일의 쌍을 직접 연결하도록 구성된 양방향 광자 채널을 더 포함한다.
36. 예 1 내지 예 35 중 어느 하나의 회로 패키지로서, 복수의 양방향 광자 채널은 복수의 처리 요소를 입방 그리드 토폴로지를 갖는 전자광자 네트워크로 연결하도록 구성된다.
37. 방법으로서, 방법은: 전자 광학 네트워크의 제1 전자 처리 요소에서, 헤더 및 페이로드(헤더 또는 페이로드의 일부는 전자 광학 네트워크의 목적지 전자 처리 요소와 관련된 라우팅 정보를 포함함)를 갖는 전자 패킷을 생성하는 단계; 라우팅 정보를 기반으로, 제1 전자 처리 요소로부터 전자 광학 네트워크의 하나 이상의 중간 전자 처리 요소를 경유하여 목적지 전자 처리 요소로의 경로를 결정하는 단계(제1, 목적지, 및 중간 처리 요소는 관련된 광자 채널에 의해 연결되고, 제1 처리 요소에서 패킷을 광자 채널 중 하나를 통해 경로를 따라 제1 중간 처리 요소에 연결된 포트로 라우팅함); 패킷을 전자 신호에서 광 신호로 변환하여 제1 중간 처리 요소로 전송하는 단계; 하나 이상의 중간 처리 요소 각각에서, 광 신호를 다시 전자 신호로 변환하고, 전자 신호를 광자 채널 중 하나를 통해 중간 처리 요소와 목적지 처리 요소 중 경로를 따라 다음에 있는 처리 요소에 연결된 포트로 라우팅하며, 전자 신호를 경로를 따라 다음에 있는 처리 요소로 전송하기 위한 광 신호로 변환하는 단계; 및 목적지 처리 요소에서, 광 신호를 다시 전자 신호로 변환하는 단계를 포함한다.
38. 예 37의 방법으로서, 각 전자 신호를 광 신호로 변환하는 단계는 각 전자 처리 요소의 변조기 드라이버를 작동하여 광자 채널의 관련된 변조기가 패킷에 따라 광 신호를 변조하도록 하는 단계를 포함하고, 광 신호를 다시 전자 신호로 변환하는 단계는 광자 채널의 광 감지기에 의해 광 신호를 측정하는 단계를 포함한다.
39. 예 37 또는 예 38의 방법으로서, 제1, 중간, 및 목적지 전자 처리 요소 각각은 라우터를 포함하고, 전자 광학 네트워크를 통과하는 경로는 제1, 중간 및 목적지 전자 처리 요소의 라우터들에 의해 집합적으로 결정된다.
40. 예 39의 방법으로서, 라우팅 정보는 목적지 전자 처리 요소에 대한 1차원 및 2차원의 상대적 위치 측면에서 목적지를 지정하고, 방법은, 제1 또는 중간 전자 처리 요소 중 어느 하나로부터 경로를 따라 다음 전자 처리 요소로 패킷을 전송하는 것에 대응하여, 패킷의 라우팅 정보를 수정하는 단계를 더 포함한다.
41. 예 39 또는 예 40의 방법으로서, 제1, 중간, 및 목적지 전자 처리 요소의 라우터는 각각 로컬 포트 및 해당 전자 처리 요소를 전자-광자 네트워크 내의 다수의 다른 전자 처리 요소에 연결하는 다수의 광자 채널과 관련된 포트를 포함하고, 제1 및 중간 전자 처리 요소의 라우터는 각각 패킷을 경로를 따라 다음에 있는 전자 처리 요소에 연결된 광자 채널과 관련된 포트에 지시하며, 목적지 전자 처리 요소의 라우터는 패킷을 해당 로컬 포트로 지시한다.
42. 시스템으로서, 시스템은: 복수의 처리 요소와 메시지 송수신이 가능한 복수의 메시지 라우터를 포함하는 전자 집적 회로(EIC)와 메시지 라우터를 메시지에서 작동할 수 있는 칩 내 전기 광자 네트워크로 연결하는 복수의 칩 내 양방향 광자 채널을 각각 포함하는 제1 회로 패키지 및 제2 회로 패키지; 및 제1 회로 패키지와 제2 회로 패키지의 메시지 라우터들을 제1 회로 패키지의 EIC로부터 제2 회로 패키지의 EIC로 메시지를 전송할 수 있는 칩 간 전자-광자 네트워크로 연결하는 복수의 칩 간 양방향 광자 채널을 포함한다.
43. 예 42의 시스템으로서, 각 회로 패키지는 EIC가 구현되는 전자 회로층 및 칩 내 양방향 광자 채널이 구현되는 광자 회로층을 포함한다.
44. 예 43의 시스템으로서, 각 회로 패키지는 전자 회로층을 구현하는 제1 반도체 칩 및 광자 회로층을 구현하는 제2 반도체 칩을 포함한다.
45. 예 42 내지 예 44 중 어느 하나의 시스템으로서, 각 회로 패키지의 복수의 칩 내 양방향 광자 채널은 회로 패키지의 광자 집적 회로(PIC)에서 광 도파관을 사용하여 구현된다.
46. 예 42 내지 예 45 중 어느 하나의 시스템으로서, 칩 내 양방향 광자 채널은 각각 각 방향으로 하나 이상의 광자 링크를 포함하며, 각 광자 링크는 PIC에서 광자 링크의 입력 단부에 있는 광 변조기, 광자 링크의 출력 단부에 있는 광 감지기 및 광 변조기와 광 감지기를 연결하는 광 도파관을 포함한다.
47. 예 46의 시스템으로서, 메시지 라우터는 양방향 광자 채널 중 하나와 인터페이스하기 위한 광 회로 인터페이스를 각각 포함하고, 각 광 회로 인터페이스는 광자 링크의 입력 단부에서 인터페이스하는 각 광자 링크용 변조기 드라이버와 광자 링크의 출력 단부에서 인터페이스하는 각 광자 링크용 트랜스임피던스 증폭기를 포함한다.
48. 예 46 또는 예 47의 시스템으로서, 복수의 칩 간 양방향 광자 채널은 광섬유로 구현된다.
49. 예 48의 시스템으로서, 제1 및 제2 회로 패키지는 각각 광섬유를 통해 제1 회로 패키지의 전자 광학 네트워크를 제2 회로 패키지의 전자 광학 네트워크에 결합하기 위한 하나 이상의 광학 결합 구조를 포함한다.
50. 예 49의 시스템으로서, 광 커플러는 PIC에 에지 커플러를 포함한다.
51. 예 49 또는 예 50의 시스템으로서, 광 커플링 구조는 PIC의 격자 커플러 위에 위치한 광케이블 부착 유닛(FAU)을 포함한다.
52. 예 48 내지 예 51 중 어느 하나의 시스템으로서, 칩 간 양방향 광자 채널은 다중화된 광 신호를 전송하도록 구성된다.
53. 예 52의 시스템으로서, 칩 간 양방향 광자 채널은 각각 각 방향의 방향성 광자 채널을 포함하며, 제1 회로 패키지의 제1 PIC와 제2 회로 패키지의 제2 PIC 사이의 각 방향성 광자 채널은: 제1 PIC 내에, 복수의 각각의 파장에서 변조된 광 신호를 생성하기 위한 복수의 광 변조기, 복수의 파장의 변조된 광 신호를 단일 다중화된 광 신호로 결합하는 멀티플렉서, 및 다중화된 광신호를 광섬유에 결합시키는 광결합 구조; 및 제2 PIC 내에, 광섬유로부터 다중화된 광신호를 제2 PIC에 결합시키는 광결합 구조, 다중화된 광신호를 복수의 파장의 변조된 광신호로 역다중화하는 역다중화기, 및 복수의 파장에서 변조된 광 신호를 측정하기 위한 복수의 개별 광 감지기를 포함한다.
54. 예 42 내지 예 53 중 어느 하나의 시스템으로서, 칩 내 양방향 광자 채널의 변조기에 광 반송파 신호를 공급하기 위한 적어도 하나의 단일 파장 광원, 및 칩 간 양방향 광자 채널의 변조기 그룹에 다중 파장의 광 반송파 신호를 공급하기 위한 적어도 하나의 다중 파장 광원을 더 포함한다.
55. 예 54의 시스템으로서, 적어도 하나의 단일 파장 광원 및 적어도 하나의 다중 파장 광원은 회로 패키지에 통합된 광원을 포함한다.
56. 예 54의 시스템으로서, 적어도 하나의 단일 파장 광원 및 적어도 하나의 다중 파장 광원은 회로 패키지에 외부로 제공되고 하나 이상의 광섬유를 통해 회로 패키지 내의 하나 이상의 PIC에 광학적으로 결합되는 광원을 포함한다.
57. 예 42 내지 예 56 중 어느 하나의 시스템으로서, 복수의 관련 처리 요소와 관련된 EIC를 갖는 복수의 추가 회로 패키지를 더 포함하고, 제1, 제2 및 추가 회로 패키지는 사변형 그리드에 배열된다.
58. 예 57의 시스템으로서, 칩 내 및 칩 간 양방향 광자 채널 각각은 사변형 그리드에서 바로 인접한 한 쌍의 처리 요소를 연결하여 칩 간 전기 광자 네트워크의 사변형 메시 토폴로지를 생성한다.
59. 예 58의 시스템으로서, 복수의 칩 간 양방향 광자 채널은 사변형 그리드의 반대쪽 에지에 있는 처리 요소 쌍을 직접 연결하여 확장 가능한 래핑된 토로이드 메시 토폴로지를 갖는 전기 광자 네트워크를 형성하도록 더 구성된다.
60. 예 42 내지 예 59 중 어느 하나의 시스템으로서, 메시지 라우터들이 칩간 및 칩내 전자 광학 네트워크를 통해 메시지를 라우팅하도록 구성되며, 메시지가 양방향 광학 채널을 통해 제1 처리 요소로부터 제1 처리 요소와 직접 연결되지 않은 제2 처리 요소로 전송될 경우, 전자가 하나 이상의 제3 처리 요소를 경유하는 경로를 따라 제2 처리 요소로 라우팅되고, 전자는 하나 이상의 제3 처리 요소를 경유하는 경로를 따라 제2 처리 요소로 라우팅되며, 메시지는 각각의 제3 처리 요소에서 광학 영역에서 전자 영역으로 변환된 후 각각의 제3 처리 요소와 연결된 메시지 라우터에서 다시 광학 영역으로 변환된다.
61. 예 60의 시스템으로서, 메시지 라우터들은 라우팅 정보와 관련된 메시지의 일부를 기반으로 각 메시지에 대한 전자 광학 네트워크를 통한 경로를 결정하도록 구성된다.
62. 관련된 가중치 세트를 갖는 복수의 신경 노드를 포함하는 인공 신경망(ANN)을 구현하는 처리 장치로서, 처리 장치는: 양방향 광자 채널에 의해 연결된 복수의 전자 처리 요소를 포함하는 전자-광자 네트워크를 포함하고, 각 처리 요소는 하나 이상의 처리 엔진, 하나 이상의 처리 엔진에 통신 가능하게 결합된 메모리, 및 2개 이상의 양방향 광자 채널과 인터페이싱하고 메모리에 통신 가능하게 연결된 메시지 라우터를 포함하며, ANN의 각 신경 노드는 하나 이상의 처리 요소에 의해 구현되고, 각 신경 노드와 관련된 가중치 세트는 해당 신경 노드를 구현하는 하나 이상의 처리 요소의 메모리에 저장되며, 메시지 라우터는 신경 노드 사이의 미리 결정된 활성화 흐름를 기반으로 ANN 실행 동안 각각의 신경 노드를 구현하는 처리 요소 사이에서 복수의 활성화를 스트리밍하도록 구성되고, 각 처리 요소 내의 하나 이상의 처리 엔진은, 처리 요소에 의해 구현된 각 신경 노드에 대해, 처리 요소의 메모리에 저장된 가중치 세트 및 처리 요소로 스트리밍된 해당 노드에 대한 입력 활성화에 대한 연산을 수행하여 ANN의 실행 동안 노드에 대한 출력 활성화를 생성하도록 구성된다.
63. 예 62의 처리 장치로서, 각 처리 요소는 하나 이상의 신경 노드를 구현한다.
64. 예 62 또는 예 63의 처리 장치로서, 신경 노드 중 적어도 하나는 복수의 처리 요소들에 의해 공동으로 구현된다.
65. 예 62 내지 예 64 중 어느 하나의 처리 장치로서, 동일한 처리 요소에 의해 구현된 신경 노드들 간의 활성화는 처리 요소의 메모리를 통해 교환되고, 상이한 처리 요소에 의해 구현된 신경 노드들 간의 활성화는 양방향 광자 채널의 관련된 것들을 통해 교환된다.
66. 예 62 내지 예 65 중 어느 하나의 처리 장치로서, 하나 이상의 처리 엔진은 곱셈 누적(MAC) 연산을 수행하도록 구성된 곱셈기와 덧셈기의 조합 트리를 구현하는 내적 엔진을 포함한다.
67. 예 66의 처리 장치로서, 하나 이상의 처리 엔진은 비선형 활성화를 계산하도록 구성된 텐서 엔진을 더 포함한다.
68. 예 62 내지 예 67 중 어느 하나의 처리 장치로서, 복수의 전자 처리 요소는 각각 복수의 전자 처리 요소를 포함하는 하나 이상의 전자 집적 회로(EIC)에 구현되고, 전자 처리 요소와 각 EIC를 연결하는 양방향 광자 채널은 EIC와 적층된 관련 광자 집적 회로(PIC)에서 광 도파관으로 구현된다.
69. 예 68의 처리 장치로서, 각 EIC 및 관련 PIC는 시스템 인 패키지(SIP)로 함께 패키징된다.
70. 예 68 또는 예 69의 처리 장치로서, 복수의 전자 처리 요소는 복수의 EIC 상에 구현되고, 복수의 EIC 중 상이한 전자 처리 요소를 연결하는 양방향 광자 채널은 광섬유로 구현된다.
71. 예 68 내지 70 중 어느 하나의 처리 장치로서, 복수의 전자 처리 요소들이 사변형 그리드에 배열되며, 양방향 광자 채널이 그리드에서 바로 인접한 처리 요소 쌍을 연결하여 전자-광자 네트워크의 사변형 메시 토폴로지를 생성하도록 집합적으로 구성된다.
72. 미리 정해진 가중치를 갖는 복수의 신경 노드로 구성된 인공 신경망(ANN)을 구현하는 방법으로서, 방법은: 양방향 광자 채널에 의해 연결된 복수의 처리 요소를 포함하는 전자-광자 네트워크에 연결하는 단계(각각의 처리 요소는 하나 이상의 처리 엔진, 하나 이상의 처리 엔진에 통신 가능하게 연결된 메모리, 및 2개 이상의 광자 채널 인터페이스 및 메모리에 대한 통신 연결을 포함하는 메시지 라우터를 포함함); 런타임 이전에 신경 노드와 처리 요소 사이의 할당에 기반하여 각 신경 노드와 관련된 미리 결정된 가중치를 신경 노드를 구현하도록 할당된 하나 이상의 처리 요소의 메모리에 로드하는 단계; 처리 요소에 의해 구현된 신경 노드 간에 활성화를 라우팅하기 위해 ANN 내 신경 노드 간의 할당 및 미리 결정된 활성화 흐름을 기반으로 런타임 시 메시지 라우터를 사용하는 단계를 포함하고, 처리 요소들 중 상이한 소스 및 목적지 요소들에 의해 구현된 노드들 간에 라우팅되는 활성화는, 소스 요소 및 소스 요소로부터 목적지 요소로의 경로를 따라 임의의 중간 처리 요소에서, 양방향 광자 채널을 통한 전송을 위해 전기적 형태로부터 광학 형태로 변환되고, 목적지 요소 및 경로를 따라 임의의 중간 처리 요소에서, 광학 형태로부터 전기적 형태로 변환된다.
73. 예 72의 방법으로서, 가중치는 전기 광학적 네트워크 외부의 메모리로부터 PCIE 인터페이스를 통해 처리 요소의 메모리로 로드된다.
74. 예 72 또는 예 73의 방법으로서, 공유 처리 요소에 의해 구현된 신경 노드 간의 활성화는 처리 요소 내에서 전자적으로 전송된다.
75. 예 72 내지 예 74 중 어느 하나의 방법으로서, 신경 노드와 처리 요소 사이의 할당이 컴파일 타임에 결정된다.
76. 예 72 내지 예 75 중 어느 하나의 방법으로서, 구성된 라우터의 라우팅 결정에 따라 처리 요소 간에 스트림 활성화를 수행하며, 각 노드에 대해 노드 구현에 할당된 하나 이상의 처리 요소의 하나 이상의 처리 엔진을 사용하여 노드로 스트리밍된 관련 가중치 및 입력 활성화에 대한 연산을 수행하도록, 전자 광학 네트워크를 동작시키는 단계를 더 포함한다.
77. 예 72 내지 예 76 중 어느 하나의 방법으로서, 전력 소비 감소를 위해 활성화 흐름를 기반으로 양방향 광자 채널 내에서 광자 링크를 선택적으로 활성화하는 단계를 더 포함한다.
78. 예 77의 방법으로서, 각 양방향 광자 채널은 복수의 광자 링크를 포함하고, 각 채널의 링크 중 하나가 마스터 링크로서 역할을 하도록 활성 상태로 유지된다.
79. 예 72 내지 예 78 중 어느 하나의 방법으로서, 각 양방향 광자 채널은 각 방향의 복수의 광자 링크를 포함하며, 방법은 전기 광자 네트워크의 초기화 동안, 적어도 일부의 양방향 광자 채널에 대한 로직 채널을 설정하는 단계를 더 포함하며, 양방향 광자 채널에 대한 로직 채널 설정은 링크의 본딩 그룹을 형성하기 위해 해당 양방향 광자 채널 내의 각 방향의 광자 링크를 함께 결합하는 것을 포함한다.
80. 예 79의 방법으로서, 비기능적인 광자 링크는 본딩 그룹에서 생략된다.
81. 예 79 또는 예 80의 방법으로서, 본딩 그룹의 광자 링크의 수는 ANN 구현과 관련된 대역폭 요구사항를 기반으로 결정된다.
82. 하드웨어 회로로서, 하드웨어 회로는: 복수의 행과 복수의 열을 갖는 조합 트리(조합 트리는 복수의 하드웨어 유닛을 사용하여 조합 트리의 제1 열에서 수신된 입력 값을 기반으로 하나 이상의 내적 값을 생성함); 입력 값을 저장하는 제1 메모리 장치; 제1 메모리 장치로부터 입력 값을 획득하고 스위치 패브릭에서 입력 값을 재구성하도록 구성된 시퀀서; 재구성된 입력 값 중 일부가 스위치 패브릭으로부터 조합 트리의 제1 열에 제공되는 시간을 제어하도록 구성된 클럭; 및 각각의 하드웨어 유닛이 하나 이상의 내적 값을 누적하도록 구성된 누산기를 포함하는 복수의 하드웨어 유닛을 포함하고, 클럭에 의해 정의된 하나 이상의 후속 시간 동안, 재구성된 입력 값의 추가 부분이 제1 열과 관련된 하드웨어 유닛의 축적기에 제공되며, 클럭에 의해 제어되는 하나 이상의 추가 시간 동안, 제1 열의 하드웨어 유닛의 각각의 축적기와 관련된 값이 제1 메모리 장치에 기록된다.
83. 예 82의 하드웨어 회로로서 하드웨어 유닛은 적어도 하나의 융합 다중 축적(FMA) 유닛을 포함한다.
84. 예 82 내지 예 84 중 어느 하나의 하드웨어 회로로서, 조합 트리는 입력값을 수신하고, 제1 열에 의해 수신된 입력값를 기반으로 하나 이상의 내적셈값을 생성하도록 구성된 내적셈 유닛의 어레이를 포함하며, 어레이의 단일 내적셈 유닛은 2개 이상의 하드웨어 유닛을 포함한다.
85. 예 84의 하드웨어 회로로서, 제어 회로, 데이터 경로를 포함하는 내적 유닛의 배열을 더 포함하며, 제어 회로는, 데이터 경로를 사용하여 적어도 2개의 가중치 값이 배열의 인접한 두 열 사이에서 스왑되도록 하거나 배열의 제1 행에서 배열의 제2 행으로 가중치 값을 전파하도록 구성된다.
86. 예 82 내지 예 85 중 어느 하나의 하드웨어 회로로서, 시퀀서는 조합 트리를 제1 메모리 장치에 동작적으로 결합하는 스위치 패브릭을 포함한다.
87. 예 82 내지 예 86 중 어느 하나의 예의 하드웨어 회로로서, 시퀀서는 일련의 파라미터를 기반으로 제1 열에 제공되는 입력 벡터의 시퀀스를 결정하며, 파라미터 세트는 스트라이드 값, 확장 값 또는 커널 크기 값 중 적어도 하나를 포함한다.
88. 예 82 내지 예 87 중 어느 하나의 하드웨어 회로로서, 시퀀서는 하나 이상의 클록 사이클 동안 제1 메모리 장치로부터 판독된 복수의 가중치 값 및 복수의 피연산자 값을 판독하여 입력 벡터 시퀀스의 개별 입력 벡터를 생성하도록 구성되고, 개별 입력 벡터는 복수의 가중치 값 및 복수의 피연산자 값을 포함한다.
89. 예 88의 하드웨어 회로로서, 제1 메모리 장치는 메모리 뱅크를 포함하고, 하나 이상의 클록 사이클 동안 시퀀서에 의해 판독된 복수의 가중치 값 및 복수의 피연산자 값이 판독을 위해 선택되어, 복수의 가중치 값과 복수의 피연산자 값이 메모리 뱅크로부터 수신된 후 스위치 패브릭의 시퀀서에 의해 치환되며, 각각의 가중치 값과 피연산자 값은 단일 패스로 시퀀서에 의해 판독된다.
90. 예 88의 하드웨어 회로로서, 제1 메모리 장치는 메모리 뱅크를 포함하고, 하나 이상의 클록 사이클 동안 시퀀서에 의해 판독된 복수의 가중치 값 및 복수의 피연산자 값이 판독을 위해 선택되어, 복수의 가중치 값과 복수의 피연산자 값이 메모리 뱅크로부터 수신된 후 스위치 패브릭의 시퀀서에 의해 치환되고, 각각의 가중치 값과 피연산자 값이 단일 패스로 시퀀서에 의해 판독되며, 데이터가 각각의 메모리 뱅크로부터 판독되고, 메모리 뱅크의 행 수는 조합 트리의 제1 열의 행 수와 실질적으로 동일하다.
91. 예 88의 하드웨어 회로로서, 시퀀서에 의해, 제1 메모리 장치의 각각의 연속적인 판독은 이전 클록 사이클 동안 시퀀서에 의해 판독되지 않은 제1 메모리 장치로부터 새로운 가중치 값과 새로운 피연산자 값이 판독되는 결과가 된다.
92. 예 82 내지 예 91의 하드웨어 회로로서, 단일 하드웨어 유닛이 적어도 2개의 인접한 하드웨어 유닛에 동작적으로 결합되어 단일 하드웨어 유닛에 의해 생성된 출력 값이 적어도 2개의 인접한 하드웨어 유닛 각각에 대한 입력 값으로 공유된다.
93. 예 82 내지 예 92 중 어느 하나의 하드웨어 회로로서, 누산기는 단일 하드웨어 유닛을 통해 값이 흐름으로써 단일 하드웨어 유닛에 의해 생성된 부분 내적 값을 누적하도록 구성된 복수의 누산기를 포함한다.
94. 예 82 내지 예 93 중 어느 하나의 하드웨어 회로로서, 조합 트리는 하드웨어 유닛을 통해 전달되는 값의 클럭 정렬을 유지하도록 구성된 하드웨어 유닛과 관련된 레지스터를 포함한다.
95. 예 82 내지 예 94 중 어느 하나의 하드웨어 회로로서, 조합 트리에 입력 벡터의 시퀀스가 모두 입력된 후 입력 값에 대한 최종 내적 값 세트를 생성하도록 구성된 로직을 포함하며, 최종 내적 값 세트는 조합 트리의 하드웨어 유닛의 누산기에 저장된 값으로부터 구성된다.
96. 예 95의 하드웨어 회로로서, 로직은 최종 내적 값 세트를 제1 메모리 장치에 저장하도록 구성된다.
97. 예 82 내지 예 96 중 어느 하나의 하드웨어 회로로서, 입력값은 적어도 하나의 가중치 값과 적어도 하나의 피연산자 값을 포함한다.
98. 예 82 내지 예 97 중 어느 하나의 하드웨어 회로로서, 하드웨어 회로는 광자 집적 회로(PIC)의 일부이다.
99. 방법으로서, 방법은: 시퀀서에 의해, 시퀀서에 동작가능하게 결합된 메모리 장치들의 세트로부터 제1 복수의 가중치 및 제1 복수의 피연산자 값을 판독하는 단계; 조합 트리의 제1 열에서 시퀀서로부터 복수의 제1 입력 벡터를 수신하는 단계(제1 복수의 입력 벡터는 제1 복수의 가중치 값 및 제1 복수의 피연산자 값을 포함함); 조합 트리의 제1 열에서 연산 단위로 제1 복수의 입력 벡터를 처리하는 단계(연산 단위는 각 입력 벡터와 연관되며, 각 연산 단위는 적어도 하나의 누산기를 가지며, 조합 트리는 조합 트리의 제1 열에서 연산 단위가 수신한 값을 기반으로 각 연산 단위의 누산기에서 내적 값을 생성하도록 구성됨); 시퀀서에 의해, 메모리 장치 세트로부터 제2 복수의 가중치 및 제2 복수의 피연산자 값을 판독하는 단계; 조합 트리의 제1 열에서 시퀀서로부터 제2 복수의 입력 벡터를 수신하는 단계(제2 복수의 입력 벡터는 제2 복수의 가중치 값과 제2 복수의 피연산자 값을 포함함); 조합 트리의 제1 열에 있는 연산 단위로 제2 복수의 입력 벡터를 처리하는 단계(제1 복수의 입력 벡터와 제2 복수의 입력 벡터는 조합 트리의 제1 열에 있는 연산 유닛에 의해 수신될 입력 벡터 시퀀스의 일부임); 및 모든 입력 벡터 시퀀스가 조합 트리의 제1 열에 의해 수신되고 관련 연산 단위에 의해 처리된 후에, 조합 트리의 제1 열의 모든 행에 있는 각 연산 단위의 각 누산기에서 값을 검색하여 최종 내적 값 세트를 제공하는 단계를 포함한다.
100. 예 99의 방법으로서, 적어도 하나의 누산기는 각각의 연산 유닛에 복수의 누산기를 포함하며, 복수의 누산기는 개별 연산 단위에서 생성된 부분 내적 값을 개별 연산 단위를 통해 전달되는 값으로 축적하도록 구성된다.
101. 하드웨어 회로로서, 하드웨어 회로는: 내적 유닛의 어레이에서 입력받은 가중치와 활성화 값을 기반으로 내적 값을 생성하는 조합 트리로 구성된 내적 유닛의 어레이(내적 유닛의 어레이는 내적 유닛의 64행 x 32열로 구성되며, 각 내적 유닛은 2개의 8비트 값을 입력으로 수신하고 누산기를 갖도록 구성됨); 및 어레이를 메모리 장치 세트에 작동 가능하게 연결하는 스위치 패브릭을 포함하고, 메모리 장치 세트는 복수의 가중치 값과 복수의 활성화 값을 저장하며, 스위치 패브릭은 하나 이상의 클록 사이클을 포함하는 제1 클록 시퀀스 동안 어레이의 제1 열에 대한 입력으로서 64개의 입력 벡터를 제공하도록 구성되고, 하나 이상의 추가 클록 시퀀스는 스위치 패브릭이 64개의 입력 벡터로 구성된 복수의 추가 세트를 어레이의 제1 열에 제공하도록 하며, 배열의 제1 열에 있는 각 누산기의 비트가 32비트이면 각 누산기의 각 값을 메모리 장치 세트에 다시 기록한다.
102. 예 101의 하드웨어 회로로서, 내적 유닛은 복수의 FMA 유닛을 포함한다.
103. 예 101 또는 예 102의 하드웨어 회로로서, 내적 유닛은 32바이트 입력을 수신하도록 구성된다.
104. 예 101 내지 예 103 중 어느 하나의 하드웨어 회로로서, 메모리 장치 세트는 32바이트 폭의 메모리 장치의 64 뱅크를 포함한다.
105. 회로 패키지로서, 회로 패키지는: 광자 채널 인터페이스를 포함하는 복수의 처리 요소를 포함하는 주문형 집적 회로(ASIC); 및 전자-광자 네트워크의 적어도 일부를 형성하기 위해 광자 채널 인터페이스를 통해 복수의 처리 요소를 연결하는 복수의 광자 채널을 포함하고, 복수의 광자 채널 중 일부 복수가 복수의 처리 요소 중 개별 처리 요소에 연결되며, 개별 처리 요소는: 개별 처리 요소에 대해 복수의 광자 채널로부터 마스터 광자 채널을 선택하고; 개별 처리 요소에 대해 복수의 광자 채널로부터 슬레이브 광자 채널 세트를 선택하며; 마스터 광자 채널로부터 수신된 클록 신호를 추출하고; 수신된 클록 신호를 기반으로, 개별 처리 요소에 대해 하나 이상의 로컬 동작을 수행하기 위해 개별 처리 요소에 의해 사용되는 로컬 클록 신호를 생성하며; 슬레이브 광자 채널 세트를 통해 개별 처리 요소에 연결된 복수의 처리 요소 세트에 분산 클록 신호를 전송하도록 구성되고, 분산 클록 신호를 전송하는 단계는 개별 처리 요소의 광자 채널 인터페이스를 사용하여 분산 클록 신호를 전기적 형태에서 광학적 형태로 변환하는 단계를 포함하며, 분산 클럭 신호를 전송하는 단계는 복수의 처리 요소 세트에서 분산 클럭 신호를 광학적 형태에서 전기적 형태로 변환하는 단계를 더 포함하고, 분산 클록 신호는 슬레이브 광자 채널 세트를 통한 전송에 적합하며 복수의 처리 요소 세트에 의한 관련 로컬 클록 신호로 사용하기에 적합하고, 분산 클록 신호는 수신된 클록 신호를 기반으로 생성된다.
106. 예 105의 회로 패키지로서, 개별 처리 요소는 지터 감쇠 위상-잠금 루프(jitter-attenuating phase-lock loop, PLL)를 포함하고, 개별 처리 요소는 지터 감쇠 PLL을 사용하여 수신된 클록 신호에 기초한 낮은 지터 클록 신호를 생성하며, 수신된 클록 신호에 기반한 로컬 클록 신호의 생성은 낮은 지터 클록 신호에 기반한 로컬 클록 신호를 생성하는 것을 포함한다.
107. 예 105 또는 예 106의 회로 패키지로서, 개별 처리 요소는 개별 처리 요소의 부팅 시간 동안 마스터 광자 채널을 선택한다.
108. 예 105 내지 예 107 중 어느 하나의 회로 패키지로서, 개별 처리 요소는 개별 처리 요소의 부팅 시간 동안 슬레이브 광자 채널 세트를 선택한다.
109. 예 105 내지 예 108 중 어느 하나의 회로 패키지로서, 개별 처리 요소가: 마스터 광자 채널에서 채널 정렬 작업을 수행하도록 구성되며, 채널 정렬 작업은 클록 스큐를 보정하기 위해 개별 처리 요소의 하나 이상의 설정을 조정하도록 구성된다.
110. 예 105 내지 예 109 중 어느 하나의 회로 패키지로서, 개별 처리 요소는 마스터 광자 채널을 통해 수신된 수신 비트 스트림에 대해 클록 데이터 복구를 수행하여 마스터 광자 채널로부터 수신된 클록 신호를 추출한다.
111. 예 105 내지 110 중 어느 하나의 회로 패키지로서, 개별 처리 요소는 하나 이상의 발신 비트 스트림을 처리 요소의 집합으로 전송함으로써 분산 클럭 신호를 처리 요소의 집합으로 전송하며, 하나 이상의 발신 비트 스트림은 분산 클럭 신호를 기반으로 생성된다.
112. 예 105 내지 111 중 어느 하나의 회로 패키지로서, 개별 처리 요소는 텐서 프로세서 및 DNN을 포함하며, 텐서 프로세서 및 DNN 각각은 로컬 클럭 신호를 기반으로 작동하도록 구성되고, 패킷은 로컬 클럭 신호를 사용하여 DNN과 텐서 프로세서 간에 전송될 수 있다.
113. 예 105 내지 예 112 중 어느 하나의 회로 패키지로서, 개별 처리 요소는 광자 채널 인터페이스를 포함하는 메시지 라우터를 포함하며, 메시지 라우터는 로컬 클록 신호에 기반하여 작동하도록 구성된다.
114. 예 105 내지 예 113 중 어느 하나의 회로 패키지로서, 개별 처리 요소는 적어도 두 벡터 사이의 하나 이상의 내적을 계산하기 위한 하드웨어 회로를 포함하며, 하드웨어 회로는 로컬 클록 신호에 기반하여 작동하도록 구성된다.
115. 예 105 내지 예 114 중 어느 하나의 회로 패키지로서, 개별 처리 요소는 제1 처리 요소이고, 복수개 미만의 광자 채널은 복수개 미만의 제1 광자 채널이며, 마스터 광자 채널은 제1 마스터 광자 채널이고, 슬레이브 광자 채널 세트는 슬레이브 광자 채널의 제1 세트이며, 수신된 클록 신호는 제1 수신 클록 신호이고, 로컬 클록 신호는 제1 로컬 클록 신호이며, 분산 클록 신호는 제1 분산 클록 신호이고, 복수의 광자 채널 중 제2 일부 복수가 제2 처리 요소에 연결되며, 제2 처리 요소는 제1 처리 요소에 연결된 처리 요소 세트에 포함되고, 복수의 광자 채널 중 제2 일부는 제1 처리 요소를 제2 처리 요소에 연결하는 슬레이브 광자 채널 세트의 개별 광자 채널을 포함하며, 제2 처리 요소는: 제2 처리 요소에 대해 개별 광자 채널로부터 제2 마스터 광자 채널을 선택하고; 제2 처리 요소에 대해, 제2 약수 광자 채널로부터 슬레이브 광자 채널의 제2 세트를 선택하며; 제2 마스터 광자 채널로부터 제2 수신 클록 신호를 추출하고; 제2 수신 클록 신호를 기반으로, 제2 처리 요소에 대한 하나 이상의 로컬 동작을 수행하기 위해 제2 처리 요소에 의해 사용되는 제2 로컬 클록 신호를 생성하며; 제2 세트의 슬레이브 광자 채널을 통해, 제2 처리 요소에 연결된 복수의 처리 요소 중 제2 세트에 제2 분산 클럭 신호를 전송하도록 구성되고, 제2 분산 클록 신호를 전송하는 단계는 개별 처리 요소의 광자 채널 인터페이스를 사용하여 제2 분산 클록 신호를 전기적 형태에서 광학적 형태로 변환하는 단계를 포함하며, 제2 분산 클록 신호를 전송하는 단계는 복수의 처리 요소 중 제2 세트에서 제2 분산 클록 신호를 광학적 형태에서 전기적 형태로 변환하는 단계를 더 포함하고, 제2 분산 클록 신호는 제2 세트의 슬레이브 광자 채널을 통한 전송에 적합하며 복수의 처리 요소 중 제2 세트에 의한 관련된 로컬 클록 신호로서 사용하기에 적합하고, 제2 분산 클록 신호는 제2 수신 클록 신호에 기반하여 생성된다.
116. 예 115의 회로 패키지로서, 제1 처리 요소는 제1 구성요소 세트를 포함하며, 제2 처리 요소는 제2 구성 요소 세트를 포함하며, 제1 구성 요소 세트는 제1 텐서 프로세서, 광자 채널 인터페이스를 포함하는 제1 메시지 라우터, 또는 적어도 2개의 벡터들 사이에서 하나 이상의 제1 내적을 계산하기 위한 제1 하드웨어 회로 중 적어도 하나를 포함하며, 제2 구성 요소 세트는 제2 텐서 프로세서, 광자 채널 인터페이스를 포함하는 제2 메시지 라우터, 또는 적어도 2개의 벡터 사이의 하나 이상의 제2 내적을 계산하기 위한 제2 하드웨어 회로 중 적어도 하나를 포함하고, 제1 구성 요소 세트는 제1 로컬 클럭 신호를 기반으로 작동하도록 구성되며, 제2 구성 요소 세트는 제2 로컬 클럭 신호를 기반으로 작동하도록 구성된다.
117. 방법으로서, 방법은: 복수의 처리 요소 중 개별 처리 요소에 의해, 복수의 광자 채널로부터 마스터 광자 채널을 선택하는 단계(개별 처리 요소에 대해 마스터 광자 채널이 선택되며, 복수의 처리 요소는 회로 패키지의 ASIC(주문형 집적 회로)의 일부이고, 복수의 처리 요소는 복수의 광자 채널에 의해 함께 연결되어 회로 패키지 내의 전자-광자 네트워크의 적어도 일부를 형성함); 개별 처리 요소에 의해 복수의 광자 채널로부터 슬레이브 광자 채널 세트를 선택하는 단계(개별 처리 요소에 대해 슬레이브 광자 채널 세트가 선택됨); 개별 처리 요소가 마스터 광자 채널로부터 수신된 클럭 신호를 디지털 포맷으로 추출하는 단계; 디지털 형식으로 수신된 클록 신호를 기반으로, 개별 처리 요소에 의해, ASIC의 디지털 부분을 사용하여 개별 처리 요소에 대한 하나 이상의 로컬 동작을 수행하기 위해 개별 처리 요소에 의해 사용되는 로컬 클록 신호를 생성하는 단계; 및 개별 처리 요소에 의해 그리고 슬레이브 광자 채널 세트를 통해, 개별 처리 요소에 연결된 복수의 처리 요소 세트에 분산 클록 신호를 전송하는 단계를 포함하고, 분산 클럭 신호는 수신된 디지털 형식의 클럭 신호를 기반으로 생성되며, 전송하는 단계는: 분산 클록 신호를 디지털 형식에서 광학 형식으로 변환하는 단계; 슬레이브 광자 채널 세트에 걸쳐 광학 포맷의 분산 클록 신호를 라우팅하는 단계; 복수의 처리 요소 세트의 광자 인터페이스에서 광학 포맷의 분산 클록 신호를 수신하는 단계; 및 관련된 광자 채널 인터페이스를 사용하여 복수의 처리 요소 세트에서 분산 클록 신호를 디지털 형식으로 변환하는 단계를 포함한다.
118. 예 117의 방법으로서, 개별 처리 요소는 지터 감쇠 위상 잠금 루프(PLL)를 포함하며, 개별 처리 요소는 지터 감쇠 PLL을 사용하여 수신된 클록 신호를 기반으로 낮은 지터 클록 신호를 생성하고, 수신된 클록 신호를 기반으로 로컬 클록 신호를 생성하는 단계는 로우 지터 클록 신호를 기반으로 로컬 클록 신호를 생성하는 단계를 포함한다.
119. 예 117 또는 예 118의 방법으로서, 마스터 광자 채널의 선택은 개별 처리 요소의 부팅 시간 동안 수행된다.
120. 예 117 내지 예 119 중 어느 하나의 방법으로서, 개별 프로세싱 요소의 부팅 시간 동안 슬레이브 광자 채널 세트의 선택이 수행된다.
121. 예 117 내지 예 120 중 어느 하나의 방법으로서, 개별 처리 요소에 의해 마스터 광자 채널에서 채널 정렬 작업을 수행하는 단계를 포함하고, 채널 정렬 동작은 클록 스큐를 보상하기 위해 개별 처리 요소의 하나 이상의 설정을 조정하도록 구성된다.
122. 예 117 내지 예 121 중 어느 하나의 방법으로서, 마스터 광자 채널로부터 수신된 클럭 신호를 추출하는 단계는 마스터 광자 채널을 통해 수신된 수신 비트 스트림에 대해 클럭 데이터 복구를 수행하는 단계를 포함한다.
123. 예 117 내지 예 122 중 어느 하나의 방법으로서, 분산 클록 신호를 처리 요소 세트로 전송하는 단계는 하나 이상의 발신 비트 스트림을 처리 요소 세트로 전송하는 단계를 포함하며, 하나 이상의 발산 비트 스트림은 분산 클록 신호를 기반으로 생성된다.
124. 예 117 내지 예 123 중 어느 하나의 방법으로서, 개별 처리 요소는 일련의 구성 요소를 포함하며, 구성 요소 세트는 텐서 프로세서, 광자 채널 인터페이스를 포함하는 메시지 라우터 또는 적어도 두 벡터 간의 내적을 계산하기 위한 하드웨어 회로 중 적어도 하나를 포함하고, 구성요소 세트는 로컬 클록 신호를 기반으로 작동하도록 구성된다.
첨부된 다양한 도면들은 현재 개시된 주제의 다양한 실시예를 도시할 뿐이며, 그 범위를 제한하는 것으로 간주되어서는 안된다.
도 1a는 일부 실시예에 따른 예시적인 시스템인 패키지(SIP)의 구성 요소를 개략적으로 설명하는 도면이다.
도 1b는 일부 실시예에 따른 도 1a의 SIP 내의 예시적인 전자-광자 네트워크를 개략적으로 설명하는 도면이다.
도 1c는 일부 실시예에 따른, 도 1a 및 1b의 SIP의 구조적 구현 예시를 측면도로 도시한 도면이다.
도 2a는 일부 실시예에 따른, 도 1a 및 1b의 SIP의 메시지 라우터를 포함하는 예시적인 전자 처리 요소를 도시한 도면이다.
도 2b는 일부 실시예에 따른 전기 광자 네트워크에서 메시지 라우터 및 광자 채널의 예시 구성을 보여주는 도면이다.
도 3은 일부 실시예에 따른, 도 2a에 도시된 바와 같이 전자 처리 요소 내에서 사용될 수 있는 예시적인 텐서 엔진을 도시하는 도면이다.
도 4는 일부 실시예에 따른, 도 2a에 도시된 바와 같이 전자 처리 요소 내에서 사용될 수 있는 예시적인 디지털 신경망(DNN)을 도시하는 도면이다.
도 5a는 일부 실시예에 따른, 전기 광자 네트워크의 광자 및 전자 부품의 예시적인 구현을 측면도로 도시한 도면이다.
도 5b는 일부 실시예에 따른, 도 5a의 예시적인 전기 광자 네트워크의 광자 집적 회로(PIC)를 평면도로 도시한 도면이다.
도 6a는 일부 실시예에 따른 SIP 내에서 두 개의 처리 요소를 연결하는 광자 링크의 예시 그룹을 보여주는 다이어그램이다.
도 6b는 일부 실시예에 따른 칩 간 광 통신을 위해 파장 분할 다중화(WDM)를 사용하는 두 SIP의 예시 시스템을 설명하는 다이어그램이다.
도 7은 일부 실시예에 따른 사변형 메시 토폴로지(quadrilateral mesh topology)를 갖는 전자-광자 네트워크의 예시를 보여주는 다이어그램이다.
도 8은 일부 실시예에 따른 래핑된 토로이달 메시 토폴로지(wrapped toroidal mesh topology)를 가진 전자-광자 네트워크의 예시를 보여주는 다이어그램이다.
도 9는 일부 실시예에 따른 확장 가능한 래핑된 토로이달 메시 토폴로지를 가진 예시적인 전자-광자 네트워크를 보여주는 다이어그램이다.
도 10은 프로세서 내 클록 분배를 위한 기존 기술을 보여주는 다이어그램이다.
도 11은 일부 실시예에 따른 루트 클록 신호를 전달하기 위해 포토닉 패브릭을 사용하는 예를 보여주는 다이어그램이다.
도 12는 일부 실시예에 따른 DNN의 예시적인 아키텍처를 보여주는 다이어그램이다.
도 13은 일부 실시예에 따른 DNN의 작동 방법을 예시적으로 보여주는 순서도이다.
도 14는 일부 실시예에 따른 전자-광자 네트워크를 사용한 클록 신호 분배의 예시적인 방법을 설명하는 순서도이다.
도 15는 일부 실시예에 따른 전자광학 네트워크 내에서 메시지를 전송하는 예시적인 방법을 설명하는 순서도이다.
도 16은 일부 실시예에 따른 ML 프로세서에서 인공 신경망(ANN)을 구현하는 예시적인 방법을 설명하는 순서도이다.
다음 설명에는 본 발명에서 구현과 관련된 구체적인 정보가 포함되어 있다. 본 발명의 도면과 그에 수반되는 상세한 설명은 단지 예시적인 실시예에 관한 것이다. 달리 명시되지 않는 한, 도면들 중 유사 또는 대응하는 요소는 유사 또는 대응하는 참조 번호로 표시될 수 있다. 또한, 본 발명의 도면 및 예시는 일반적으로 스케일링되지 않았으며 실제 상대적인 치수와 일치하도록 의도되지 않았다.
본 발명은 전력 소비 감소 및/또는 처리 속도 증가를 달성하는 하나 이상의 회로 패키지(예를 들어, SIP)에 의해 구현되는 컴퓨팅 시스템을 제공한다. 다양한 실시예에 따르면, 각 회로 패키지에서 데이터 로컬리티를 극대화하고 데이터 이동이 필요할 때 에너지 손실을 줄임으로써, 특히 데이터 이동에 소비되는 전력이 감소한다. 전력 효율적인 데이터 이동은 전자 영역에서 짧은 거리에 걸쳐 데이터를 이동하는 동시에, 전자 영역의 저항 및/또는 전자 영역에서 데이터가 이동할 수 있는 속도가 기존의 전자 기술을 사용하여 극복할 수 없는 대역폭 제한을 초래하는 시나리오에서 데이터 이동을 위해 광자 채널을 활용함으로써 달성될 수 있다. 따라서, 일부 실시예에서, 각 회로 패키지는 양방향 광자 채널(예를 들어, 패키지의 별도 레이어 또는 칩의 PIC에서 구현됨)에 의해 하이브리드 전자-광자(또는 전자-광자) 네트워크 온 칩(NoC)으로 연결되는 다수의 회로 블록(이하 "처리 요소")을 포함하는 전자 집적 회로(EIC)를 포함한다. 이러한 다수의 NoC는 각각의 회로 패키지 사이의 칩 간 양방향 광자 채널(예: 광섬유로 구현)을 통해 더 큰 전자-광자 네트워크로 연결하여 상당한 전력 손실을 초래하지 않고 컴퓨팅 시스템을 임의의 크기로 확장될 수 있다. 추가로 개시된 실시예는 MAC 연산(이하 "도트 제품 엔진"이라고도 함)의 전력 효율적 성능을 위한 새로운 회로 설계와 추가적인 전력 절감을 가져오는 새로운 클록킹 체계를 제공한다.
설명된 컴퓨팅 시스템과 그 다양한 새로운 측면은 일반적으로 광범위한 처리 작업에 적용될 수 있지만, 특히 ML 모델, 특히 ANN을 구현하는 데 적합하다. 본원에 설명된 회로 패키지 및 상호 연결된 회로 패키지의 시스템은 각각 'ML 프로세서' 및 'ML 가속기'로도 지칭된다. 신경망은 일반적으로 입력 활성화 집합의 가중치 합계(MAC 연산에 해당)로부터 뉴런 출력 활성화를 계산하는 하나 이상의 인공 뉴런 레이어를 포함한다. 주어진 신경망의 경우 노드와 레이어 간의 활성화 흐름은 고정되어 있다. 또한, 신경망의 훈련이 완료되면 가중 합계의 뉴런 가중치와 활성화 계산과 관련된 다른 파라미터도 마찬가지로 고정된다. 따라서, 본원에 설명된 바와 같이, 신경 노드를 처리 요소에 할당하고, 노드와 관련된 고정 가중치를 각 처리 요소의 메모리에 미리 로드하고, 미리 결정된 활성화 흐름에 따라 처리 요소 간의 데이터 라우팅을 구성함으로써 신경망을 구현하는 데 적합한 NoC가 구현될 수 있다. 가중 합산은 공개 도트 프로덕트 엔진을 사용하여 효율적으로 수행될 수 있으며, 여기서는 ANN에 적용 가능하기 때문에 "디지털 신경망(DNN)"이라고도 한다.
개시된 컴퓨팅 시스템 및 기본 개념의 다양한 유익한 측면 및 특징에 대한 전술한 개략적인 요약은 다음의 실시예들에 대한 설명으로부터 더욱 명확해질 것이다.
1a는 일부 실시예에 따른 예시적인 회로 패키지(100)의 구성요소를 개략적으로 설명하는 도면이다. SIP(100)는 예를 들어, ML 프로세서로서 기능할 수 있다. SIP(100)는 예를 들어, 디지털 및 혼합 신호 애플리케이션-특정 집적 회로(ASIC)와 같은 EIC(101) 및 PIC(102)를 포함한다. EIC(101) 및 PIC(102)는 도 1c를 참조하여 아래에서 더 상세히 도시된 바와 같이, 서로 다른 층(이하, 각각 "전자 회로층" 및 "광자 회로층")에 형성되며, 하나는 다른 층 위에 적층된다. 하나 이상의 레이저 광원으로부터 광을 수신하는 하나 이상의 레이저 광원(102)은 PIC(102) 자체에 통합될 수도 있고, 또는 SIP(100) 내부 또는 외부에 PIC와 별도로 구현되어 적절한 광학 커플러를 통해 PIC(102)에 결합될 수도 있다. 광학 커플러 및 레이저 소스는 도 1a에서 생략되었지만, 예를 들어, 도 1b, 1c 및 5a 내지 6b에 도시되어 있다.
EIC(101)는 복수의 처리 요소(104)를 포함하며, 이들 처리 요소들은 PIC(102)에서 광 도파관으로 구현된 양방향 광자 채널을 통해 서로 통신한다. 처리 요소들(104)은 (모든 실시예에서 반드시 그럴 필요는 없지만) 설계가 동일한(또는 적어도 실질적으로 유사한) 전자 회로일 수 있으며, 도시된 바와 같이, 직사각형 그리드에 배열된 동일한 크기의 "타일"을 형성할 수 있다. (이하, "처리 요소"와 "타일"은 동의어로 사용된다). 도시된 실시예에서, EIC(101)는 16개의 그러한 처리 요소 또는 타일(106)이 4Х4 배열로 배열되어 있지만, 타일의 수 및 배열은 일반적으로 다양할 수 있다. 타일의 형상이나 타일이 배열되는 그리드는 반드시 직사각형일 필요는 없으며, 예를 들어, 비스듬한 사변형, 삼각형 또는 육각형의 형상 및 그리드도 원칙적으로 가능하다. 또한, 타일링이 사용 가능한 온칩 공간을 효율적으로 사용할 수 있지만, 처리 요소들(104)은 모든 실시예에서 동일한 크기 및 규칙적으로 배열될 필요는 없다.
EIC(101)의 각 처리 요소(104)는 처리 엔진 역할을 하는 하나 이상의 회로 블록을 포함한다. 예를 들어, 도 1a 및 도 2에 도시된 구현에서, 각 처리 요소(104)는 도트 프로덕트 엔진, 즉 DNN(106) 및 텐서 엔진(108)을 포함한다. DNN(106)은 예를 들어, 신경망에서 일상적으로 사용되는 컨볼루션 함수 또는 내적 함수 중 하나를 실행하기 위해 MAC당 감소된 에너지로 빠른 MAC 연산을 수행할 수 있다. 예시적인 DNN(106)의 세부 사항은 도 4를 참조하여 아래에 제공된다. 텐서 엔진(108)은 신경망에서 가중 합계에 적용되는 비선형 활성화 함수를 구현하는 것과 같이, 다른 비-MAC 연산을 수행하는 데 사용될 수 있다. 예시적인 텐서 엔진(108)은 도 3을 참조하여 아래에 설명된다.
도 1a 및 도 2에 더 도시된 바와 같이, 각 처리 요소(104)는 메시지 라우터(110)를 포함한다. 메시지 라우터(110)는 처리 요소들(104) 사이의 데이터 흐름을 용이하게 하기 위해 PIC(102) 내의 광자 채널과 인터페이스된다. 또한, 프로세싱 요소들(104)은 각각 메모리 시스템, 예를 들어 레벨 1 정적 랜덤 액세스 메모리(L1SRAM)(112) 및 레벨 2 정적 랜덤 액세스 메모리(L2SRAM)(114)를 포함할 수 있다. L1SRAM(112)은 선택 사항이며, 포함되는 경우 각 처리 요소(104)에 대한 스크래치 패드 메모리 역할을 할 수 있다. L2SRAM(114)은 각 프로세싱 요소(104)의 기본 메모리로 기능할 수 있고, 머신 러닝 모델의 가중치와 같이 DNN(106) 및 텐서 엔진(108)에 의해 사용되는 특정 고정 피연산자를 DNN(106) 및 텐서 엔진(108)에 물리적으로 근접하여 저장할 수 있다. 또한, L2SRAM(114)은 머신 러닝 모델 또는 다른 연산을 실행하는 데 사용되는 임의의 중간 결과를 저장할 수도 있다.
EIC(101)는 주변 구성요소 인터커넥트 익스프레스(PCIE) 인터페이스(122), 고급 RISC 머신(ARM) 코어(124), 이미지 프로세서(126) 및/또는 동적 랜덤 액세스 메모리(DRAM), 비휘발성 랜덤 액세스 메모리(NVRAM), 정적 랜덤 액세스 메모리(SRAM) 또는 다른 유형의 메모리를 지원할 수 있는 외부 메모리 컨트롤러(128) 등의 옵션 요소를 더 포함할 수 있다. PCIE 인터페이스(122)는 일반적으로 EIC(101)와 외부 구성요소 간의 전기적 상호 연결을 가능하게 한다. 예를 들어, L2SRAM에 저장된 가중치는 DRAM과 같은 외부 구성요소로부터 PCIE 인터페이스(122)를 통해 수신될 수 있다. ARM 코어(124)는 마찬가지로, SIP(100) 외부의 메모리 장치와 인터페이스할 수 있으며, 이미지 데이터를 처리하거나 다른 컴퓨팅 작업을 수행할 수 있다. 이미지 프로세서(126)는 메모리 장치 또는 다른 프로세서로부터 수신된 이미지를 처리할 수 있으며, 이미지가 카메라로부터 도출되었을 수 있다. 메모리 컨트롤러(128)는 SIP(100)에 포함될 수 있는 고대역폭 메모리(HBM)와 통신할 수 있고, 차례로 SIP(100)의 외부에 있는 DRAM과 인터페이스할 수 있다. 일부 예들에서, EIC(101)는 상이한 유형의 메모리를 위한 복수의 메모리 컨트롤러를 포함한다.
1b는 일부 실시예에 따른, 도 1a의 SIP(100) 내의 예시적인 전기-광 네트워크(또는 NoC)(130)를 개략적으로 설명하는 도면이다. 각 처리 요소(104), 보다 구체적으로 각 처리 요소(104) 내의 메시지 라우터(110)는 네트워크(130)에서 노드(131)로서 기능한다. 이러한 노드들(131) 사이의 연결은 양방향 광자 채널을 통해 설정되며, 각 채널은 한쪽 끝에서 한 처리 요소의 메시지 라우터와 인터페이스하고, 다른 쪽 끝에서 다른 처리 요소의 메시지 라우터와 인터페이스한다. (광자 채널의 물리적 구현 및 채널과 메시지 라우터 사이의 인터페이스는 도 5a 및 도 5b를 참조하여 아래에서 더 설명한다). 이들을 직접 연결하는 양방향 광자 채널을 공유하지 않는 임의의 두 처리 요소들(104) 사이의 메시지 전송은 전자-광자 네트워크(130) 내의 하나 이상의 개입 노드들(131)을 통과하는 경로를 따라 다수의 "홉(hops)"에 의해 수행될 수 있고, 한 노드에서 다음 노드로의 이러한 각 홉은 전자 영역으로부터 광자 영역으로 그리고 다시 전자 영역으로 메시지의 변환을 포함한다. 이와 같이, 네트워크(130)는 하이브리드 전자-광자 네트워크이다.
도 1b에서, 정규 그리드에서 바로 인접한 처리 요소(또는 타일)(104)의 각 쌍은 광자 채널에 의해 연결되며, 그 결과 전기 광자 네트워크(130)의 직사각형 메시 토폴로지가 형성된다. 그러나, 예를 들어, 인접한 처리 요소 쌍들 사이의 연결을 생략하거나 인접하지 않은 처리 요소들 사이의 직접 연결을 추가하는 것과 같은 다른 네트워크 토폴로지도 가능하다. 또한, 처리 요소들(104)이 단일 EIC(101)에서 물리적으로 2차원으로 배열되어 있더라도, 광자 채널들은 위상학적으로 3차원 전기-광자 네트워크를 구축하도록 집합적으로 구성될 수 있다.
도 1b에 더 도시된 바와 같이, 처리 요소들(104)을 상호 연결하는 것 외에도, PIC(102)의 광자 채널은 처리 요소들(104)을 (예를 들어, 타일 배열의 주변을 따라) PCIE 인터페이스(122), ARM 코어(124), 이미지 프로세서(126) 및/또는 메모리 컨트롤러(128)와 같은 EIC(101)의 다른 요소에 연결할 수도 있다. 또는, EIC의 일부 전자 요소들은 전기적으로 상호 연결될 수 있다. 예를 들어, PCIE 인터페이스(122)는 다른 모든 처리 요소들(104)과의 통신을 위한 진입점 역할을 할 수 있는 전자-광자 NoC 내의 처리 요소들(104) 중 하나에 전기적으로 연결될 수 있다. 본원에 설명된 다양한 실시예에 따르면, 전기 및 광 신호 라우팅이 모두 채용된다. 신호 라우팅 작업은 전기(또는 전자) 경로와 광자 경로 사이에 아래 논의에 의해 명백해질 방식으로 그리고 이유로 할당될 수 있다.
또한, PIC(102)는, 예를 들어, 광섬유를 통해 오프칩 광 연결을 하기 위한 하나 또는 다수의 광 결합 구조를 포함할 수 있다. 포토닉 패브릭 연결은 여러 수단에 의해 이루어질 수 있다; 포토닉 패브릭 연결을 위한 광 결합 구조의 예로서, 격자 커플러 또는 에지 커플러 위에 위치한 포토닉 패브릭 부착 유닛(FAU)이 포함된다. 도 1b는 2개의 FAU(132)를 도시하는데, 하나의 FAU는 외부 레이저 광원으로부터 PIC(102)에 광 전력을 공급하여 PIC(102)에서 포토닉스를 구동하는 데 사용될 수 있고, 다른 FAU는 송신 및 수신 통신 모두를 위해 다른 SIP의 다른 전자 포토닉 네트워크에 칩 간 상호 연결을 용이하게 할 수 있다. 도 1b에는 2개의 FAU(132)가 도시되어 있지만, 다른 예들에서는 다른 수의 FAU가 사용될 수 있다.
도 1c는 일부 실시예에 따른, 도 1a 및 1b의 SIP(100)의 예시적인 구조적 구현을 측면도로 설명하는 다이어그램이다. 이 예에서, EIC(예를 들어, ASIC)(101) 및 PIC(102)는 별도의 반도체 칩(일반적으로 실리콘 칩이지만, 다른 반도체 재료의 사용도 생각할 수 있음)으로 형성된다. PIC(102)는 기판(140) 상에 직접 배치되며, 인쇄 회로 기판(PCB)에의 후속 실장을 위해 납땜 범프와 함께 도시된다. PIC(102)를 광섬유(133)에 연결하는 EIC(101) 및 FAU(132)는 PIC(102)의 상부에 배치되고 광학적으로 연결된다. 선택적으로, SIP(100)는 도시된 바와 같이, EIC(101)에 인접한 PIC(102) 상부에 배치되는 메모리 칩(142)을 더 포함할 수 있다.
당업자가 알 수 있듯이, 도시된 SIP(100)의 구조는 다양한 구성요소를 조립하고 패키징하는 여러 가능한 방법 중 하나에 불과하다. 다른 실시예들에서, 예를 들어, EIC(101)는 기판 상에 배치될 수 있고, PIC(102)는 EIC(101)의 상부에 배치될 수 있다. 원칙적으로, 전자 회로층과 광자 회로층을 별도의 칩으로 구현하는 것에 대한 대안으로서, 단일 반도체 칩의 상이한 층에 EIC(101) 및 PIC(102)를 생성하는 것도 가능하다. 또한, 광자 회로층은 예를 들어 도파관 교차점을 줄이기 위해 여러 하위 층에 여러 PIC를 다중화할 수 있다. 또한, 도 1c에 도시된 구조는 단일 PIC(102)에 연결된 복수의 EIC(101)를 포함하도록 수정될 수 있고, PIC(102)의 광자 채널을 통해 서로 연결될 수 있다.
EIC(101) 및 PIC(102)는, 예를 들어, 포토리소그래피 패터닝, 에칭, 이온 주입 등을 포함하는 표준 웨이퍼 제조 공정을 사용하여 제조될 수 있다. 또한, 일부 실시예들에서, 이기종 재료 플랫폼 및 통합 공정이 사용된다. 예를 들어, 광자 채널에 사용되는 레이저 광원 및/또는 광 변조기 및/또는 광 감지기와 같은 다양한 활성 광자 구성 요소는 그룹 Ⅲ-V 반도체 구성 요소를 사용하여 구현될 수 있다.
레이저 광원(들)은 SIP(100) 내부 또는 외부에서 구현될 수 있다. 외부에서 구현되는 경우, SIP(100)에 대한 연결은, 예를 들어, 도 1c에 도시된 바와 같이 FAU(132) 아래의 PIC에서 격자 커플러를 사용하여 광학적으로 이루어질 수 있으며, 또는 에지 커플러를 사용하여 이루어질 수도 있다. SIP(100)에서 레이저를 구현하기 위해, 한 가지 옵션은 PIC(102)와 공동 패키징 및 에지 결합될 수 있는 여러 레이저를 포함하는 인터포저를 사용하는 것이다. 대안적으로, 이종 또는 동질 통합을 사용하여 레이저가 PIC(102)에 직접 통합될 수도 있다. 동종 통합을 사용하면 레이저를 PIC(102)의 도파관이 형성되는 실리콘 기판에 직접 구현할 수 있으며, 예를 들어, 인듐 인화물(InP)과 같은 다양한 재료의 레이저와 양자점 레이저와 같은 아키텍처가 사용될 수 있다. PIC(102)에서 레이저의 이종 어셈블리를 통해 그룹 Ⅲ-V 반도체 또는 기타 물질을 PIC(102)에 정밀하게 부착하고 PIC(102)에 구현된 도파관에 광학적으로 결합할 수 있다.
각각 자체의 전자-광자 네트워크(130)를 포함하는 복수의 SIP(100)가 상호 연결되어 더 큰 전자-광자 네트워크를 제공하는 단일 시스템이 될 수 있다. 예를 들어, ML 프로세서로 구성된 복수의 SIP가 상호 연결되어 더 큰 ML 가속기가 형성될 수 있다. 여러 SIP 또는 ML 프로세서 내의 광자 채널은 다른 광 요소와 함께 다양한 조합 및 구성으로 활용될 수 있는 광학 연결, 레이저 광원, 수동 광학 구성 요소 및 PCB의 외부 광섬유와 함께 다중 SIP 시스템 또는 다중 ML 프로세서 가속기의 광 패브릭을 형성한다.
도 2a는 일부 실시예에 따른, 도 1a 및 1b의 SIP(100)의 메시지 라우터(110)를 포함하는 예시적인 전자 처리 요소(104)를 설명하는 도면이다. 도 2a는 특히 메시지 라우터(110) 및 PIC(102)의 양방향 광자 채널과의 인터페이스에 대해 보다 상세하게 제공한다. 각 양방향 광자 채널은 각 방향의 단방향 광자 링크를 포함하며, 각 단방향 링크는 PIC(102)의 광 도파관을 사용하여 구현된다.
일 실시예에서, 패킷 데이터를 포함하는 메시지는 PIC(102)의 포토닉 채널을 통해 도착하고, PIC(102)와 라우터(110) 사이의 광-전기(OE) 인터페이스에서 수신된다. OE 인터페이스는, 예를 들어, 광 신호를 전자 신호로 변환하기 위해 라우터(110)의 관련 전자 회로(예를 들어, 트랜스임피던스 증폭기(TIA), 신호 레벨을 정규화하기 위한 선택적 이득 제어, 비트 스트림을 추출하기 위한 슬라이서를 포함할 수 있는)와 함께 PIC(102)의 광 감지기(예를 들어, 포토 다이오드)에 의해 구현될 수 있다. 그런 다음, 메시지는 "선입선출(FIFO)" 레지스터(202)와 같은 레지스터에서 전자 형식으로 버퍼링될 수 있다.
전자 메시지 라우터(110)는 메시지 헤더(또는, 다른 실시예들에서, 메시지 페이로드)에 포함된 주소를 검사하고, 메시지가 라우팅되어야 하는 포트 및 목적지를 결정하는 회로를 포함한다. 예를 들어, 목적지가 전자-광자 네트워크 내의 다른 처리 요소 또는 타일인 경우, 메시지는 라우터(110)와 PIC(102) 사이의 전기-광학(EO) 인터페이스를 통해 해당 목적지 타일로 라우팅될 수 있고, 여기서 메시지는 다른 광자 채널을 통해 전송되도록 광학 도메인으로 다시 변환될 수 있다. 예를 들어, EO 인터페이스는 라우터 내의 관련 드라이버 회로(이하, "변조기 드라이버"라고도 함)(204)와 함께 PIC(102) 내의 광 변조기를 사용하여 구현될 수 있으며, 적용 가능한 변조기 기술의 비제한적인 예로는 전자 흡수 변조기(EAM), 마하-젠더 변조기, 링 변조기 및 양자 제한 스타크 효과 전자 흡수 변조기(QCCE EAM)가 포함될 수 있다. 반면에, 전자 메시지 라우터(110)가 메시지의 목적지가 라우터(110) 자체가 상주하는 타일 메모리(예컨대, L1SRAM(112) 또는 L2SRAM(114)), DNN(106) 또는 텐서 엔진(108)인 것으로 결정하는 경우, 메시지는 로컬 포트(206)로 라우팅된다.
메시지 라우터(110)와 주어진 양방향 광자 채널의 링크들(양방향으로) 사이의 OE 및 EO 인터페이스들(예를 들어, PIC-측 광 다이오드 및 PIC-측 광 변조기와 관련된 드라이버 회로와 관련된 TIA 및 기타 회로들(통칭하여 200)의 EIC-측 부분(200, 204)은 본원에서 라우터(110)의 "광자 채널 인터페이스"로 통칭한다. 도 2a는 하나의 광자 채널 인터페이스만을 도시하지만, 각 라우터(110)는 일반적으로 복수의 각각의 광자 채널에 결합되기 위한 복수의 인터페이스를 포함한다.
2b는 일부 실시예에 따른, 전자-광자 네트워크(예를 들어, 도 1b에 도시된 네트워크(130))에서의 메시지 라우터(110) 및 광자 채널(210)의 예시적인 구성을 나타내는 도면이다. 이 예에서, 라우터들(예들 들어, 도 1b에 따른 처리 요소들 또는 타일들(104)과 같은)은 2차원의 사변형(보다 구체적으로는 직사각형) 어레이 또는 그리드에 배치되고, 어느 치수(예컨대, 도 2B의 수평 또는 수직)에서 서로 바로 옆에 있는 임의의 두 타일의 라우터들(110)은 양방향 채널(210)에 의해 연결된다. 따라서, 어레이 내부의 각 라우터(110)는 "북쪽," "동쪽," "남쪽," "서쪽"으로 지칭될 수 있는 네 방향 각각에 대해 하나씩 4개의 양방향 광자 채널(210)에 대한 4개의 광자-채널 인터페이스(212)를 포함한다. 어레이의 주변을 따라, 라우터들(110)은 2개(모서리들에서) 또는 3개(모서리들 사이의 에지들에서) 광자 채널 인터페이스(212)를 가질 필요가 있다. 그러나, 도시된 바와 같이, 주변부를 따라 라우터들(110)은 선택적으로, 예를 들어, 모든 타일들(104)에 대해 동일한 회로 설계를 사용함으로써, 제조를 단순화하는 결과로서, 4개의 광자 채널 인터페이스를 구비할 수도 있다. 더욱이, 일부 실시예들에서, 어레이의 주변부를 따른 광자-채널 인터페이스들(214)은 다른 SIP에 대한 칩 간 연결을 설정하는 데 사용될 수 있다.
전자 메시지 라우터들(110)은 다양한 어드레싱 체계를 사용하여 메시지를 목적지 주소로 라우팅하는 데 사용될 수 있다. 어드레싱 체계와 무관하게, 타일 간 메시지는 주로 또는 독점적으로 EIC(101)의 전기적 상호 연결을 통하지 않고, PIC(102)의 광자 채널(경로를 따라 각 라우터에서 광-전기 및 전기-광 변환 포함)을 통해 전자-광자 네트워크를 통해 전송될 수 있다. 일 실시예에서, 서명된 5비트 패킷 데이터(예컨대, 헤더 또는 메시지의 페이로드에서 추출된)는 목적지 타일에 대한 수평 방향(동/서)의 상대적 위치(또는 거리)를 제공하고, 다른 서명된 5비트 패킷 데이터는 목적지 타일에 대한 수직 방향(남/서)의 상대적 위치(또는 거리)를 제공한다. 물론 타일의 수와 그에 따른 주소 공간의 크기 등에 따라 다른 크기(비트 수)의 패킷 데이터도 사용될 수 있다. 메시지가 서로 다른 타일에서 라우터(110)를 통과할 때, 메시지가 전송되는 차원에 따라 수평 또는 수직 좌표가 각 홉마다 감소한다. 목적지 타일에 대한 방향을 제공하는 5비트 패킷 데이터가 모두 0이 되면, 메시지는 목적지 타일에 도착한 것이며, 처리를 위해 해당 타일에 있는 라우터의 로컬 포트(206)로 전달된다. 경우에 따라 메시지는 타일 간에 읽기 및 쓰기 메모리 트랜잭션을 전달하는 데 사용된다.
타일들 사이에서 데이터를 전달하는 경로는 예를 들어, PIC(102) 상의 광 도파관에 의해 구현되는 광 경로이지만, 경로 설정 패킷 데이터는 메시지 라우터(110)에서 사용하기 위해 전자 형태로 제공될 수 있다. 또한, 동일한 타일 메시지 라우팅의 경우에도, 경로 설정 패킷 데이터는 광 경로 또는 전기 경로 중 하나가 될 수 있는 경로를 결정하는 데 사용될 수 있다. 따라서, 다양한 실시예는 하이브리드 전기 광학 네트워크 온 칩(EP-NoC) 아키텍처에서 전자 및 광소자를 모두 사용하여 목적지를 결정하고, 전달 경로를 설정하고, 목적지로 메시지를 전달하는 하이브리드 접근 방식을 채택한다.
위에서 설명한 바와 같이, 전자광학 네트워크가 있는 SIP는 신경망과 같은 ML 모델을 효율적으로 실행하는 데 적합하다. 신경망은 일반적으로 입력 계층, 하나 이상의 숨겨진 계층 및 출력 계층을 포함하여 계층으로 구성된 복수의 노드(여기서는 전기 광자 네트워크의 노드와 구별하기 위해 "신경 노드"라고도 함)를 포함한다. 숨겨진 레이어와 출력 레이어에서 각 신경 노드는 가중치 세트와 다른 노드(예: 이전 레이어)의 입력 활성화를 입력으로 가지고 있으며, ML 모델에 따라 미리 정해진 방식으로 가중치와 활성화를 결합하여 출력 활성화를 생성하는 전달 함수를 구현하는 계산 단위이다.
데이터는 ML 모델의 노드 간에 결정론적 방식으로 흐른다. 또한 모델의 조정 가능한 파라미터인 노드와 관련된 가중치는 일반적으로 모델 학습 중에 결정되며, 학습된 모델이 입력에 대해 작동하여 출력을 생성하는 추론 계산 중에 고정된 상태로 유지된다. 본원에 설명된 바와 같이 ML 프로세서 또는 ML 가속기에서 ML 모델을 실행할 때, 이러한 특성은 처리 요소(104)에 신경 노드를 고정 할당하고, 관련 소정의 가중치를 처리 요소 또는 타일(104)의 메모리에 미리 로드하여 ML 모델을 전기 광자 네트워크에 매핑함으로써 데이터 이동을 최소화할 수 있게 한다. 일반적으로, ML 모델이 ML 프로세서(100) 또는 ML 가속기의 복수의 타일(104)에 분산될 때, 각 타일(104)은 복수의 신경 노드, 하나의 신경 노드, 또는 복수의 타일(104)에 병렬화되어 분산된 신경 노드의 일부를 실행할 수 있다. 일부 예들에서, ML 모델의 각 계층은 여러 개의 타일(104)에 의해 구현되고, 각 타일(104)은 하나 이상의 신경 노드를 구현한다.
일부 실시예에서, 가중치는 ML 프로세서(100) 또는 ML 가속기에 의한 추론 연산의 초기화 동안에 한 번만 할당된 타일(104)의 메모리(예를 들어, L2SRAM 114)에 로드되고, 그 이후에는 가중치가 타일 간에 이동되지 않는다. 가중치는 PCIE(122)를 통해 ML 프로세서(100) 외부의 장치(예를 들어, 메모리)로부터 로드될 수 있다. 일 실시예에서, PCIE(122)는 PCIE(122)에 가장 가까운 타일(104)을 통해 ML 프로세서의 전자-광자 네트워크(130)에 액세스한 다음, 전자-광자 네트워크를 통해 (예를 들어, 미리 결정된) 경로를 따라 타일에서 타일로 각 가중치를 광자 방식으로 각각의 목적지 타일(104)로 전송한다. 다른 구현들에서는, ML 프로세서(100)의 초기화 동안, 타일들(104) 사이의 EIC(101)에 존재하는 전자 연결이, PIC(102)에 위치한 광자 채널 대신에, 가중치를 각 목적지 타일(104)로 전송하기 위해 이용된다. PCIE 인터페이스(122)를 통해 제공되는 가중치의 전송이 주로 광자 방식으로 수행되는지 또는 전자 방식으로 수행되는지에 관계없이, 각 L2SRAM(114)으로의 전송 및 로딩은 한 번만 수행된다. 따라서, 가중치가 각 타일(104)의 L2SRAM(114)에 고정된 상태로 유지된다는 점에서 상당한 전력이 절약된다.
신경 노드와 관련된 가중치를 신경 노드에 할당된 각 타일(104)의 L2SRAM(114)에 저장하여 ML 모델이 ML 프로세서에 미리 로드되면, 신경 노드 간에 활성화를 스트리밍하고 L2SRAM(114)에 저장된 가중치를 사용하여 스트리밍된 활성화에 대한 계산을 수행하여 ML 모델을 실행할 수 있다. 입력 활성화는 ML 모델에서 신경 노드에 할당된 모든 타일(104)로 스트리밍된다. 이러한 타일(104) 내의 처리 엔진(예: DNN(106) 및 텐서 엔진(108))은 입력 활성화 및 미리 로드된 가중치에 대해 작동하여 신경 노드의 출력 활성화를 계산한다. 예를 들어, DNN(106)은 MAC 연산을 수행할 수 있고, 텐서 엔진(108)은 MAC 연산 결과에 대해 작동하는 비선형 활성화 함수를 구현할 수 있지만, 각 타일(104) 내의 하나 이상의 처리 엔진 간에 다른 계산 분포도 가능하다. 주어진 신경 노드에 대해 타일(104)에서 생성된 출력 활성화는 ML 모델에서 다음 노드(예: 신경망의 다음 계층 내)를 구현하는 타일(104)로 입력 활성화로 전송된다. 동일한 타일(104)에 구현된 신경 노드 간에 흐르는 활성화는 해당 타일의 메모리를 통해 교환되는 반면, 타일(104) 간에 이동하는 활성화는 포토닉 패브릭을 통해 전송된다. 각 신경 노드가 전기 광자 네트워크의 각각의 타일(104)에 의해 구현되는 실시예에서, 타일 네트워크 토폴로지는 ML 모델(또는 ML 그래프 토폴로지)을 밀접하게 반영한다.
활성화가 전자-광학 네트워크를 통해 출발 타일로부터 목적지 타일로 스트리밍되므로, 각 출력 활성화에 대한 목적지 타일의 주소는 일반적으로 해당 활성화의 출발 타일의 전자 메시지 라우터(110)에 의해 결정되는데, 예를 들어, ML 모델의 초기화 중에 설정된 경로에 따라 결정된다. 주소는 출력 활성화를 페이로드로 전달하는 메시지의 일부로서 패킷 데이터로 제공될 수 있다. 어떤 구현에서는 주소가 메시지의 헤더에 있고, 다른 구현에서는 주소가 메시지 자체에 인코딩된다(페이로드의 일부로). 메시지에 포함된 주소는 전자광학 네트워크를 통과하는 경로를 따라 메시지 라우터에서 출력 활성화를 목적지 타일로 라우팅하는 데 사용된다. 일부 실시예에서, 위에서 설명한 바와 같이, 상대 주소 지정 체계가 사용된다.
일반적인 ML 모델에서는 가중치 수가 활성화 수보다 훨씬 많다. 현재 ML 워크로드의 경우, 가중치 수와 활성화 수의 비율은 종종 약 20 대 1에서 약 60 대 1의 범위에 있다. 따라서, 활성화가 타일에서 타일로 스트리밍되더라도 가중치를 고정적으로 유지하면 상당한 양의 에너지를 절약할 수 있다. 또한, 일부 유리한 실시예들에서, L2SRAM(114)은 물리적으로 DNN(106) 및 텐서 엔진(108)에 근접하게 배치되어, 가중치가 각 타일 내에서 국부적으로 이동하는 인터커넥트 거리를 감소시켜, 관련 인터커넥트 길이와 관련된 커패시턴스를 감소시키고, 그러한 인터커넥트 커패시턴스와 관련된 에너지 손실을 감소시킨다. 또한, 전술한 설명으로부터, 한 타이틀의 출발 노드에서 다른 타일의 목적지 노드로 스트리밍하는 활성화(예컨대, 비교적 장거리에 걸쳐)는 주로 PIC(102)에 의해 제공되는 광학 경로를 통해 이동하는 반면, 동일한 타일 내에서 스트리밍하는 활성화(예컨대, 비교적 단거리에 걸쳐)는 EIC(101)에 의해 제공되는 전기 경로를 사용하는 것이 명백하다. 이러한 방식으로, 장거리 데이터 이동을 위한 전기적 상호 연결에 대한 의존도가 사실상 제거되어 전기적 상호 연결 커패시턴스와 관련하여 소비되는 에너지가 크게 감소한다. 즉, 타일 간 활성화를 광자 방식으로 스트리밍함으로써 상당한 전력 절감 효과를 얻을 수 있다. 요약하면, 여기에 설명된 대로 ML 프로세서 또는 ML 가속기를 사용하면 데이터 이동이 부분적으로 최소화되고(가중치의 경우), 부분적으로 광자 연결을 통한 전력 효율적인 타일 간 데이터 전송(활성화의 경우)에 의존하게 된다. 데이터 전송에 광자 패브릭(photonic fabric)을 사용하면 전력 절감이라는 이점 외에도 지연 시간을 줄이고 더 높은 대역폭을 제공할 수 있다.
도 3은 일부 실시예에 따라, 도 2a에 도시된 바와 같이 전자 처리 요소(104) 내에서 사용될 수 있는 예시적인 텐서 엔진(108)을 도시하는 도면이다. 각 텐서 엔진(108)은, 예를 들어, 머신 러닝 프로세서 역할을 하는, SIP(100)에 의해 구현된 특정 머신 러닝 모델에 대한 추론 계산의 일부를 수행하도록 할당될 수 있다. ML 프로세서(100)의 상이한 프로세싱 요소들(104)에 있는 텐서 엔진(108)은 머신 러닝 작업을 병렬로 또는 순차적으로 수행할 수 있다. ML 프로세서의 ML 연산은 하나 이상의 텐서 엔진(108)에서 수행될 수 있으며, 텐서 엔진들 간에 데이터 흐름을 형성할 수 있다.
텐서 엔진(108)에 대한 다양한 구현이 본 출원의 범위를 벗어나지 않고 사용될 수 있다. 일례로, 도 3에 도시된 바와 같이, 텐서 엔진(108)은 명령어 시퀀서(300), 레지스터 뱅크(302), 멀티플렉서(304), Ra 레지스터(306), Rb 레지스터(308), 산술 로직 유닛(ALU)(310), 가산기(312) 및 Rg 레지스터(314)를 포함한다. 텐서 엔진(108)은 명령어 시퀀서(300)를 사용하여 당업자에게 공지된 방식으로 레지스터 기록, 축적 및 레지스터 판독 연산을 수행한다. 예를 들어, 텐서 엔진(108)은 두 개의 값을 Ra 레지스터(306) 및 Rb 레지스터(308)에 쓰고, ALU(310)의 도움을 받아 이를 누적하고, 그 결과를 Rg 레지스터(314)에 저장할 수 있다. 그 후, 두 개의 값이 Ra 레지스터(306) 및 Rb 레지스터(308)에 추가로 기록되고, ALU(310)의 도움으로 누적되고, ALU(310)로부터 읽혀지고, Rg 레지스터(314)의 이전 내용에 추가되어 Rg 레지스터(314)에 기록된다. 이러한 루틴은, 예를 들어, 텐서 엔진(108)의 각 출력 레지스터로부터 32비트 출력을 생성하기 위해 최대 32회까지 다시 반복될 수 있다.
텐서 엔진(108)은 일부 실시예에서 머신 러닝 알고리즘의 실행을 위해 목적에 맞게 설계될 수 있는 명령어 세트를 사용하는 단일 명령어 다중 데이터(SIMD) 프로세서이다. 상이한 텐서 엔진(108) 사이의 데이터 이동은 전자적으로 또는 광자적으로 수행될 수 있지만, 바람직한 구현에서, 상이한 프로세싱 요소들(104) 내의 텐서 엔진(108) 사이의 데이터 이동은 광자적으로 수행되는 반면, 동일한 텐서 엔진(108) 내에서의 데이터 이동은 전자적으로 수행된다. 텐서 엔진은 메시지 라우터(110)의 로컬 포트(206)에 대한 인터페이스를 포함하며, 이를 통해 PIC(102)와 통신할 수 있다.
도 4는 일부 실시예들에 따라, 도 2a에 도시된 바와 같이 전자 처리 요소(104) 내에서 사용될 수 있는 예시적인 DNN(106)을 예시하는 도면이다. 도 4의 예시적인 DNN은 SIP(100)의 DNN(106)과 관련하여 설명되지만, 일부 실시예에서, 예시적인 DNN은 (예를 들어, 다른 유형의 프로세서의 구성요소로서) 다른 환경에서 구현된 하드웨어의 일부를 형성할 수 있다. 본원에서 사용되는 바와 같이, DNN은 신경 컴퓨팅 엔진(NCE) 또는 도트 제품 엔진이라고도 지칭될 수 있다. 실시예에 따라, DNN은 적어도 두 개의 벡터를 기반으로 하나 이상의 내적(예: 내적 값)을 생성(예: 계산)하도록 구성된 하드웨어 회로의 하나 이상의 부분에 의해 구현될 수 있다. 예를 들어, 적어도 두 개의 벡터는 가중치 값과 피연산자 값(예: 활성화 값)의 집합으로 구성될 수 있다.
이제 도 4를 참조하면, SIP(예컨대, ML 프로세서)(100)의 EIC(101)에 위치한 DNN(106)의 일부의 실시예가 도시되어 있다. DNN(106)은 본질적으로 곱셈기와 덧셈기의 조합 트리로서, 어떤 연산 중에 데이터를 래칭하지 않고 하드웨어에서 가중치와 피연산자(예를 들어, 이전 노드의 활성화) 세트의 내적(dot product)을 계산한다. 따라서 DNN(106)은 레지스터 수가 매우 적고 레지스터 전송 연산을 수행하지 않고 데이터를 래칭하지 않고 미리 정해진 특정 루틴만 수행하는 데 특화되어 있어 전력 소비가 훨씬 적다. DNN(106)에서, 미리 로드된 가중치들은 L2SRAM(114)으로부터 페치되고, DNN 시퀀서(400)는 가중치(예컨대, 가중치 값) 및 피연산자(예컨대, 피연산자 값)를 조합 트리의 상부에 제공한다. 예를 들어, 도 4에 도시된 바와 같이 가중치 W1, W2, W3 및 W4가 트리의 맨 위에 제공된다. 피연산자(예: 이전 노드의 활성화) X1, X2, X3 및 X4도 트리의 맨 위에 제공된다.
일부 실시예에서, 각 가중치 W1, W2, W3, 및 W4와 각 피연산자 X1, X2, X3, 및 X4는 8비트로 구성된다. 가중치 W1, W2, W3, 및 W4는 각각의 피연산자 X1, X2, X3, 및 X4와 곱해진다. 각 연산의 결과는 16비트 곱이다. 도 4에 표시된 것처럼 두 개의 16비트 곱이 더해져 17비트 합이 형성돤다. 다음 레벨에서는 두 개의 17비트 곱을 더하여 18비트 합을 형성하는 식으로 더 많은 레벨의 덧셈이 이루어진다. 그런 다음 계산된 내적은 32비트 누산기에 추가되어 정밀도를 잃지 않고 일련의 내적을 누적할 수 있다. 조합 트리의 파이프라인 구현을 구성하여 조합 트리를 통과하는 데이터의 시간이 재조정될 수 있다. 일부 실시예에서는, 7개의 파이프라인 스테이지가 사용된다. 위에서 언급한 바와 같이 DNN(106)은 내적 계산 중에 상당한 전력을 절약한다. 비교를 위해, 도 3의 텐서 엔진(108)에 의해 수행되는 단일 내적 계산은 7나노 CMOS Fin-FET를 사용하면 약 250펨토줄(250fJ)의 에너지가 소요될 수 있다. 반면, 도 4의 DNN(106)에 의해 수행되는 단일 내적 계산은 약 130펨토줄(130fJ)의 에너지만 소요될 수 있다.
DNN의 다양한 실시예에 대한 자세한 내용은 도 12를 참조하여 설명한다.
도 5a는 일부 실시예에 따른, 전자-광자 네트워크의 광자 및 전자 부품의 예시적인 구현을 측면도로 도시한 도면이다. EIC(예를 들어, ASIC)(101)는 PIC(102) 위에 위치하는 것으로 도시되어 있다. EIC(101) 내의 복수의 타일(처리 요소)(104A, 104B, 104C, 104D)이 표시되고, 인접한 타일 쌍 사이의 광자 링크와 함께, 그 아래의 PIC(102)에서 도파관(500AB, 500BC, 500CD)을 사용하여 구현돤다. 또한 타일 및 그 사이의 광자 링크와 관련된 EO 및 OE 인터페이스 구성 요소도 도시되어 있다. 도시된 바와 같이, EO 인터페이스 구성요소들은 각각의 변조기 드라이버(502A, 502B, 502C)와 함께 각각의 변조기 드라이버(502A, 502B, 502C) 바로 아래의 PIC(102)에 위치한 변조기(예컨대, EAM)(504A, 504B, 504C)를 포함하여 EIC 타일(104A, 104B, 104C)에 각각 배치되어 있다. OE 인터페이스 구성요소들은 각각 EIC 타일(104B, 104C, 104D)에 위치한 TIA(506B, 506C, 506D) 및 각각의 TIA(506B, 506C, 506D) 바로 아래에 PIC(102)에 위치한 광 감지기(PD)(508B, 508C, 508D)를 포함한다. 광 도파관(500AB, 500BC, 500CD)은 각각 하나의 타일과 연결된 광 변조기(504A, 504B, 504C)를 인접한 타일과 연결된 광 감지기(508B, 508C, 508D)와 연결하여, ML 프로세서(100) 내의 각 타일 쌍 간의 칩 내 통신을 위한 광자 링크를 PIC(102)에 제공한다.
예를 들어, 변조기 드라이버를 변조기 바로 위에 배치하고 TIA를 광 감지기 바로 위에 배치함으로써, EO 및 OE 인터페이스의 PIC 측 및 EIC 측 구성 요소 사이의 측면 변위를 피하면 각 인터페이스의 구성 요소 사이의 거리가 최소화되고, 일부 실시예에서는 변조기와 관련 드라이버 사이의 거리 및 광 감지기와 관련 TIA 사이의 거리가 최소화되어 전기 도메인과 광학 도메인 간의 신호 변환 속도가 최대화되고 그 반대의 경우도 최대화돤다. 전형적으로, 간격은 200 m 미만이지만, 간격은 실시예의 특성, OE 및 EO 인터페이스 구성 요소의 구성, 시스템의 요구 사항 및 아키텍처, 시스템의 온도 등에 따라 달라질 수 있다. 일 실시예에서, PIC 측 및 EIC 측 구성 요소를 밀접하게 연관시켜 배치하면 PIC 측 구성 요소에 대해 유리한 열 특성을 갖는다. EIC 측이 PIC 측 부품을 향해 열을 방출할 수 있는 방열판이기 때문에, 이로 인해 추가된 열로 인해 PIC 측 부품의 열 안정성이 향상될 수 있다. PIC 측과 EIC 측 구성 요소 사이의 거리를 최소화하면 광학 영역과 전기 영역 사이의 신호 변환을 위한 전력 소비를 최소화할 수 있으며, 이는 본원에 설명된 바와 같이 하이브리드 전기-광자 네트워크를 통한 데이터 이동의 전반적인 전력 효율에 중요한다. 또한, 일부 예에서는 변조기 드라이버 또는 기타 기능 블록과 같은 EIC의 구성 요소에서 열이 발생하여 PIC의 EAM 바로 위 또는 이와 밀접하게 연관되어 있을 때 이점이 있다. 이 시나리오에서는 EIC 측에서 방출되는 열이 EAM의 작동 온도를 높이거나 향상된 방식으로 열 안정성을 촉진하고/하거나 EAM을 최고 효율에 가깝게 또는 최적의 작동 범위에 가깝게 만들 수 있다.
또한, 도 5a에는 SIP(또는 ML 프로세서)(100)와 다른 장치들 사이에 포토닉 패브릭 연결을 확립하는 데 사용될 수 있는 광 커플링 구조가 도시되어 있다. 광섬유는 에지 커플링을 사용하여 PIC(102)에 커플링될 수 있다. 대안적으로, 도 5a에 도시된 바와 같이, 광섬유(133)는 FAU(132)를 통해 PIC(102)에 부착될 수 있고, 광은 FAU(132) 바로 아래의 PIC(102)에 형성된 격자 커플러(520)를 사용하여 FAU(132)와 PIC(102) 사이에서 결합될 수 있다. 광섬유(133)는 오프칩 레이저 광원에 연결될 수 있고, 또는 PIC(102)에 광 입력을 제공하는 다른 SIP(ML 프로세서)의 FAU에 연결될 수 있다. 그런 다음, 격자 커플러(520)를 통해 수신된 광은 광 도파관을 통해 PIC(102)의 변조기(506A, 506B, 506C)에 공급될 수 있다. 도 5a의 단면도에서는 EAM 506A에 대한 도파관(522)만 보이지만, 도 5b의 평면도에서는 격자 커플러(520)와 EAM(506B, 506C)를 포함한 모든 EAM 사이의 광학 연결을 볼 수 있다.
도 5b는 일부 실시예에 따른, 도 5a의 예시적인 전자-광자 네트워크의 PIC(102)를 평면도에서 설명하는 다이어그램이다. PIC(102)에 대한 EIC(101)의 타일의 위치는 점선으로 표시되어 있다. 인접한 각 타일 쌍(수평 또는 수직으로 인접한지 여부에 관계없이)에 대해, PIC(102)는 각각 광 변조기(광자 링크의 입력 단부를 정의), 광 감지기(광자 링크의 출력 단부를 정의) 및 변조기와 광 감지기를 직접 연결하는 도파관을 포함하는 2개의 단방향 광자 링크를 제공한다. 예를 들어, 도파관(500AB)은 타일(104A)과 연결된 변조기(504A)를 타일(104B)과 연결된 광 감지기(508B)에 연결한다. 주어진 타일 쌍 사이의 두 광자 링크는 서로 반대 방향으로 배향되며, 이에 따라 총체적으로 양방향 광자 채널을 형성한다. 도 1b에는 각 방향에 하나의 단방향 광자 링크만 도시되어 있지만, 광자 채널은 일반적으로 각 방향에 다수의 링크를 포함할 수 있으며(예를 들어, 함께 본딩 그룹을 형성하는), 이는 채널을 통한 데이터 전송을 위한 대역폭을 증가시킨다. 타일(또는 더 구체적으로, 타일 내의 라우터) 내에서, PIC의 특정 양방향 광자 채널에 대한 광자 채널 인터페이스는 해당 양방향 채널의 각 발신 광자 링크(라우터가 링크의 입력 단부에서 인터페이스하는)를 위한 광학 드라이버와 양방향 광자 채널의 각 수신 광자 링크(라우터가 링크의 출력 단부에서 인터페이스하는)를 위한 TIA(및 관련 회로)를 포함한다.
PIC(102)는 레이저 광원으로부터 광 반송파 신호를 수신한다. 일부 실시예(도시되지 않음)에서 광원은 PIC에 통합되어 있다. 다른 실시예에서, 광원은 PIC 외부에 구현되고, 예를 들어 에지 커플링을 통해, 또는 PIC 내의 FAU(132) 및 그레이팅 커플러에 연결된 광섬유를 통해 PIC에 광을 제공한다. FAU(132) 및 격자 커플러 또는 PIC에 대한 다른 입력 지점에서, 하나 이상의 광 입력 도파관은 반송파 신호를 양방향 광자 채널의 광 변조기로 안내하고, 여기서 반송파 신호는 광자 채널을 통해 전송하기 위해 각각의 메시지를 광 신호에 부여하기 위해 변조된다. 도시된 바와 같이, 일부 실시예에서, 반송파 신호는 광 분할기(530)에 의해 다수의 광 입력 도파관들 사이에서, 예를 들어, EIC의 각 타일 행에 대해 북쪽, 동쪽, 서쪽 및 남쪽으로 향하는 광자 링크에 대해 각각 하나의 도파관으로 분할된다. 각 입력 도파관을 따라 추가 스플리터가 연속적으로 빛을 분기하여 다른 변조기에 입력될 수 있다. 예를 들어, 도면과 같이 도파관(532)은 타일(104A)의 스플리터(534A)에 반송파 신호를 제공하고, 여기서 광은 해당 타일의 변조기(504A)로 가는 광 경로와 다른 광 경로를 통해 도파관(532)의 연속을 통해 타일(104B)의 스플리터(534B)로 광을 안내한다. 타일(104B)의 스플리터(534B)에서 반송파 광은 하나의 광 경로를 따라 타일(104B)의 변조기(504B)로, 또 다른 광 경로를 따라 도파관(532)의 연속을 통해 타일(104C)의 변조기(504C)로 제공된다.
도 5a 및 5b에 도시된 바와 같이, 일 실시예에서, 타일 간 통신의 전부 또는 대부분이, 예를 들어, 제1 타일의 제1 노드에서 제2 타일의 제2 노드로의 활성화 스트리밍이, EIC(101) 상의 각각의 변조기 드라이버 및 TIA 바로 아래에 배치되는 PIC(102) 내의 변조기(예를 들어, EAM) 및 광 감지기를 채용하여 PIC(102)의 광자 채널을 사용하여 수행된다. 변조기와 PD는 예를 들어 PIC(102)의 도파관에 의해 광학적으로 연결된다. 따라서, 일 실시예에서, 타일 간 통신의 전부 또는 대부분은 EIC(101) 내에서 전기적으로 수행되지 않고 PIC(102)에서 제공하는 포토닉 패브릭을 사용하여 광학적으로 수행된다.
위에서 언급한 바와 같이, 본원에 기술된 바와 같이, 복수의 SIP의 전기 광 네트워크는 PIC의 광 커플러와 서로 다른 SIP의 광 커플러 사이의 광 전송 매체를 통해 더 큰 전기 광 네트워크로 연결될 수 있다. 전송 매체는 다중 파이버 종단 푸시온(MTP) 리본 파이버 연결(최대 20미터)과 같은 광섬유일 수 있다. 통합 광 도파관(예: SIP 간의 광 상호 연결 구조를 제공하도록 구성된 별도의 PIC) 또는 자유 공간 전송(예: 이미징 광학을 사용하여 한 PIC의 출력에서 다른 PIC의 입력으로 빛을 결합)과 같은 다른 전송 매체도 가능하다. 격자 커플러가 빛을 포착하는 데 사용되는 경우, 격자 커플러는 광 손실을 최소화하기 위해 포토닉 패브릭의 각도와 관련된 사전 정의된 각도로 빛이 PIC를 빠져나가도록 구성될 수 있다. 다른 실시예에서는, 에셸 격자와 같은 회절 격자 등을 포함하여 다양한 유형의 도파관이 가능하다. 이러한 멀티 패키지 시스템 내의 모든 EIC의 타일들 사이의 메시지는 메시지가 온칩/칩 내(단일 SIP 내를 의미함) 또는 오프칩/칩 간(한 SIP의 타일을 다른 SIP의 타일로 의미함)으로 전송되는지 여부에 관계없이, PIC에 의해 구현된 포토닉 패브릭과 그 사이의 광학 상호 연결을 통해 교환될 수 있다. 본원에 설명된 다양한 실시예에 따르면, 온칩 및 칩 간 광 통신은 서로 다를 수 있지만, 온칩 통신은 일반적으로 단일 파장 광을 사용하여 수행되는 반면, 더 큰 시스템 내의 서로 다른 SIP(예: ML 가속기의 서로 다른 ML 프로세서) 간의 칩 간 통신은 종종 파장 분할 다중화(WDM)를 사용하여 수행되며, 이는 서로 다른 칩(예: 서로 다른 ML 프로세서) 간에 필요한 포토닉 패브릭 연결의 수를 줄이는 역할을 한다. 일부 실시예에서, 다중 파장은 온칩 광 통신에도 사용되며, 반대로 단일 파장 통신은 원칙적으로 오프칩 통신에도 사용될 수 있다는 점에 주의한다.
도 6a는 일부 실시예에 따라, SIP 내에서 두 개의 프로세싱 요소를 연결하는 광자 링크의 예시적인 그룹을 설명하는 다이어그램이다. 칩 내 광 통신의 경우, 온칩 또는 오프칩 레이저 광원일 수 있는 광 엔진(600)은 단일 파장 λa1에서 반송파 광을 출력한다. 스플리터 트리(602)는 서로 다른 타일 및 광자 채널과 관련된 변조기로 이어지는 복수의 광 경로(604, 하나만 도시됨) 사이에서 파장 λa1을 갖는 광을 분할할 수 있다. 이러한 각각의 경로들(604)을 따라, 광은 SIP의 한 타일에서 다른 타일로의 단방향 광자 채널에 대응하는 본딩 그룹을 형성하기 위해 함께 결합된 동일한 방향의 단방향 광자 링크 그룹과 관련된 변조기(610, 612, 614, 616) 그룹 사이에서 더 분할될 수 있다; SIP의 동일한 타일 쌍 사이의 이러한 두 단방향 광자 채널은 칩 내 양방향 광자 채널을 형성한다. 변조기(610, 612, 614, 616(예를 들어, EAM)는 단일 파장 λa1을 갖는 광을 변조하고, 변조된 광을 각각의 도파관(620, 622, 624, 626)을 통해 동일한 칩의 다른 타일에 배치되는 광 감지기(630, 632, 634, 636)로 전송한다.
6b는 일부 실시예에 따라, 칩 간 광 통신을 위해 WDM을 사용하는 두 개의 SIP(100A, 100B)의 예시적인 시스템을 설명하는 도면이다. 도시된 예에서, SIP들(100A, 100B)의 PIC들은 제1 PIC의 격자 커플러(640), 제1 광섬유(641), 섬유 커넥터(642), 제2 광섬유(643) 및 제2 PIC의 격자 커플러(645)를 통해 연결된다. 제1 SIP(100A)에서, 온칩 또는 오프칩 레이저 광원일 수 있는 광 엔진(650)은 다수의 파장(예를 들어, 2 내지 16 파장 사이)의 광, 예를 들어, 도시된 바와 같은 4개의 파장(λb1, λb2, λb3, λb4)의 광을 PIC에 제공한다. 스플리터 트리(602)(예를 들어, 도 6A의 트리와 유사)는 복수의 파장에서의 광을 복수의 광 경로(652)(단 하나만 도시됨) 사이에서 분할할 수 있고, 이는 SIP(100A)의 상이한 타일 및/또는 타일 내의 상이한 광자 채널 인터페이스와 관련된 광 변조기에 연결될 수 있다. 예를 들어, 파장들(λb1, λb2, λb3, λb4)의 반송파 광은 도 2b에 도시된 인터페이스들(214)과 같은 다수의 주변 광자-채널 인터페이스들과 관련된 광 변조기들에 제공될 수 있다.
이들 각각의 경로(652)를 따라, 디멀티플렉서(654)는 상이한 각각의 변조기(예를 들어, EAM)(662, 664, 666, 668) 사이에서 파장들(λb1, λb2, λb3, λb4)을 분리한다. 변조기들(662, 664, 666, 668)은 파장들(λb1, λb2, λb3, λb4)에서 반송파 광을 변조하고, 광자 링크들(672A, 674A, 674A, 678A)에서 각각의 파장들(λb1, λb2, λb3, λb4)을 갖는 변조된 광 신호를 WDM 멀티플렉서(680)에 제공한다. 각각 별도의 파장(λb1, λb2, λb3, λb4)으로 인코딩된 4개의 데이터 스트림을 포함하는 WDM 멀티플렉서(680)의 다중화된 출력은 단일 도파관을 통해 격자 커플러(640)로 제공되고, 여기서 다중화된 변조 광 신호는 오프칩으로 포토닉 패브릭(641)에 결합된다.
포토닉 패브릭 커넥터(642)에서, 다중화된 변조된 광 신호는 포토닉 패브릭(641)로부터 제2 포토닉 패브릭(643)로 결합된다. 제2 포토닉 패브릭(643)는 격자 커플러(645)를 통해 다중화된 변조된 광 신호를 제2 SIP(100B)의 PIC로 결합한다. 일부 다른 구현 에지에서는, 결합된 포토닉 패브릭가 FAU 및 그레이팅 커플러 대신에 또는 추가로 사용될 수 있다. SIP(100B)에서, 디멀티플렉서(682)는 다중화된 변조된 광 신호를 디멀티플렉싱하여 파장 λb1, λb2, λb3, λb4를 갖는 4개의 개별 변조된 신호를 출력한다. 이 네 개의 신호는 각각의 광 도파관(672B, 674B, 676B, 678B)을 통해 SIP 100B의 포토 다이오드(692, 694, 696, 698)로 제공된다. 총체적으로, 변조기(662, 664, 666, 668), 웨이브가이드(672A, 674A, 676A, 678A), 멀티플렉서(680) 및 그레이팅 커플러(640)는 SIP 100A의 PIC, SIP들(100A, 100B) 사이의 포토닉 패브릭 연결(641, 642, 643), 및 SIP 100B의 PIC 내의 격자 커플러(645), 디멀티플렉서(682), 도파관(672B, 674B, 676B, 678B) 및 광 감지기(692, 694, 696, 698)는 서로 다른 SIP의 타일 사이에 단방향 광자 채널을 형성한다; SIP의 동일한 쌍의 타일들 사이의 이러한 단방향 광자 채널 두 개는 칩 간 양방향 광자 채널을 형성한다.
위에서 설명한 구현은 한 방향으로 4개의 광자 링크를 보여주는 광자 채널과 4개의 서로 다른 파장을 수신하는 WDM 멀티플렉서에 관한 것이지만, 다른 구현에서는 2개 이상의 광자 링크와 2개 이상의 서로 다른 파장을 수신하는 WDM 멀티플렉서가 사용될 수 있다. 따라서 디멀티플렉서는 이러한 대체 구현에 해당하는 두 개 이상의 서로 다른 파장을 출력한다.
예를 들어, 위에서 설명한 바와 같이 일반적으로 방향당 하나 이상의 링크를 포함하는 칩 내 및 칩 간 광자 채널을 사용하여 하나 이상의 SIP의 EIC에 있는 처리 요소(타일)를 전기 광자 네트워크로 연결할 수 있다. 결과 네트워크 토폴로지는 일반적으로 관련된 광자 채널을 통해 직접 연결되는 타일 쌍의 선택에 따라 달라지며, 다양한 예시 토폴로지가 도 7-9를 참조하여 아래에 설명되어 있다. 본 발명에서는 일반적으로 단방향 광자 채널과 비교하여 ML 및 기타 계산 모델을 구현하는 데 더 큰 유연성을 제공하는 네트워크 구조를 초래하는 양방향 광자 채널을 언급하지만, 전기 광자 네트워크는 원칙적으로 단방향 광자 채널로도 형성될 수 있으며, 그러한 네트워크는 본원에 논의된 많은 이점(예: 장거리 광자 데이터 전송으로 인한 전력 절감)을 유지할 수 있다.
도 7은 일부 실시예에 따른 사변형 메시 토폴로지를 갖는 예시적인 전자-광자 네트워크(700)를 도시하는 도면이다. 이 토폴로지는 도 1b에 도시된 SIP(100)에 대해서도 도시되어 있다. 도시된 실시예에서, 네트워크는 16개의 타일(네트워크 노드를 구성하는)을 포함하며, 각 타일의 출력이 바로 인접한 타일 중 어느 하나에 대한 입력으로 제공될 수 있도록 사변형(예를 들어, 도시된 바와 같이 직사각형) 그리드에 배열되고 광자 채널(702)에 의해 상호 연결된다. 다른 구현에서는, 예를 들어, 특정 애플리케이션의 요구를 기반으로, 더 다양하거나 더 희박한 연결을 제공하기 위해 다른 네트워크 토폴로지가 지원될 수 있다. 예를 들어, 네트워크 노드를 건너뛰고 인접하지 않은 노드, 즉 직사각형 메시에서 두 홉 이상 떨어진 노드에 직접 경로를 제공하기 위해 추가 광자 채널이 추가될 수 있다.
도 8은 일부 실시예에 따른, 래핑된 토로이달 메시 토폴로지를 갖는 예시적인 전자-광자 네트워크(800)를 예시하는 도면이다. 네트워크(800)는 도 7의 네트워크(700)와 마찬가지로, 직사각형 그리드에 배열된 16개의 타일(104)을 포함한다. 이 토폴로지에서, 타일(104) 사이의 광자 채널(802, 804)은 각 타일(104)의 출력이 (도 7의 메시 토폴로지에서와 같이) 광자 채널(802)을 통해 바로 인접한 타일 중 임의의 타일에 입력으로 제공될 수 있도록 구성되고, 어레이의 주변을 따라 각 타일이 제공될 수 있도록 구성된다, 또한, 광자 채널(804)을 통해 그리드의 반대쪽 에지에 있는 타일, 즉 수직 에지를 따라 배열된 타일의 경우 같은 행에 있는 먼 타일, 수평 에지를 따라 배열된 타일의 경우 같은 열에 있는 먼 타일로 직접 출력을 제공할 수 있다. 이렇게 래핑된 토로이드는 네트워크의 반대편에 있는 타일 간 통신에 필요한 타일 간 홉 수를 크게 줄이는 이점이 있다. 예를 들어, 광자 채널(804)이 없으면 네트워크의 왼쪽 에지에 있는 타일에서 오른쪽 에지에 있는 타일로 메시지를 전송할 때 네트워크의 전체 타일 행을 통과해야 한다.
일부 실시예에서, 래핑된 토로이달 토폴로지는 리본 광케이블로 조립된 광케이블 어레이에 대한 연결을 제공하기 위해 칩의 에지에 있는 광자 링크를 광케이블 부착 장치와 결합하는 격자형 커플러 또는 다른 방법으로 에지 커플러에 결합하여 물리적으로 구현된다. 리본 광케이블은 패치 광케이블을 사용하여 광자 링크의 임의 토폴로지를 구성할 수 있도록 설계될 수 있다. 패치 파이버를 사용하면 PIC의 한쪽에서 연결이 랩핑된 토로이드를 감싸도록 형성될 수 있다. 대안적으로, 광섬유를 사용하는 대신, 반대쪽 에지에 있는 타일을 PIC 내의 광 도파관으로 연결하는 광자 채널(804)을 구현하는 것도 가능하다. 선택적으로, 광자 채널(804) 사이의 도파관 교차를 피하기 위해, 동일한 열의 반대쪽 끝에 있는 타일을 연결하는 도파관은 동일한 열의 반대쪽 끝에 있는 타일을 연결하는 도파관과 분리된 층에 구현될 수 있다.
도 9는 일부 실시예에 따른, 확장 가능한 래핑된 토로이달 메시 토폴로지를 갖는 예시적인 전자-광자 네트워크(900)를 도시하는 도면이다. 이 경우, 직사각형 그리드에 16개의 타일(104)을 포함하는 4개의 SIP(예를 들어, 4개의 ML 프로세서를 갖는 ML 가속기를 구현하는 경우)가 각각 EIC에 포함되며, 그 자체는 2Х2 그리드에 배열되어, 8Х8 그리드에 64개의 타일(104)이 전체적으로 배열되는 결과가 도출된다. 도시된 바와 같이, 이 구성에서, 동일한 SIP(100) 내에서 또는 인접한 두 SIP(100) 내에서 서로 바로 인접한 타일(104)은 광자 채널(예를 들어, 칩 내 광자 채널(902)의 경우 PIC 내의 도파관에 의해 구현되고 칩 간 광자 채널(904)의 경우 광섬유에 의해 구현됨)에 의해 연결된다. 또한, 8Х8 그리드의 주변을 따라 타일(104)은 (칩 간 광자 채널(906)에 의해) 도 8의 토폴로지와 유사한 래핑된 토로이드로서 상호 연결되므로, 8Х8 그리드의 에지에 위치한 하나의 SIP(100) 내의 각 타일(104)의 출력은 그리드의 반대쪽 에지에 있는 다른 SIP(100)의 타일에 입력으로 제공될 수 있다. 유리하게도, 칩 간 광자 채널(904, 906)은 모든 SIP(100)의 타일(104)을 더 큰 전자-광자 네트워크(900)에 원활하게 통합한다. 주지하는 바와 같이, 하나의 더 큰 네트워크에 연결된 SIP(100)의 수는 도시된 4개와 다를 수 있으며, 장거리 광통신의 에너지 효율을 이용하여 상당한 에너지 손실을 발생시키지 않고 간단하게 증가시킬 수 있다. 또한 확장 가능한 래핑 토로이달 토폴로지는 그리드의 먼 끝에 있는 타일 간 통신에 필요한 타일 간 홉의 수를 감소시킨다.
도 7-9는 가능한 네트워크 토폴로지의 다양한 비제한적 예시를 도시한다. 또 다른 예를 제공하기 위해, 광자 채널은 하나 이상의 SIP 내 및/또는 하나 이상의 SIP를 가로질러 타일을 3차원 입방 그리드 토폴로지로 집합적으로 연결하도록 구성될 수도 있다. 이러한 실시예에서, 타일은 여전히 단일 평면에 배치될 수 있지만(즉, 기하학적으로 2차원), 네트워크 노드 간의 연결에 의해 3차원 네트워크 토폴로지를 특징으로 한다. 도 8과 도 9에 표시된 래핑된 토로이달 네트워크도 기하학적으로 2차원이고 위상학적으로 3차원인 구성의 예이다.
본원에서 설명된 다양한 실시예에 따른 ML 가속기 시스템에서, 포토닉 패브릭를 사용하여 ML 모델의 전력 효율적인 실행을 지원하기 위해 몇 가지 기법이 사용될 수 있음에 주의한다. ML 모델의 경우, 통신 패턴 및 스케줄이 컴파일 타임에 모두 알려져 있으므로 컴파일러에 의한 포토닉 패브릭 최적화의 기회를 제공한다. 예를 들어, 사용하지 않는 포토닉 패브릭의 포토닉 채널과 광자 링크는 ML 프로세서 또는 가속기에 로드된 ML 모델에 따라 전력을 절약하기 위해 종료될 수 있다. 예를 들어, 각 방향에 4개씩 총 8개의 링크로 구성된 양방향 광자 채널은 주어진 모델에서 요구하는 것보다 더 많은 대역폭을 제공할 수 있다. 동적 본딩을 사용하면 컴파일러가 개발한 스케줄에 따라 ML 모델의 필요에 따라 채널의 광자 링크를 선택적으로 활성화 및 비활성화할 수 있으므로 전력 소비를 더욱 줄일 수 있다. 이 알고리즘을 구현하기 위한 전제 조건은 EO 및 OE 인터페이스가 몇 비트 만에 정지했다가 다시 시작할 수 있어야 하며, 이는 부팅 시 협상 프로토콜을 사용하여 각 채널에서 마스터 링크를 선택함으로써 달성된다. 채널의 마스터 링크는 절대로 종료되지 않는다. 마스터 링크의 전송 클록은 모든 슬레이브 링크의 전송 클록으로 사용된다. 수신기에서 마스터 링크는 들어오는 비트 스트림에서 클럭 데이터 복구를 수행하고 송신기 클럭을 재구성한다. 그런 다음 수신 클록이 채널의 다른 슬레이브 링크에 분배된다. 송신기와 수신기 모두에서 마스터 링크와 슬레이브 링크 간 전송 지연이 발생하므로 각 수신 링크에서 클럭 스큐를 고려해야 하며, 이는 채널을 가져오는 동안 채널 정렬 단계를 수행하여 수행된다.
포토닉 패브릭의 구성 가능성과 동적 결합 능력은 수율이 낮은 부품으로 인한 제조 결함을 수정하기 위해 내결함성을 제공하는 데에도 사용될 수 있다. 변조기(예: EAM) 및 광 다이오드에는 제조 결함이 있을 수 있으며, 이로 인해 영구적인 결함이 발생할 수 있다. ML 가속기가 초기화되면 포토닉 패브릭의 각 채널이 설정되고 보정되어 데이터를 전송할 준비가 된다. 정상 작동 시 채널의 링크는 서로 결합되어 단일 로직적 채널로 작동하는 그룹을 형성한다. 채널 설정 과정에서 작동하지 않는 링크는 본딩 그룹에서 생략하고 비활성화할 수 있다. 채널 설정 프로세스는 각 채널의 포트 로직에서 상태 머신에 의해 조정된다.
채널 설정 상태 머신은 단계적으로 진행된다. 제1 단계에서는 마스터 링크가 선출된다. 송신기는 채널의 각 링크를 순환하며 링크 설정 프레이밍 패턴을 전송한다. 수신 채널이 링크 설정 패턴을 성공적으로 수신하면 설정 링크를 "마스터 발견" 프레이밍 패턴으로 변환한다. 채널이 "마스터 발견" 프레이밍 패턴을 수신하면 해당 송신기는 링크 회전을 중지하고 마스터 선택이 안정적임을 나타내는 "마스터 발견" 프레이밍 패턴이 여러 번 나타날 때까지 기다린다. 채널이 "마스터 발견" 수신을 중지하면 링크 설정 프레이밍 패턴 사용으로 되돌아간다. 양방향으로 마스터 링크가 설정되면 본딩을 진행할 수 있다. 현재 마스터가 아닌 각 링크에 대해 시스템은 "본딩 준비 완료" 프레이밍 패턴을 전송한다. 수신기가 "본딩 준비" 프레이밍 패턴을 올바르게 디코딩하면 마스터 링크를 통해 본딩된 프레이밍 패턴을 전송하고 수신 채널을 본딩 그룹에 추가한다. 이 프로세스는 마스터 링크가 아닌 모든 링크가 삭제되거나 본딩 그룹에 추가될 때까지 계속 진행된다. 본딩 프로세스가 완료되면 완전히 작동하는 링크만 본딩 그룹에 포함된다.
도 10은 프로세서 내 클록 신호 분배를 위한 기존 기술을 보여주는 다이어그램이다. 프로세서 내에서 클럭 신호를 분배하는 기존 기술은 상당한 양의 에너지를 소비한다. 클록 트리는 일반적으로 클록 신호를 지역 클록 네트워크에 분배하는 루트 클록 네트워크에서 시작하여 계층적으로 구축된다. 일반적인 토폴로지는 도 10에 표시된 "H 트리 네트워크"로, 클록 세그먼트가 동일한 길이의 경로로 연속적으로 분할되어 프로세서의 영역에 클록 신호를 분배한다. 버퍼(1044)는 클록 신호가 프로세서를 통해 장거리로 전파될 때 클록 신호를 재생성하는 데 사용된다. H 트리를 통과하는 경로는 H 트리 네트워크의 암 간에 클럭 스큐를 균일하게 유지하기 위해 길이가 일치한다. 그런 다음, 지역 내에서 지역 수준의 클록 신호를 로컬 회로(1046)에 연결하기 위해 계층적 클록 분할이 더 이루어진다. 루트 클록 네트워크는 클록 경로의 길이가 일치해야 하고 재생 버퍼(1044)에서 상당한 전력을 소비하기 때문에 라우팅 문제가 종종 발생한다.
11은 일부 실시예에 따라, 루트 클록 신호와 같은 클록 신호를 분배하기 위해 포토닉 패브릭을 사용하는 예를 예시하는 도면이다. 일부 실시예에서, 본원에 설명된 포토닉 패브릭은 ML 프로세서(예를 들어, 100) 내에서 클록 신호(예컨대, ML 프로세서의 ASIC(또는 다른 EIC, 예를 들어, 101)에 의해 사용되는 루트 클록 네트워크의 클록 신호)를 전달하기 위해 사용된다. 이제 도 11을 참조하면, 마스터 링크는 항상 채널(1112, 1114, 1116 및 1118)에서 전송되므로, 수신 타일은 제1 마스터 링크(1130)에 의한 선택을 사용하여 타일(예컨대, 104)의 클록 소스를 설정할 수 있다. 클럭 신호는 클럭 데이터 복구(CDR) 회로(1120)를 사용하여 채널(1112, 1114, 1116 및 1118)의 수신 데이터 스트림에서 추출되고, 낮은 지터 클럭 신호(1126)를 생성하는 지터 감쇠 PLL(1124)로 공급되어 타일 내의 다른 모든 채널(1132, 1134, 1136 및 1138)의 송신기에 사용될 뿐만 아니라 텐서 프로세서, DNN 및 메시지 라우터용 디지털 클럭 신호(1140)로 분할되어 사용된다.
따라서 각 타일은 자체 클록 도메인을 설정하고 타일 간의 전기 연결은 중시 클록을 사용한다. 이 방식은 디지털 글로벌 클록 네트워크에 비해 몇 가지 이점이 있다: 프로세서에 일반적으로 사용되는 루트 클럭 네트워크를 제거하여 전력을 절약하고, 프로세서 주변과 여러 프로세서 간에 라우팅해야 하는 클럭 네트워크의 복잡성을 줄이며, 동기화된 글로벌 클럭 전환으로 인한 디지털 로직의 전류 스파이크를 줄인다. 일부 실시예의 새로운 클록 신호 분배 메커니즘은 단일 ML 프로세서의 타일 내뿐만 아니라 ML 프로세서 간에 확장된다.
본원에서는 다양한 실시예를 사용하여 본 발명의 개념을 설명하지만, 이러한 개념의 다른 실시예는 본 출원의 범위를 벗어나지 않고 당업자에 의해 고안될 수 있다. 예를 들어, 한 가지 접근 방식에서, DNN 자체는 신경망 층이 광자(예를 들어, MAC 기능은 광 빔 스플리터 및 광 도파관을 사용하여 수행되고, 중간 출력 신호가 광 출력을 위해 광학적으로 결합됨)를 사용하여 구현되는 PNN(포토닉 신경망)일 수 있다. 또한 광자 네트워크 및/또는 광자 패브릭의 일부는 백업 연결 또는 테스트 중 또는 ML 가속기의 초기화 중에 사용하기 위해 광 연결에 추가하거나 광 연결 대신 전기 연결을 사용하여 구현할 수 있다.
요약하면, 본 발명의 다양한 실시예에 따르면, 본 ML 가속기는 새로운 하이브리드 전자-광자(또는 전자-광자) NoC 및 새로운 DNN, ML 모델 실행을 위한 전반적인 고유 아키텍처 및 새로운 클록킹 체계를 포함한다. 이번에 공개된 ML 가속기는 데이터 이동에 소모되는 전력을 줄이고 MAC 연산에서 에너지 소비를 줄여 처리 속도를 높이면서도 전력 소비를 크게 줄일 수 있다. 데이터 이동에 소비되는 전력을 줄이는 것은 각 ML 프로세서에서 데이터 로컬리티를 극대화(예: 데이터 이동 감소)하고 데이터 이동이 필요할 때 에너지 손실을 줄임으로써 달성된다. 또한, 본 ML 가속기의 새로운 클록킹 방식은 추가적인 전력 절감 효과를 가져온다.
일부 실시예들에서, 본원에 기술된 클록 신호 분배는 SIP와 같은 회로 패키지와 관련하여 구현된다. 예를 들어, 회로 패키지는 광자 채널 인터페이스를 포함하는 복수의 프로세싱 요소(예를 들어, 복수의 타일)를 포함하는 ASIC(예를 들어, 101)을 포함할 수 있다. 또한, 회로 패키지는 전기-광자 네트워크(예를 들어, 네트워크(130))의 적어도 일부를 형성하기 위해 복수의 처리 요소들을 연결하는 복수의 광자 채널을 포함할 수 있다. 다양한 실시예에 따르면, 복수의 광자 채널들 중 하위 복수의 광자 채널들(예를 들어, 채널들(1112, 1114, 1116, 1118, 1132, 1134, 1136, 1138)은 복수의 프로세싱 요소들의 개별 프로세싱 요소들(예를 들어, 타일(104))에 연결된다.
실시예의 클록 신호 분배를 용이하게 하기 위해, 개별 프로세싱 요소는 (예를 들어, 제1 마스터 링크(130)를 통해), 개별 프로세싱 요소에 대해, 서브-복수의 광자 채널들로부터 마스터 광자 채널(예를 들어, 채널(1112, 1114, 1116, 1118) 중 하나)을 선택할 수 있다. 일부 실시예에서, 개별 프로세싱 요소는 개별 프로세싱 요소의 부팅 시간 동안(예를 들어, 협상 프로토콜을 사용하여) 마스터 포토닉 채널을 선택한다.
개별 프로세싱 요소는, 개별 프로세싱 요소에 대해, 서브-복수의 광자 채널로부터 슬레이브 광자 채널 세트(예컨대, 채널 1132, 1134, 1136, 1138)를 선택할 수 있다. 일부 실시예에서, 개별 프로세싱 요소는 개별 프로세싱 요소의 부팅 시간 동안(예를 들어, 협상 프로토콜을 사용하여) 슬레이브 광자 채널 세트를 선택한다. 또한, 일부 실시예에서, 개별 처리 요소는 마스터 광자 채널에 대해 채널 정렬 동작을 수행하며, 채널 정렬 동작은 클록 스큐를 보정하기 위해 개별 처리 요소의 하나 이상의 설정을 조정하도록 구성된다.
개별 프로세싱 요소는 선택된 마스터 광자 채널로부터 수신된 클록 신호를 추출할 수 있다. 일부 실시예에서, 개별 프로세싱 요소는 마스터 광자 채널을 통해 수신된 수신 비트 스트림에 대해 클록 데이터 복구를 수행함으로써(예를 들어, CDR 회로(1120)에 의해) 마스터 광자 채널로부터 수신된 클록 신호를 추출한다.
개별 처리 요소는 수신된 클록 신호를 기반으로, 개별 처리 요소(예컨대, 타일(104))에 의해 개별 처리 요소 상에서 하나 이상의 로컬 오퍼레이션을 수행하기 위해 사용되는 로컬 클록 신호(예컨대, 디지털 클록 신호(1140))를 생성할 수 있다. 개별 처리 요소에 대한 로컬 연산은 개별 처리 요소(예컨대, 타일 104)의 텐서 프로세서(예컨대, 108), DNN(예컨대, 106), 또는 메시지 라우터(예컨대, 110) 중 적어도 하나에 의해 수행될 수 있다. 따라서, 개별 처리 요소는 텐서 프로세서(예컨대, 108)를 포함할 수 있고, 텐서 프로세서는 로컬 클록 신호를 기반으로 동작할 수 있다. 개별 처리 요소는 광자 채널 인터페이스를 포함하는 메시지 라우터를 포함할 수 있고, 메시지 라우터는 로컬 클록 신호를 기반으로 동작할 수 있다. 개별 처리 요소는 적어도 두 벡터 사이의 내적(예: DNN 106)을 계산하기 위한 하드웨어 회로를 포함할 수 있으며, 하드웨어 회로는 로컬 클록 신호에 기반하여 작동할 수 있다.
일부 실시예에서, 개별 처리 요소(예컨대, 타일 104)는 지터 감쇠 위상 잠금 루프(PLL)(예컨대, 1124)를 포함하며, 여기서 개별 처리 요소는 수신된 클록 신호를 기반으로 낮은 지터 클록 신호를 생성하기 위해 지터 감쇠 PLL을 사용한다. 개별 처리 요소는 낮은 지터 클록 신호를 기반으로 로컬 클록 신호를 생성함으로써 수신된 클록 신호를 기반으로 로컬 클록 신호를 생성할 수 있다.
결국, 개별 프로세싱 요소는 슬레이브 광자 채널들(예컨대, 채널들(1132, 1134, 1136, 1138))의 세트를 통해 분산 클록 신호를 개별 프로세싱 요소에 연결된 복수의 프로세싱 요소들의 세트로 전송할 수 있고, 여기서 분산 클록 신호는 수신된 클록 신호(예컨대, CDR 회로(20)의 출력)를 기반으로 생성될 수 있다. 예를 들어, 개별 처리 요소는 하나 이상의 발신 비트 스트림을 처리 요소 집합으로 전송하여 분산 클록 신호를 전송할 수 있으며, 여기서 하나 이상의 발신 비트 스트림은 분산 클록 신호를 기반으로 생성된다. 이러한 방식으로, (슬레이브 채널 세트를 통해) 발신 비트 스트림을 수신하는 하나 이상의 처리 요소는 발신 비트 스트림에서 분산 클록 신호를 독립적으로 추출할 수 있다.
일부 실시예에서, 개별 처리 요소는 개별 처리 요소와 유사하게 동작하도록 구성된 (복수의 처리 요소 중) 제2 처리 요소에 연결된다. 예를 들어, 제2 처리 요소는 (개별 처리 요소의) 슬레이브 광자 채널 세트의 개별 광자 채널을 통해 개별 처리 요소에 연결될 수 있다. 제2 처리 요소는 개별 광자 채널을 제 2 처리 요소의 제 2 마스터 광자 채널로 선택할 수 있다. 제2 처리 요소는, 제2 처리 요소에 연결된 제2 서브-복수의 광자 채널로부터 제2 처리 요소에 대한 제2 슬레이브 광자 채널 세트를 선택할 수 있다. 제2 처리 요소는 제2 마스터 광자 채널로부터(예를 들어, 제2 마스터 광자 채널을 통해 수신된 제2 처리 요소에 의해 수신된 발신 비트 스트림으로부터) 제2 수신 클록 신호를 추출할 수 있다. 제2 처리 요소는 제2 수신 클록 신호를 기반으로, 제2 처리 요소에서 하나 이상의 로컬 연산을 수행하기 위해 제2 처리 요소에 의해 사용되는 제2 로컬 클록 신호를 생성할 수 있다. 그 후, 제2 처리 요소는 제2 슬레이브 광자 채널 세트를 통해 제2 분산 클록 신호를 제2 처리 요소에 연결된 복수의 처리 요소의 제2 세트에 전송할 수 있으며, 여기서 제2 분산 클록 신호는 제2 수신 클록 신호를 기반으로 생성된다.
도 12는 일부 실시예에 따른 DNN의 예시적인 아키텍처(1200)를 도시하는 도면이다. 도시된 바와 같이, 아키텍처(1200)는 64개의 SRAM 메모리 뱅크들(1210-1 내지 1210-64)(이하, 통칭하여 SRAM 메모리 뱅크들(1210))을 포함하는 복수의 메모리 장치, 스위치 패브릭(예를 들어, SRAM 패브릭), 컨트롤러(1230) 및 도트 제품 유닛(1240)의 배열로 구성되며, 각 도트 제품 유닛은 FMA 유닛(1250)을 포함하는 복수의 융합 다중-축적(FMA) 유닛으로 이루어진다.
아키텍처(1200)는 컨볼루션 및 행렬 곱셈(일반적으로 ML 모델의 내부 루프에서 사용되는)과 같은 컴퓨팅 집약적 기능을 연산당 최소 오버헤드로 수행할 수 있다. ML 그래프를 실행하기 위한 레지스터 전송 머신과 같은 기존 기술과 달리, 아키텍처(1200)는 일반적인 프로그래밍 가능성과 관련된 오버헤드를 제거하여 오버헤드가 거의 없이 특정 컴퓨팅 집약적 기능을 최적으로 수행할 수 있다. 아키텍처(1200)는 스위치 패브릭(1220)에 공급하는 SRAM 메모리 뱅크(1210)와 밀접한 연관을 제공할 수 있으며, 이는 연산 유닛들 간에 값을 교환하는 동안 연산 유닛(예를 들어, 내적 유닛(1240)의 어레이)으로의 데이터의 이동을 최소화할 수 있다. 이러한 방식으로, 아키텍처(1200)는 종래 기술에 비해 전력 소비를 절감하는 니어 메모리 컴퓨팅 아키텍처를 제공할 수 있다.
일부 실시예에 따르면, 아키텍처(1200)는 DNN의 하드웨어 회로를 나타내며, 여기서 하드웨어 회로는 조합 트리(예를 들어, 도 4에 도시된 바와 같이) 및 시퀀서(예를 들어, 400)를 포함한다. 조합 트리는 다중 누적(MAC) 유닛을 사용하여 조합 트리의 최상위 레벨에서 수신된 입력 값를 기반으로 하나 이상의 내적 값을 생성할 수 있고, 시퀀서(1211)는 메모리 장치(1210) 세트로부터 수신된 입력 벡터의 스위치 패브릭(1220) 내 위치를 재배열하도록 구성될 수 있다. 이러한 방식으로, 일부 실시예들은 최상위 레벨(예를 들어, 2차원 내적 배열(1240)의 가장 왼쪽 열)에 입력 벡터로 제공되는 가중치 값 및 피연산자 값의 순서를 제어할 수 있다. 조합 트리는 조합 트리를 통해 전달되는 값의 클록 정렬을 유지하도록 구성된 레지스터를 포함할 수 있다. 도 12에서, 값의 클록 정렬은 내적 유닛(1240)의 어레이에 연결된 클록(1280)에 대하여 유지된다. 도시된 바와 같이, 내적 유닛(1240)의 어레이의 각 FMA는 클록(1280)에 연결된다.
시퀀서(1211)는 스위치 패브릭(1220) 또는 조합 트리를 메모리 장치들(1210)의 세트에 동작적으로 결합하는 메모리 장치들(예들 들어, 이 예에서는 각각 32비트 벡터를 제공하는 64개의 메모리 뱅크들로 도시된 로컬 SRAM 메모리 장치들)에 동작 가능하게 결합된다. 메모리 장치 세트는 SRAM 메모리 뱅크(1210) 또는 임의의 다른 적합한 로컬 메모리를 포함할 수 있다. 조합 트리는 내적 곱셈 단위의 배열(예를 들어, 내적 단위의 배열(1240))을 포함할 수 있다. 어레이의 각 내적 단위의 입력은 입력 값(예컨대, 32비트 벡터)을 수신하는 조합 트리의 최상위 레벨을 형성한다.
내적 유닛(1240)의 어레이는, 입력 값(예를 들어, 입력 벡터(1260))을 수신하고, 조합 트리의 최상위 레벨에 의해 수신된 입력 값를 기반으로 하나 이상의 내적 값을 생성하도록 구성될 수 있으며, 여기서 단일 내적 유닛은 2개 이상의 MAC 유닛을 포함할 수 있다. 내적 유닛의 단일 MAC 유닛은 적어도 하나의 누산기를 갖는다. 일부 실시예에서, 복수의 누산기는 값이 단일 MAC 유닛을 통해 흐르면서 단일 MAC 유닛에 의해 생성된 부분 내적 값을 누적하도록 구성된다. MAC 유닛은 적어도 하나의 FMA 유닛(예: FMA 1250)을 포함할 수 있다.
일부 실시예에서, 시퀀서(1211)는 메모리 장치(1210)의 세트로부터 스위치 패브릭(1220)에 벡터를 제공하도록 구성된다. 일부 실시예에서, 가중치 값 및 피연산자 값(예컨대, 활성화 값)은 시퀀서(1211), 클록, 텐서 엔진 또는 ASIC과 관련된 다른 구성요소의 동작 또는 구성을 제어하는 컨트롤러(예컨대, 컨트롤러 로직)에 따라 최상위 레벨에 입력 벡터의 시퀀스로서 스위치 패브릭(1220)에 의해 제공된다. 예를 들어, 컨트롤러(1230)는 하드웨어, 펌웨어, 소프트웨어 또는 이들 모두의 조합으로 시퀀서(1211)를 구현할 수 있으며, 여기서 내적 유닛(1240)의 어레이에 제공되는 입력 벡터(예를 들어, 1260)의 시퀀스는 컨트롤러(1230)에 의해 결정된다. 실시예에 따라, 시퀀서(1211)는 파라미터 세트를 기반으로 최상 레벨에 제공되는 입력 벡터의 시퀀스를 결정할 수 있으며, 여기서 파라미터 세트는 스트라이드 값(stride value), 확장 값(dilation value), 또는 (예를 들어, 컨트롤러(1230)에 의해 수신되거나 처리될 수 있는) 커널 크기 값 중 적어도 하나를 포함한다.
시퀀서(1211)는 단일 또는 복수의 클록 사이클 동안 메모리 장치 세트(예를 들어, SRAM 메모리 뱅크(1210))로부터 판독된 복수의 가중치 값 및 복수의 피연산자 값을 판독하여 (입력 벡터들의 시퀀스 중) 개별 입력 벡터를 생성하도록 구성될 수 있으며, 여기서 개별 입력 벡터는 복수의 가중치 값 및 복수의 피연산자 값으로 구성된다. 다양한 실시예에 따르면, 복수의 가중치 값 및 복수의 피연산자 값은 시퀀서에 의해 최초로 판독되고, 도트 프로덕트 엔진(1240)에 입력을 제공하는 스위치 패브릭(1220) 내의 입력 벡터를 순열하기 때문에, 시퀀서에 의한 판독 동안 메모리 뱅크 충돌이 발생하지 않는다. 또한, 메모리 장치 세트가 메모리 뱅크를 포함하는 경우, 시퀀서는 단일 클록 사이클 동안 각 메모리 뱅크에서 판독할 수 있지만, 다른 클록 기반 방식도 가능하나, 시퀀서는 각 메모리 뱅크에서 판독될 수 있다. 일부 실시예에서, 시퀀서에 의해 메모리 장치 세트가 연속적으로 판독될 때마다, 이전 클록 사이클 동안 시퀀서에 의해 판독되지 않은 메모리 장치 세트에서 새로운 가중치 값 및 새로운 피연산자 값이 판독된다. 구체적으로, 스위치 패브릭(1220)은 입력 데이터가 순열된 상태에서 가중치 값과 피연산자 값(예: 활성화 값)을 정확히 한 번만 판독할 수 있으므로 뱅크 충돌이 발생하지 않는다. 개별 가중치 값과 피연산자 값을 한 번만 판독함로써 메모리 장치 세트에서 개별 가중치 값과 피연산자 값에 액세스하는 횟수를 줄일 수 있다.
내적 유닛(1240)의 어레이는 적어도 2개의 가중치 값이 어레이의 인접한 행들 사이에서 스왑되도록 하고 가중치 값을 어레이의 열 아래로 전파하도록 하는 데이터 경로를 포함할 수 있다. 또한, 내적 유닛의 단일 MAC 유닛은 내적 유닛의 적어도 2개의 인접한 MAC 유닛에 동작 가능하게 결합되어, 단일 MAC 유닛에 의해 생성된 출력 값이 적어도 2개의 인접한 MAC 유닛 각각에 대한 입력 값으로 공유될 수 있다.
결국, 로직(예컨대, 컨트롤러(1230))은 모든 입력 벡터의 시퀀스가 조합 트리의 최상위 레벨에 입력된 후에 가중치 값 및 피연산자 값에 대한 최종 내적 값 집합을 생성하도록 할 수 있다. 예를 들어, 로직에 의해 생성된 최종 내적 값 세트는 조합 트리의 MAC 단위 누산기에 저장된 값으로 구성될 수 있다. 또한, 로직은 메모리 장치(1210)의 세트에 최종 내적 값 세트를 저장하도록 구성된다. 또는 시스템이 결정론적으로 실행되고 주어진 수의 계산 주기 후에 누산기의 값을 메모리에 자동으로 다시 기록하도록 프로그래밍될 수도 있다. 이러한 방식으로 저장된 최종 내적 값 집합은 내적 단위 배열에 대한 또 다른 입력 벡터를 구성하는 데 사용될 수 있다.
동작 중에, 하나 이상의 가중치 값 및 하나 이상의 피연산자 값(예컨대, 활성화 값)이 SRAM 메모리 뱅크(1210)에 저장될 수 있다. 일부 실시예들에서, SRAM 메모리 뱅크(1210)는 32바이트 폭의 SRAM 메모리의 64개 뱅크로 구성된다. SRAM 메모리 뱅크들(1210)은 스위치 패브릭(1220)의 입력을 공급할 수 있다. 스위치 패브릭(1220)은 시퀀서(1211)를 사용하여 (SRAM 메모리 뱅크(1210)로부터) 판독된 데이터를 재구성할 수 있으며, 각각의 연속적인 메모리 판독이 연산 함수(예를 들어, 컨볼루션 또는 행렬 곱셈)를 수행하기 위해 새로운 가중치 또는 피연산자 값을 도트 제품 유닛(1240)의 배열에 전달하도록 한다. 스위치 패브릭(1220)은 진행 중인 연산(예컨대, 컨볼루션 또는 행렬 곱셈)의 하나 이상의 파라미터 및 현재 실행 중인 연산 단계에 따라 (예를 들어, 컨트롤러, 시퀀서 또는 이 둘의 조합을 사용하여) SRAM 메모리 뱅크(1210)로부터 판독된 데이터를 순열할 수 있다. 따라서 파라미터는 피연산자 값(예: 활성화 값)이 가중치 값에 적용되는 순서를 결정할 수 있다. 예를 들어, 2차원(2D) 컨볼루션 연산에 대한 파라미터는 보폭, 확장 또는 커널 크기로 구성될 수 있다. 스위치 패브릭(1220)의 출력은 스위치 패브릭(1220)으로부터 판독된 가중치 값 및 피연산자 값으로 내적 유닛(1240)의 어레이 입력을 구동할 수 있다. SRAM 메모리 뱅크(1210)로부터 값이 판독됨에 따라, 스위치 패브릭(1220)의 파이프라인이 값으로 채워지고, 값이 스위치 패브릭(1220)에서 내적 유닛(1240)의 어레이로 클록아웃되기 시작한다.
일부 실시예에서, 각 클록 사이클 동안, 가중치 값 및 피연산자 값(예를 들어, 활성화 값)은 스위치 패브릭(1220)에 의해 벡터 집합으로 판독되고, 스위치 패브릭(1220)을 통해 내적 유닛(1240)의 어레이로 전달되며, 벡터 집합이 스위치 패브릭(1220)을 통과할 때 순열된다. 컨볼루션 연산의 경우, SRAM 메모리 뱅크(1210)로부터 판독된 벡터 세트는 채널 벡터의 패치(예컨대, 8x8 패치)로 구성될 수 있다. 일부 실시예들에서, 스위치 패브릭(1220)은 메모리 내의 패치들을 순열시킴으로써 SRAM 메모리 뱅크들(1210)로부터 판독하는 동안 뱅크 충돌을 피한다. 이러한 방식으로, 스위치 패브릭(1220)은 모든 클록 사이클에서 모든 SRAM 메모리 뱅크(1210)로부터 판독될 수 있다.
일부 실시예에서, 내적 유닛(1240)의 어레이의 각 내적 유닛은 32 FMA 유닛 깊이이다. 또한, 일부 실시예에서, 내적 유닛(1240)의 어레이는 내적 유닛의 64행 32열로 구성된다. 동작 중에, 내적 유닛(1240)의 어레이는 각 클록 사이클에서 65536개의 FMA 연산을 수행할 수 있다. 도시된 바와 같이, 일부 실시예에서, 내적 유닛(1240)의 어레이 내의 각 FMA 유닛(예를 들어, FMA 유닛(1250))은 누산기(1252)를 포함한다. 이 실시예에서, 이는 가중치 값 및 피연산자 값(예를 들어, 활성화 값)이 FMA 유닛을 통과할 때 부분 곱 값을 누적하도록 구성된 한 쌍의 누산기(ACC0 및 ACC1)로 도시되어 있다. 다른 구현에서는 다른 누산기 방식이 사용될 수 있다. 예를 들어, FMA 유닛은 2개의 8비트 값을 입력으로 수신하고 32비트 내적 값(FMA 유닛의 누산기(1252)에 저장됨)을 생성할 수 있다. 다양한 실시예에서, 값이 FMA 유닛을 통해 스트리밍되는 동안 FMA의 출력 누산기는 고정된 상태로 유지된다. 출력 누산기를 고정된 상태로 유지함으로써, 다양한 실시예에서는 각 FMA 사이클 및 FMA 유닛에 의해 수행되는 각 계산과 관련된 산술 로직 유닛 및 메모리 판독 및 기록 연산이 필요하지 않기 때문에 상당한 양의 에너지 소비를 피할 수 있다. 예를 들어, FMA의 에너지 소비는 130fJ일 수 있다.
일부 실시예에서, 내적 유닛(1240)의 어레이의 각 레벨은 인접한 FMA 유닛들 사이의 연결 세트 및 내적 값들 사이의 인접한 FMA 유닛들 사이의 연결 세트를 포함하며, 이는 가중치 값들이 FMA들 사이에서 셔플될 수 있도록 허용할 수 있다. 가중치 값의 셔플링은 컨볼루션 파라미터 또는 행렬 곱셈 차원과 같은 하나 이상의 파라미터에 의해 (예를 들어, 컨트롤러(1230)를 통해) 제어될 수 있다. 다양한 실시예에서, 내적 유닛(1240)의 어레이는 조합형이며, 이는 내적 유닛(1240)의 어레이가 내적 유닛(1240) 내의 계산의 각 단계에서 레지스터에 데이터를 래칭하는 에너지 비용을 감소시키거나 피할 수 있게 한다. 일부 실시예들에서, 내적 유닛(1240)의 어레이는 내적 유닛(1240)의 어레이를 구동하는 클록 신호와 정렬된 도트 제품 유닛(1240)의 어레이 내의 데이터 흐름을 유지하는 데 사용되는 파이프라인 레지스터 세트(예컨대, 소수의 파이프라인 레지스터)를 포함한다. 또한, 일부 실시예에서, 내적 유닛(1240)의 어레이는 내적 유닛(1240)의 어레이의 행들 사이에서 가중치 값의 스와핑을 허용하고, 내적 유닛(1240)의 어레이의 열들을 통해 가중치 값의 전파를 허용하는 일련의 데이터 경로를 포함하며, 이는 피연산자 값이 내적 유닛(1240)의 어레이를 통해 스트리밍될 때 각 피연산자 값(예를 들어, 활성화 값)에 정확한 가중치를 공급하도록 용이하게 해준다. 모든 가중치 값 및 피연산자 값이 내적 유닛(1240)의 배열을 통과한 후에, 내적 유닛(1240)의 배열에 의한 가중치 값 및 피연산자 값의 계산은 완료된 것으로 간주될 수 있고, 내적 유닛(1240) 배열 내의 각 FMA 유닛의 누산기에 있는 결과 값은 최종 내적 값의 집합을 구성한다. 이러한 최종 내적 값들은 SRAM 메모리 뱅크(1210)에 다시 기록될 수 있고(예를 들어, 저장될 수 있고), 그 후 내적 유닛(1240)의 어레이에 의한 차후의 후속 연산 동안에 저장된 값들 중 하나 이상이 내적 유닛(1240)의 어레이에 입력으로서 사용될 수 있다.
도 13은 일부 실시예에 따른 DNN을 작동하기 위한 예시적인 방법(1300)을 설명하는 순서도이다. 본원에 설명된 예시적인 방법들은 독립형 DNN에 의해 수행될 수도 있고, ML 프로세서(100)와 같은 DNN(예컨대, DNN(106))을 포함하는 장치에 의해 수행될 수도 있다는 것이 이해될 것이다. 또한, 본원에 설명된 예시적인 방법들은 기계 판독 가능 매체에 저장된 실행 가능한 명령어들의 형태 또는 전자 회로(예컨대, 로직)의 형태로 구현될 수 있으며, 이는 DNN이 방법(1300)에 따라 작동하게 할 수 있다. 예를 들어, 도 13의 방법(1300)의 동작은 DNN의 컨트롤러에 의해 실행될 때, DNN이 방법(1300)에 따라 수행하도록 하는 실행 가능한 명령어들로 표현될 수 있다. 실시예에 따라, 본원에 설명된 예시적인 방법의 동작은 다른 방식으로 반복될 수도 있고, 도시되지 않은 개입 동작을 포함할 수도 있다. 예시적인 방법의 연산은 특정 순서로 도시되고 설명될 수 있지만, 연산이 수행되는 순서는 특정 연산들을 병렬로 수행하는 것을 포함하여 실시예들 간에 다를 수 있다.
이제 도 13을 참조하면, 연산(1302)에서, DNN의 시퀀서는 시퀀서에 동작적으로 결합된 메모리 장치 세트에서 제1 복수의 가중치 값 및 제1 복수의 피연산자 값을 판독한다. 연산(1304)에서, 시퀀서로부터의 제1 입력 벡터는 DNN의 조합 트리의 최상위 레벨에서 수신되며, 여기서 제1 입력 벡터는 제1 복수의 가중치 값 및 제1 복수의 피연산자 값을 연산(1302)에서 판독된 제1 복수의 피연산자 값으로 구성된다. 연산(1306) 동안, 조합 트리는 제1 입력 벡터를 처리하는데, 여기서 조합 트리는 최상위 레벨을 통해 수신된 값를 기반으로 하나 이상의 내적 값을 생성하기 위해 MAC 유닛을 사용하도록 구성된다. 연산(1308)에서 시퀀서는 메모리 장치 세트에서 제2 복수의 가중치 값과 제2 복수의 피연산자 값을 판독한다. 연산(1310)에서, 시퀀서로부터의 제2 입력 벡터는 조합 트리의 최상위 레벨에서 수신되며, 여기서 제2 입력 벡터는 제2 복수의 가중치 값 및 제2 복수의 피연산자 값을 포함한다. 연산(1312) 동안, 조합 트리는 제2 입력 벡터를 처리하는데, 여기서 제1 입력 벡터 및 제2 입력 벡터는 조합 트리의 최상위 레벨에 의해 수신될 입력 벡터 시퀀스의 일부이다. 조합 트리의 최상위 레벨에서 입력 벡터 시퀀스를 수신한 후, 연산(1314)에서 DNN은 조합 트리의 MAC 단위의 누산기에 저장된 값으로부터 최종 내적 값 세트를 구성한다.
이는 어큐뮬레이터의 크기에 따라 여러 단계로 구성될 수 있다. 일부 실시예에서, 누산기는 32비트를 보유한다. 예를 들어, 조합 트리의 최상위 레벨(또는 내적 어레이의 다른 곳)에서 누산기를 채우기에 충분한 입력 벡터가 내적 어레이를 통해 흐르면, 연산(1316)에서 조합 트리의 MAC 단위 누산기(예를 들어, 가득 찬 내적 단위 배열의 열의 누산기)의 값이 연산(1302)에서 사용된 메모리 장치 세트에 다시 기록될 수 있다. 그 후, 프로세스는 선택적으로 반복될 수 있다. 따라서, 누산기 출력은 일 실시예에 의해 다른 프로세싱 사이클에 대한 입력으로 사용될 수 있고, 따라서 조합 트리의 행 또는 열에 의해 이루어진 임의의 계산의 중간 또는 최종 결과를 처리하거나 저장하는 데 필요한 산술 로직 유닛 또는 임의의 메모리 액세스이 사용이 방지될 수 있다.
도 14는 일부 실시예들에 따른, 전자-광학 네트워크를 이용한 클록 신호 분배를 위한 예시적인 방법(1400)을 도시하는 순서도이다. 본원에 설명된 예시적인 방법들은 ML 프로세서(예를 들어, 100)의 개별 프로세싱 요소(예컨대, 타일 104)에 의해 수행될 수 있다는 것이 이해될 것이다. 또한, 본원에 설명된 예시적인 방법들은 기계 판독 가능 매체에 저장된 실행 가능한 명령어들의 형태 또는 전자 회로(예컨대, 로직)의 형태로 구현될 수 있으며, 이는 개별 처리 요소들이 방법(1400)에 따라 작동하게 할 수 있다. 실시예에 따라, 본원에 설명된 예시적인 방법의 동작은 다른 방식으로 반복될 수 있거나 도시되지 않은 개입 동작을 포함할 수 있다. 예시적인 방법의 동작들은 특정 순서로 도시되고 설명될 수 있지만, 동작들이 수행되는 순서는 특정 동작들을 병렬로 수행하는 것을 포함하여 실시예들마다 다를 수 있다.
이제 도 14를 참조하면, 동작 1402에서, ML 프로세서의 개별 프로세싱 요소는 마스터 광자 채널에 대한 채널 정렬 동작을 수행하는데, 여기서 채널 정렬 동작은 클록 스큐를 보정하기 위해 개별 프로세싱 요소의 하나 이상의 설정을 조정하도록 구성된다. 동작(1404)에서, 개별 프로세싱 요소는 복수의 광자 채널들 중에서 마스터 광자 채널을 선택하고, 여기서 마스터 광자 채널은 개별 프로세싱 요소에 대해 선택된다. 일부 실시예에서, 복수의 처리 요소는 회로 패키지의 ASIC의 일부이고, 복수의 처리 요소는 복수의 광자 채널에 의해 함께 연결되어 회로 패키지 내의 전자-광자 네트워크의 적어도 일부를 형성한다. 동작(1406) 동안, 개별 프로세싱 요소는 복수의 광자 채널로부터 슬레이브 광자 채널 세트를 선택하며, 여기서 슬레이브 광자 채널 세트는 개별 프로세싱 요소에 대해 선택된다. 동작(1408)에서, 개별 처리 요소는 마스터 광자 채널로부터 수신된 클록 신호를 추출한다. 수신된 클록 신호(동작 1408에서 추출됨)를 기반으로, 개별 처리 요소는 개별 처리 요소에서 하나 이상의 로컬 연산을 수행하기 위해 개별 처리 요소에서 사용되는 로컬 클록 신호를 생성한다. 수신된 클록 신호(동작 1410에서 생성됨)를 기반으로, 동작 1412에서, 개별 처리 요소는 분산 클록 신호를 생성한다. 동작(1414)에서, 개별 프로세싱 요소는 슬레이브 광자 채널 세트를 통해, 개별 프로세싱 요소에 연결된 복수의 프로세싱 요소 세트에 분산 클록 신호를 전송한다. 다양한 실시예에서, 동작(1414)은 개별 프로세싱 요소의 광자-채널 인터페이스를 사용하여 분산 클록 신호를 전기적 형태로부터 광학적 형태로 변환하는 것을 포함한다. 분산 클록 신호는 슬레이브 광자 채널 세트를 통한 전송에 적합하다. 또한, 일부 실시예에서, 동작(1414)은 복수의 프로세싱 요소들의 세트에서 분산 클록 신호를 광학 형태로부터 전기적 형태로 변환하는 것을 포함하며, 여기서 분산 클록 신호는 복수의 프로세싱 요소들의 세트에 의해 관련된 로컬 클록 신호로 사용하기에 적합하다.
도 15는 일부 실시예에 따른, 전자-광학 네트워크(예컨대, SIP(100)의 네트워크(130)) 내에서 메시지를 전송하는 예시적인 방법(1500)을 설명하는 순서도이다. 동작(1502)에서, 네트워크의 처리 요소(104) 중 하나에서 메시지가 생성된다(이하, "제1 처리 요소" 또는 "소스 타일"이라고도 함). 메시지는 일련의 1과 0으로 구성된 이진 정보 패킷이다. 패킷에 포함된 데이터의 일부에는 가중치 또는 활성화와 같은 타일의 로컬 메모리에 있는 데이터가 선택적으로 포함될 수 있다. 이를 일반적으로 패킷의 페이로드라고 한다. 패킷에 포함된 데이터의 또 다른 부분은 헤더이며, 헤더에는 목적지 타일과 관련된 주소와 같은 라우팅 정보가 포함될 수 있다. 또는 라우팅 정보를 페이로드의 일부로, 예를 들어, 데이터를 전달하는 페이로드의 제2 부분(예: 가중치 또는 활성화)과 분리된 제1 부분으로 제공될 수도 있다. 따라서 패킷의 라우팅 정보는 네트워크의 다른 처리 요소(여기서는 "제2 처리 요소" 또는 "목적지 타일"이라고도 함)가 메시지의 목적지로 지정될 수 있다. 라우팅 정보를 기반으로 소스 타일에서 목적지 타일까지 네트워크를 통과하는 경로가 결정될 수 있다. 소스 타일과 목적지 타일이 네트워크의 양방향 광자 채널을 통해 직접 연결되지 않는 한, 경로는 소스 타일에서 목적지 타일로 이동하는 경로에 하나 이상의 개입 처리 요소(이하, "제3 처리 요소" 또는 "개입 타일"이라고도 함)를 포함한다. 일부 실시예에서, 경로는 소스 및 개입 타일의 라우터에 의해 (소스에서 목적지까지의 경로를 따라 각 홉에서 패킷의 라우팅 정보(예를 들어, 헤더)에서 적어도 하나의 값을 수정함으로써) 집합적으로 결정된다. 예를 들어, 현재 타일로부터의 상대적 위치 또는 거리 측면에서 목적지 타일의 주소를 지정하는 실시예에서, 각 메시지 라우터는, 예를 들어, 두 차원 중 하나에서 해당 거리를 줄이는 네트워크 내의 인접한 타일로 메시지를 라우팅하고 그에 따라 패킷 데이터를 업데이트할 수 있다.
따라서, 동작 1504(제1 실행 중)에서, 소스 타일의 라우터는 (제1 반복에서) 목적지 타일에 대한 경로를 따라 다음 타일을 결정하고, 소스 타일 내의 메시지를 소스 타일과 그 다음 타일을 연결하는 양방향 광자 채널로 라우팅한다. 소스 타일과 해당 양방향 광자 채널 사이의 인터페이스에서, 오퍼레이션 1506에서, 예를 들어, 광자 채널의 관련된 변조기가 메시지에 따라 광 신호를 변조하도록 소스 타일의 변조기 드라이버를 작동시킴으로써, 메시지가 광 신호에 부여된다. 동작(1508)에서, 메시지를 전달하는 변조된 광 신호가 다음 타일로 전송된다. 동작(1510)에서, 광 신호는 광자 채널과 다음 타일 사이의 인터페이스에서, 예를 들어, 광자 채널의 끝에서 광 감지기로 광 신호를 측정함으로써, 전자 신호로 다시 변환된다. 일부 실시예에서, 다음 타일의 EIC에 도착하면, 패킷의 라우팅 정보는 동작(1511)에서 패킷이 복수의 차원 중 하나에서 목적지를 향해 한 단계 이동했음을 반영하기 위해 수정된다. 그 후, 다음 타일의 메시지 라우터는 라우팅 정보를 갖는 패킷을 가지며, 그 필드는 목적지 타일을 향해 복수의 다른 차원에서 현재 남은 단계 수를 나타내도록 수정된다.
동작(1512)에서, 동작(1510)에서 메시지를 수신한 타일이 목적지 타일인지 또는 중간 타일인지가 결정된다. 타일이 중간 타일인 경우(예를 들어, 일 실시예에서 패킷 헤더의 라우팅 정보 필드가 0이 아닌 경우), 방법(1500)은 (제2 및 임의의 후속 실행 동안) 중간 타일이 목적지 경로를 따라 다음 타일을 결정하는 연산(1504)으로 다시 루프된다. 그런 다음, 메시지는 (동작 1506에서) 다음 타일로 전송되기 위해 (동작 1508에서) 광학 신호로 전달되고, (동작 1510에서) 광학 신호의 변환 후 결과 전자 신호에서 추출된다. 방법(1500)은 목적지 타일에 도착할 때까지 동작(1504-1512)을 반복한다. 목적지 타일의 라우터가 메시지가 목적지에 있다고 결정하면, 동작 1514에서(예를 들어, 라우팅 정보를 갖는 패킷의 두 필드가 모두 0인 경우), 메시지(또는 그 페이로드, 예를 들어, 소스 타일로부터 스트리밍된 활성화)가 목적지 타일 내의 로컬 포트로 라우팅되어, 예를 들어, 목적지 타일의 처리 엔진 또는 메모리로의 전송을 위해 라우팅된다.
도 16은 일부 실시예에 따라, ML 프로세서 상에서 ANN을 구현하는 예시적인 방법(1600)을 설명하는 순서도이다. ANN은 관련된 소정의 가중치 및 노드들 사이의 소정의 활성화 흐름을 갖는 복수의 신경 노드들을 포함한다. ML 프로세서(예를 들어, 도 1a 및 1b의 SIP(100)에 의해 구현됨)는 양방향 광자 채널에 의해 연결된 복수의 처리 요소(예를 들어, 104)를 포함하는 전자-광자 네트워크, 각 처리 요소는 하나 이상의 처리 블록, 하나 이상의 처리 블록에 통신 가능하게 결합된 메모리 및 둘 이상의 광자-채널 인터페이스를 포함하는 메시지 라우터를 포함한다. 이 방법은 동작(1602)에서, 가중치를 포함하는 ANN의 표현을 포함하는 입력 데이터를 기계 판독 가능한 형태로 ML 프로세서의 전자-광자 네트워크로 수신하는 것을 포함한다. ML 프로세서에 대한 연결은, 예를 들어, 전자-광학 네트워크에 전자적 또는 광학적으로 결합된 PCIE, ARM 코어, 범용 프로세서, 또는 ML 프로세서의 다른 시스템을 통해 설정될 수 있다. 동작(1602)은, 예를 들어, 사람이 판독 가능한 형태로부터 기계 판독 가능한 형태로 변환하는 컴파일러에 텐서 플로우를 통해 데이터를 제공하는 것을 포함할 수 있다.
동작(1604)에서, 신경 노드와 처리 요소들 사이의 할당를 기반으로, ANN의 가중치가 전기-광학 네트워크의 처리 요소들에 로드된다. 할당은 컴파일 타임(예컨대, 동작(1602)에서 전자-광학 네트워크에 연결하기 전에)에 결정될 수 있다. 다른 실시예에서, ANN의 가중치는 컴파일 후 추론 또는 모델의 실행 전에 작동하는 스케줄러에 의해 전자-광자 네트워크의 처리 요소의 로컬 메모리에 로드된다. 일부 실시예에서, 각 신경 노드는 처리 요소 중 하나에 할당되고, 각 처리 요소는 하나 이상의 신경 노드를 구현할 수 있다. 다른 실시예에서, 하나 이상의 신경 노드는 각각 노드를 집합적으로 구현하는 다수의 처리 요소에 할당된다. 각 신경 노드와 관련된 가중치는, 예를 들어, 코드가 컴파일된 후 하드웨어가 실행되기 전에 해당 신경 노드를 구현하도록 할당된 하나 이상의 처리 요소의 메모리에 로드된다.
동작(1606)에서, 처리 요소들, 보다 구체적으로, 예를 들어, 그들의 메시지 라우터들은, ANN 내의 노드들 간의 소정의 활성화 흐름과 함께 처리 요소들에 대한 노드들의 할당를 기반으로 구성된다. 예를 들어, 구성에는 라우터에 경로 설정 패킷 데이터를 전자 형식 또는 광자 전송 메시지를 통해 제공하는 것이 포함될 수 있다. 구성의 결과로, 각 처리 요소에서 계산된 출력 활성화는 이러한 활성화를 입력으로 수신하는 ANN의 신경 노드를 구현하는 각 처리 요소로 라우팅된다. 구성은 처리 요소들 중 서로 다른 처리 요소들에 의해 구현된 신경 노드들 간의 활성화가 양방향 광자 채널을 통해 처리 요소들 간에 광학적으로 전송되는 반면, 공유 처리 요소들에 의해 구현된 신경 노드들 간의 활성화는 처리 요소 내에서 전자적으로 전송되도록 한다. 동작(1608)에서, ML 프로세서는 예를 들어, 코드를 실행하고 처리 엔진에서 관련 가중치 및 입력 활성화에 대한 계산을 수행하고, 구성된 라우터에 의해 이루어진 라우팅 결정에 따라 처리 요소들 간에 활성화를 스트리밍함으로써, ANN의 노드를 구현하도록 작동된다.
전술한 설명으로부터, 본 발명에 기재된 개념을 구현하기 위해 그 개념의 범위에서 벗어나지 않고 다양한 기술이 사용될 수 있음이 명백하다. 또한, 개념들은 특정 실시예를 구체적으로 참조하여 설명되었지만, 당업자는 이러한 개념의 범위를 벗어나지 않고도 형태 및 세부 사항에 변경이 이루어질 수 있음을 인식할 것이다. 따라서, 설명된 실시예는 모든 면에서 예시적인 것으로 간주되어야 하며 제한적인 것이 아니다. 또한, 본 발명은 본원에 설명된 특정 실시예에 제한되는 것이 아니라, 본 발명의 범위를 벗어나지 않고도 많은 재배치, 수정 및 대체가 가능하다는 점을 이해해야 한다.

Claims (124)

  1. 회로 패키지로서, 상기 회로 패키지는:
    복수의 처리 요소-여기서 각각의 처리 요소는 광자 채널 인터페이스를 포함하는 메시지 라우터를 포함함-를 포함하는 전자 집적 회로; 및
    상기 복수의 처리 요소를 전자 광자 네트워크로 연결하는 복수의 양방향 광자 채널-여기서 각각의 양방향 광자 채널은 제1 단부에서 상기 복수의 처리 요소 중 제1 처리 요소의 메시지 라우터의 광자 채널 인터페이스와 인터페이스하고 제2 단부에서 상기 복수의 처리 요소 중 제2 처리 요소의 메시지 라우터의 광자 채널 인터페이스와 인터페이스하며 상기 제1 처리 요소 및 상기 제2 처리 요소의 메시지 라우터 간에 패킷을 광학적으로 전송하도록 구성됨-을 포함하는 것을 특징으로 하는 회로 패키지.
  2. 제1항에 있어서, 각각의 양방향 광자 채널은 양방향으로 하나 이상의 단방향 광자 링크를 포함하는 것을 특징으로 하는 회로 패키지.
  3. 제2항에 있어서, 각각의 양방향 광자 채널은 양방향의 복수의 단방향 광자 링크를 포함하고, 각각의 방향에서의 상기 복수의 단방향 광자 링크가 함께 결합되는 것을 특징으로 하는 회로 패키지.
  4. 제2항에 있어서, 각각의 단방향 광자 링크는 입력 단부의 광 변조기, 출력 단부의 광 감지기, 및 상기 광 변조기를 상기 광 감지기에 연결하는 광 도파관을 포함하고, 각각의 광자 채널 인터페이스는 상기 입력 단부에서 인터페이스하는 각각의 단방향 광자 링크용 변조기 드라이버 및 상기 출력 단부에서 인터페이스하는 각각의 단방향 광자 링크용 트랜스임피던스 증폭기를 포함하는 것을 특징으로 하는 회로 패키지.
  5. 제4항에 있어서, 상기 광 변조기는 전자 흡수 변조기(electro-absorption modulators, EAM)인 것을 특징으로 하는 회로 패키지.
  6. 제4항에 있어서, 상기 광 변조기는 링 변조기, 마하-젠더 변조기, 양자 구속 스타크 효과(quantum-confined Stark effect, QCSE) 전기 흡수 변조기 중 적어도 하나를 포함하는 것을 특징으로 하는 회로 패키지.
  7. 제4항에 있어서, 상기 전자 회로가 전자 회로층에 구현되며, 상기 복수의 양방향 광자 채널이 광자 회로층에 구현되는 것을 특징으로 하는 회로 패키지.
  8. 제7항에 있어서, 상기 전자 회로층은 제1 반도체 칩에 구현되고, 상기 광자 회로층은 제2 반도체 칩에 구현되는 것을 특징으로 하는 회로 패키지.
  9. 제7항에 있어서, 각각의 변조기 드라이버는 자신과 연결되어 있는 상기 광 변조기의 바로 위 또는 아래에 배치되고 각각의 트랜스임피던스 증폭기는 자신과 연결되어 있는 상기 광 감지기의 바로 위 또는 아래에 배치되는 것을 특징으로 하는 회로 패키지.
  10. 제8항에 있어서, 상기 광 변조기와 관련된 변조기 드라이버 사이의 거리 및 상기 광 감지기와 관련된 트랜스임피던스 증폭기 사이의 거리가 200㎛보다 작은 것을 특징으로 하는 회로 패키지.
  11. 제8항에 있어서, 상기 반도체 칩의 상기 광자 회로층에서, 하나 이상의 레이저 광원에 의해 제공되는 광 반송파 신호를 상기 광자 링크의 상기 광 변조기에 공급하는 광 입력 도파관을 더 포함하며, 상기 광 반송파 신호는 상기 관련된 변조기 드라이버에 의해 인가된 구동 신호에 따라 상기 광 변조기에 의해 변조되어 상기 패킷을 전달하는 변조된 광 신호를 생성하는 것을 특징으로 하는 회로 패키지.
  12. 제11항에 있어서, 상기 회로 패키지에 통합된 상기 하나 이상의 레이저 광원을 더 포함하는 것을 특징으로 하는 회로 패키지.
  13. 제12항에 있어서, 상기 하나 이상의 레이저 광원은 상기 광자 회로층에 있는 하나 이상의 광자 집적 회로(PIC)의 상기 광 입력 도파관과 통합되어 있는 것을 특징으로 하는 회로 패키지.
  14. 제12항에 있어서, 상기 하나 이상의 레이저 광원은 상기 반도체 칩과 공동 패키징된 인터포저에 구현되며 상기 광 입력 도파관을 포함하는 상기 광자 회로층에서 하나 이상의 PIC와 에지 결합되는 것을 특징으로 하는 회로 패키지.
  15. 제11항에 있어서, 상기 하나 이상의 레이저 광원은 상기 회로 패키지의 외부에 구현되고 하나 이상의 광섬유를 통해 상기 회로 패키지 내의 하나 이상의 PIC에 광학적으로 결합되는 것을 특징으로 하는 회로 패키지.
  16. 제15항에 있어서, 상기 하나 이상의 광섬유는 상기 PIC에 구현된 격자 커플러 위에 위치한 하나 이상의 광섬유 부착 유닛(FAU)을 통해 상기 하나 이상의 PIC에 결합되는 것을 특징으로 하는 회로 패키지.
  17. 제15항에 있어서, 상기 하나 이상의 광섬유는 상기 하나 이상의 PIC에 에지 결합되는 것을 특징으로 하는 회로 패키지.
  18. 제15항에 있어서, 상기 반도체 칩의 상기 광자 회로층에서 하나 이상의 광 스플리터를 더 포함하되, 각각의 광 스플리터는 상기 하나 이상의 레이저 광원 중 관련된 하나로부터 수신된 입력 광 반송파 신호를 복수의 상기 입력 광 도파관들 사이에서 분할하는 것을 특징으로 하는 회로 패키지.
  19. 제1항에 있어서, 상기 전자 집적 회로는 애플리케이션 특정 집적 회로(ASIC)인 것을 특징으로 하는 회로 패키지.
  20. 제19항에 있어서, 상기 ASIC은 디지털 및 혼합 신호 전자 회로를 포함하는 것을 특징으로 하는 회로 패키지.
  21. 제19항에 있어서, 각각의 처리 요소는 벡터 간의 내적을 계산하기 위한 곱셈기와 덧셈기의 조합 트리를 구현하는 내적 엔진을 더 포함하는 것을 특징으로 하는 회로 패키지.
  22. 제21항에 있어서, 각각의 처리 요소는 상기 내적 엔진의 출력으로 계산된 벡터를 획득하고 처리하기 위한 텐서 엔진을 더 포함하는 것을 특징으로 하는 회로 패키지.
  23. 제21항에 있어서, 각각의 처리 요소는 메모리 시스템을 더 포함하는 것을 특징으로 하는 회로 패키지.
  24. 제19항에 있어서, 주변 장치 구성요소 상호 연결 익스프레스(PCIE) 인터페이스, 고급 RISC 머신 코어, 이미지 프로세서 또는 외부 메모리 컨트롤러 중 적어도 하나를 더 포함하는 것을 특징으로 하는 회로 패키지.
  25. 제19항에 있어서, 고 대역폭 메모리(HBM)를 더 포함하고, 상기 ASIC은 상기 복수의 처리 요소를 상기 HBM에 통신가능하게 결합하는 RAM 컨트롤러를 더 포함하는 것을 특징으로 하는 회로 패키지.
  26. 제1항에 있어서, 상기 복수의 처리 요소의 메시지 라우터는 상기 패킷의 일부에 라우팅 정보를 갖는 패킷을 라우팅하도록 구성되고, 상기 라우팅 정보를 이용하여 상기 전자-광자 네트워크를 통과하는 경로가 결정되는 것을 특징으로 하는 회로 패키지.
  27. 제26항에 있어서, 각각의 처리 요소의 상기 메시지 라우터는, 자신의 광자 채널 인터페이스 중 하나를 통해 수신된 상기 패킷의 상기 라우팅 정보를 기반으로 상기 패킷의 목적지를 결정하며, 상기 목적지가 로컬 메모리 또는 상기 처리 요소 내의 처리 엔진인 경우에는 로컬 포트로 상기 패킷을 라우팅하고, 상기 목적지가 상기 처리 요소 내의 상기 로컬 메모리 또는 처리 엔진이 아닌 경우에는 상기 광자 채널 인터페이스 중 또 다른 하나로 상기 패킷을 라우팅하도록 구성되는 것을 특징으로 하는 회로 패키지.
  28. 제26항에 있어서, 상기 복수의 처리 요소는 규칙적인 그리드에 배열되고, 상기 패킷의 상기 라우팅 정보는 상기 패킷의 목적지인 처리 요소에 대해 상기 그리드를 따라 제1 차원 및 제2 차원의 상대적 위치를 지정하는 것을 특징으로 하는 회로 패키지.
  29. 제28항에 있어서, 각각의 양방향 광자 채널은 상기 제1 차원 또는 상기 제2 차원 중 하나에서 상기 그리드에서 바로 인접한 한 쌍의 처리 요소를 연결하며, 각각의 처리 요소의 상기 메시지 라우터는 상기 패킷을 상기 제1 차원을 따라 바로 인접한 처리 요소로 라우팅할 경우 상기 제1 차원의 상대 위치와 관련된 상기 라우팅 정보의 값을 감소시키며 상기 제2 차원을 따라 바로 인접한 처리 요소로 상기 패킷을 라우팅할 경우 상기 제2 차원의 상대 위치와 관련된 상기 라우팅 정보의 값을 감소시키도록 구성되는 것을 특징으로 하는 회로 패키지.
  30. 제26항에 있어서, 상기 복수의 양방향 광자 채널은 상기 복수의 처리 요소를 적어도 2개의 차원을 정의하는 그리드 토폴로지를 갖는 전자-광자 네트워크 내로 연결하도록 구성되며, 상기 패킷의 상기 라우팅 정보는 상기 패킷의 목적지인 처리 요소에 대해 상기 적어도 2개의 차원 내의 좌표를 지정하고, 각각의 처리 요소의 상기 메시지 라우터는, 상기 적어도 2개의 차원 중 하나를 따라 위상적으로 바로 인접한 처리 요소로 상기 패킷을 라우팅할 경우, 상기 적어도 2개의 차원 중 하나와 관련된 값을 감소시킴으로써 상기 패킷의 라우팅 정보를 수정하는 것을 특징으로 하는 회로 패키지.
  31. 제1항에 있어서, 상기 전자 회로는 각각이 상기 복수의 처리 요소 중 하나에 대응하는 타일의 배열로 구성되는 것을 특징으로 하는 회로 패키지.
  32. 제31항에 있어서, 상기 타일은 직사각형 그리드 내에 배열된 직사각형 타일인 것을 특징으로 하는 회로 패키지.
  33. 제32항에 있어서, 상기 복수의 양방향 광자 채널은 상기 전기-광자 네트워크의 사변형 메시 토폴로지를 생성하도록 상기 직사각형 그리드 내에서 바로 인접한 타일의 각각의 쌍을 직접 연결하도록 구성되는 것을 특징으로 하는 회로 패키지.
  34. 제33항에 있어서, 상기 복수의 양방향 광자 채널은 상기 직사각형 그리드 내에서 인접하지 않은 타일의 하나 이상의 쌍을 직접 연결하도록 더 구성되는 것을 특징으로 하는 회로 패키지.
  35. 제33항에 있어서, 상기 전자-광자 네트워크의 래핑된 토로이달 메시 토폴로지를 생성하도록 상기 직사각형 그리드의 반대쪽 에지 상의 타일의 쌍을 직접 연결하도록 구성된 양방향 광자 채널을 더 포함하는 것을 특징으로 하는 회로 패키지.
  36. 제1항에 있어서, 상기 복수의 양방향 광자 채널은 상기 복수의 처리 요소를 입방 그리드 토폴로지를 갖는 전자광자 네트워크로 연결하도록 구성되는 것을 특징으로 하는 회로 패키지.
  37. 방법으로서, 상기 방법은:
    전자 광학 네트워크의 제1 전자 처리 요소에서, 헤더 및 페이로드-여기서 상기 헤더 또는 상기 페이로드의 일부는 상기 전자 광학 네트워크의 목적지 전자 처리 요소와 관련된 라우팅 정보를 포함함-를 갖는 전자 패킷을 생성하는 단계;
    상기 라우팅 정보를 기반으로, 상기 제1 전자 처리 요소로부터 전자 광학 네트워크의 하나 이상의 중간 전자 처리 요소를 경유하여 상기 목적지 전자 처리 요소로의 경로를 결정하는 단계-여기서 상기 제1, 목적지, 및 중간 처리 요소는 관련된 광자 채널에 의해 연결됨-;
    상기 제1 처리 요소에서, 상기 패킷을 상기 광자 채널 중 하나를 통해 상기 경로를 따라 제1 중간 처리 요소에 연결된 포트로 라우팅하며, 상기 패킷을 전자 신호에서 광 신호로 변환하여 상기 제1 중간 처리 요소로 전송하는 단계;
    상기 하나 이상의 중간 처리 요소 각각에서, 상기 광 신호를 다시 전자 신호로 변환하고, 상기 전자 신호를 상기 광자 채널 중 하나를 통해 상기 중간 처리 요소와 상기 목적지 처리 요소 중 상기 경로를 따라 다음에 있는 처리 요소에 연결된 포트로 라우팅하며, 상기 전자 신호를 상기 경로를 따라 다음에 있는 상기 처리 요소로 전송하기 위한 광 신호로 변환하는 단계; 및
    상기 목적지 처리 요소에서, 상기 광 신호를 다시 전자 신호로 변환하는 단계를 포함하는 것을 특징으로 하는 방법.
  38. 제37항에 있어서, 각 전자 신호를 광 신호로 변환하는 단계는 상기 각 전자 처리 요소의 변조기 드라이버를 작동하여 상기 광자 채널의 관련된 변조기가 상기 패킷에 따라 상기 광 신호를 변조하도록 하는 단계를 포함하고, 상기 광 신호를 다시 전자 신호로 변환하는 단계는 상기 광자 채널의 광 감지기에 의해 상기 광 신호를 측정하는 단계를 포함하는 것을 특징으로 하는 방법.
  39. 제37항에 있어서, 상기 제1, 중간, 및 목적지 전자 처리 요소 각각은 라우터를 포함하고, 상기 전자 광학 네트워크를 통과하는 상기 경로는 상기 제1, 중간 및 목적지 전자 처리 요소의 라우터들에 의해 집합적으로 결정되는 것을 특징으로 하는 방법.
  40. 제39항에 있어서, 상기 라우팅 정보는 상기 목적지 전자 처리 요소에 대한 제1 차원 및 제2 차원의 상대적 위치 측면에서 상기 목적지를 지정하고, 상기 방법은, 상기 제1 또는 중간 전자 처리 요소 중 어느 하나로부터 상기 경로를 따라 상기 다음 전자 처리 요소로 패킷을 전송하는 것에 대응하여, 상기 패킷의 상기 라우팅 정보를 수정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  41. 제39항에 있어서, 상기 제1, 중간, 및 목적지 전자 처리 요소의 상기 라우터는 각각 로컬 포트 및 해당 전자 처리 요소를 상기 전자-광자 네트워크 내의 복수의 다른 전자 처리 요소에 연결하는 다수의 광자 채널과 관련된 포트를 포함하고, 상기 제1 및 상기 중간 전자 처리 요소의 상기 라우터는 각각 상기 패킷을 상기 경로를 따라 다음에 있는 상기 전자 처리 요소에 연결된 상기 광자 채널과 관련된 상기 포트로 방향을 지정하며, 상기 목적지 전자 처리 요소의 상기 라우터는 상기 패킷을 해당 로컬 포트로 방향지정하는 것을 특징으로 하는 방법.
  42. 시스템으로서, 상기 시스템은:
    제1 회로 패키지 및 제2 회로 패키지-여기서 상기 제1 회로 패키지 및 상기 제2 회로 패키지 각각은, 복수의 처리 요소와 메시지를 전송 및 수신할 수 있는 복수의 메시지 라우터를 포함하는 전자 집적 회로(EIC), 및 상기 메시지 라우터를 상기 메시지에 대해 작동할 수 있는 칩 내 전자-광자 네트워크에 연결하는 복수의 칩 내 양방향 광자 채널을 포함함-; 및
    상기 제1 회로 패키지와 상기 제2 회로 패키지의 상기 메시지 라우터를 상기 제1 회로 패키지의 EIC로부터 상기 제2 회로 패키지의 EIC로 메시지를 전송할 수 있는 칩 간 전자-광자 네트워크로 연결하는 복수의 칩 간 양방향 광자 채널
    을 포함하는 것을 특징으로 하는 시스템.
  43. 제42항에 있어서, 각 회로 패키지는 상기 EIC가 구현되는 전자 회로층 및 상기 칩 내 양방향 광자 채널이 구현되는 광자 회로층을 포함하는 것을 특징으로 하는 시스템.
  44. 제43항에 있어서, 각 회로 패키지는 상기 광자 회로층을 구현하는 제1 반도체 칩 및 상기 광자 회로층을 구현하는 제2 반도체 칩을 포함하는 것을 특징으로 하는 시스템.
  45. 제42항에 있어서, 각각의 상기 회로 패키지의 상기 복수의 칩 내 양방향 광자 채널은 상기 회로 패키지의 광자 집적 회로(PIC)에서 광 도파관을 사용하여 구현되는 것을 특징으로 하는 시스템.
  46. 제42항에 있어서, 상기 칩 내 양방향 광자 채널 각각은 각 방향으로 하나 이상의 광자 링크를 포함하며, 각 광자 링크는 상기 PIC에서 상기 광자 링크의 입력 단부에 있는 광 변조기, 상기 광자 링크의 출력 단부에 있는 광 감지기, 및 상기 광 변조기와 상기 광 감지기를 연결하는 광 도파관을 포함하는 것을 특징으로 하는 시스템.
  47. 제46항에 있어서, 상기 메시지 라우터는 상기 양방향 광자 채널 중 하나와 인터페이스하기 위한 광 회로 인터페이스를 각각 포함하고, 각 광 회로 인터페이스는 상기 광자 링크의 상기 입력 단부에서 인터페이스하는 각 광자 링크용 변조기 드라이버와 상기 광자 링크의 상기 출력 단부에서 인터페이스하는 각 광자 링크용 트랜스임피던스 증폭기를 포함하는 것을 특징으로 하는 시스템.
  48. 제46항에 있어서, 상기 복수의 칩 간 양방향 광자 채널은 광섬유로 구현되는 것을 특징으로 하는 시스템.
  49. 제48항에 있어서, 상기 제1 및 제2 회로 패키지는 각각 상기 광섬유를 통해 상기 제1 회로 패키지의 상기 전자 광학 네트워크를 상기 제2 회로 패키지의 상기 전자 광학 네트워크에 결합하기 위한 하나 이상의 광학 결합 구조를 포함하는 것을 특징으로 하는 시스템.
  50. 제49항에 있어서, 상기 광 커플링 구조는 상기 PIC에 에지 커플러를 포함하는 것을 특징으로 하는 시스템.
  51. 제49항에 있어서, 상기 광 커플링 구조는 상기 PIC의 격자 커플러 위에 위치한 광케이블 부착 유닛(FAU)을 포함하는 것을 특징으로 하는 시스템.
  52. 제48항에 있어서, 상기 칩 간 양방향 광자 채널은 다중화된 광 신호를 전송하도록 구성되는 것을 특징으로 하는 시스템.
  53. 제52항에 있어서, 상기 칩 간 양방향 광자 채널은 각각 각 방향의 방향성 광자 채널을 포함하며, 제1 회로 패키지의 제1 PIC와 제2 회로 패키지의 제2 PIC 사이의 각 방향성 광자 채널은:
    상기 제1 PIC에, 복수의 각각의 파장에서 변조된 광 신호를 생성하기 위한 복수의 광 변조기, 상기 복수의 파장의 상기 변조된 광 신호를 단일 다중화된 광 신호로 결합하는 멀티플렉서, 및 상기 다중화된 광신호를 상기 광섬유에 결합시키는 광결합 구조; 및
    상기 제2 PIC에, 상기 광섬유로부터 상기 다중화된 광신호를 상기 제2 PIC에 결합시키는 광결합 구조, 상기 다중화된 광신호를 상기 복수의 파장의 변조된 광신호로 역다중화하는 역다중화기, 및 상기 복수의 파장에서 상기 변조된 광 신호를 측정하기 위한 복수의 개별 광 감지기를 포함하는 것을 특징으로 하는 시스템.
  54. 제42항에 있어서, 상기 칩 내 양방향 광자 채널의 변조기에 광 반송파 신호를 공급하기 위한 적어도 하나의 단일 파장 광원, 및 상기 칩 간 양방향 광자 채널의 변조기 그룹에 다중 파장의 광 반송파 신호를 공급하기 위한 적어도 하나의 다중 파장 광원을 더 포함하는 것을 특징으로 하는 시스템.
  55. 제54항에 있어서, 상기 적어도 하나의 단일 파장 광원 및 상기 적어도 하나의 다중 파장 광원은 상기 회로 패키지에 통합된 광원을 포함하는 것을 특징으로 하는 시스템.
  56. 제54항에 있어서, 상기 적어도 하나의 단일 파장 광원 및 상기 적어도 하나의 다중 파장 광원은 상기 회로 패키지의 외부에 제공되며 하나 이상의 광섬유를 통해 상기 회로 패키지 내의 하나 이상의 PIC에 광학적으로 결합되는 광원을 포함하는 것을 특징으로 하는 시스템.
  57. 제42항에 있어서, 복수의 관련 처리 요소와 관련된 EIC를 갖는 복수의 추가 회로 패키지를 더 포함하고, 상기 제1, 제2 및 추가 회로 패키지는 사변형 그리드에 배열되는 것을 특징으로 하는 시스템.
  58. 제57항에 있어서, 상기 칩 내 및 칩 간 양방향 광자 채널 각각은 상기 사변형 그리드에서 바로 인접한 한 쌍의 처리 요소를 연결하여 상기 칩 간 전기 광자 네트워크의 사변형 메시 토폴로지를 생성하는 것을 특징으로 하는 시스템.
  59. 제58항에 있어서, 상기 복수의 칩 간 양방향 광자 채널은 상기 사변형 그리드의 반대편 에지에 있는 처리 요소 쌍을 직접 연결하여 확장 가능한 래핑된 토로이드 메시 토폴로지를 갖는 전기 광자 네트워크를 형성하도록 더 구성되는 것을 특징으로 하는 시스템.
  60. 제42항에 있어서, 상기 메시지 라우터들이 상기 칩간 및 칩내 전자 광학 네트워크를 통해 상기 메시지를 라우팅하도록 구성되며, 상기 메시지가 양방향 광학 채널을 통해 상기 제1 처리 요소로부터 상기 제1 처리 요소와 직접 연결되지 않은 제2 처리 요소로 전송될 경우, 상기 전자가 하나 이상의 제3 처리 요소를 경유하는 경로를 따라 상기 제2 처리 요소로 라우팅되고, 전자는 상기 하나 이상의 제3 처리 요소를 경유하는 경로를 따라 상기 제2 처리 요소로 라우팅되며, 메시지는 상기 각각의 제3 처리 요소에서 광학 영역에서 전자 영역으로 변환된 후 각각의 제3 처리 요소와 연결된 메시지 라우터에서 다시 상기 광학 영역으로 변환되는 것을 특징으로 하는 시스템.
  61. 제60항에 있어서, 상기 메시지 라우터는 라우팅 정보와 관련된 상기 메시지의 일부를 기반으로 각 메시지에 대한 상기 전자 광학 네트워크를 통한 경로를 결정하도록 구성되는 것을 특징으로 하는 시스템.
  62. 관련된 가중치 세트를 갖는 복수의 신경 노드를 포함하는 인공 신경망(ANN)을 구현하는 처리 장치로서, 상기 처리 장치는:
    양방향 광자 채널에 의해 연결된 복수의 전자 처리 요소를 포함하는 전자-광자 네트워크를 포함하고, 각 처리 요소는 하나 이상의 처리 엔진, 상기 하나 이상의 처리 엔진에 통신 가능하게 결합된 메모리, 및 2개 이상의 양방향 광자 채널과 인터페이싱하고 상기 메모리에 통신 가능하게 연결된 메시지 라우터를 포함하며,
    상기 ANN의 각 신경 노드는 상기 하나 이상의 처리 요소에 의해 구현되고;
    각 신경 노드와 관련된 상기 가중치 세트는 해당 신경 노드를 구현하는 상기 하나 이상의 처리 요소의 상기 메모리에 저장되며,
    상기 메시지 라우터는 상기 신경 노드 사이의 미리 결정된 활성화 흐름를 기반으로 상기 ANN 실행 동안 각각의 신경 노드를 구현하는 처리 요소 사이에서 복수의 활성화를 스트리밍하도록 구성되고,
    각 처리 요소 내의 상기 하나 이상의 처리 엔진은, 상기 처리 요소에 의해 구현된 각 신경 노드에 대해, 상기 처리 요소의 메모리에 저장된 가중치 세트 및 상기 처리 요소로 스트리밍된 해당 노드에 대한 입력 활성화에 대한 연산을 수행하여 상기 ANN의 실행 동안 노드에 대한 출력 활성화를 생성하도록 구성되는 것을 특징으로 하는 처리 장치.
  63. 제62항에 있어서, 각 처리 요소는 상기 신경 노드 중 하나 이상을 구현하는 것을 특징으로 하는 처리 장치.
  64. 제62항에 있어서, 상기 신경 노드 중 적어도 하나는 상기 복수의 처리 요소에 의해 공동으로 구현되는 것을 특징으로 하는 처리 장치.
  65. 제62항에 있어서, 상기 동일한 처리 요소에 의해 구현된 신경 노드들 간의 활성화는 상기 처리 요소의 상기 메모리를 통해 교환되고, 상이한 처리 요소에 의해 구현된 신경 노드들 간의 활성화는 상기 양방향 광자 채널의 관련된 것들을 통해 교환되는 것을 특징으로 하는 처리 장치.
  66. 제62항에 있어서, 상기 하나 이상의 처리 엔진은 곱셈 누적(MAC) 연산을 수행하도록 구성된 곱셈기와 덧셈기의 조합 트리를 구현하는 내적 엔진을 포함하는 것을 특징으로 하는 처리 장치.
  67. 제66항에 있어서, 상기 하나 이상의 처리 엔진은 비선형 활성화를 계산하도록 구성된 텐서 엔진을 더 포함하는 것을 특징으로 하는 처리 장치.
  68. 제62항에 있어서, 상기 복수의 전자 처리 요소는 각각 상기 복수의 전자 처리 요소를 포함하는 하나 이상의 전자 집적 회로(EIC)에 구현되고, 상기 전자 처리 요소와 각 EIC를 연결하는 상기 양방향 광자 채널은 상기 EIC와 적층된 관련 광자 집적 회로(PIC)에서 광 도파관으로 구현되는 것을 특징으로 하는 처리 장치.
  69. 제68항에 있어서, 각 EIC 및 관련된 PIC는 시스템 인 패키지(SIP)로 함께 패키징되는 것을 특징으로 하는 처리 장치.
  70. 제68항에 있어서, 상기 복수의 전자 처리 요소는 복수의 EIC 상에 구현되고, 상기 복수의 EIC 중 상이한 전자 처리 요소를 연결하는 상기 양방향 광자 채널은 광섬유로 구현되는 것을 특징으로 하는 처리 장치.
  71. 제68항에 있어서, 상기 복수의 전자 처리 요소가 사변형 그리드에 배열되며, 상기 양방향 광자 채널이 상기 그리드에서 바로 인접한 처리 요소 쌍을 연결하여 상기 전자-광자 네트워크의 사변형 메시 토폴로지를 생성하도록 집합적으로 구성되는 것을 특징으로 하는 처리 장치.
  72. 미리 정해진 가중치를 갖는 복수의 신경 노드로 구성된 인공 신경망(ANN)을 구현하는 방법으로서, 상기 방법은:
    양방향 광자 채널에 의해 연결된 복수의 처리 요소를 포함하는 전자-광자 네트워크에 연결하는 단계-여기서 각각의 처리 요소는 하나 이상의 처리 엔진, 상기 하나 이상의 처리 엔진에 통신 가능하게 연결된 메모리, 및 2개 이상의 광자 채널 인터페이스 및 상기 메모리에 대한 통신 연결을 포함하는 메시지 라우터를 포함함-;
    런타임 이전에, 상기 신경 노드와 상기 처리 요소 사이의 할당에 기반하여, 각 신경 노드와 관련된 상기 미리 결정된 가중치를 상기 신경 노드를 구현하도록 할당된 하나 이상의 처리 요소의 상기 메모리에 로드하는 단계;
    상기 처리 요소에 의해 구현된 상기 신경 노드 간의 활성화를 라우팅하기 위해, 상기 ANN 내 상기 신경 노드들 간의 할당 및 미리 결정된 활성화 흐름을 기반으로 런타임 시 상기 메시지 라우터를 사용하는 단계
    를 포함하고,
    상기 처리 요소들 중 상이한 소스 및 목적지 요소에 의해 구현된 노드들 간에 라우팅되는 활성화는, 소스 요소 및 상기 소스 요소로부터 상기 목적지 요소로의 경로를 따라 임의의 중간 처리 요소에서, 상기 양방향 광자 채널을 통한 전송을 위해 전기적 형태로부터 광학 형태로 변환되고, 상기 목적지 요소 및 경로를 따라 임의의 중간 처리 요소에서, 광학 형태로부터 전기적 형태로 변환되는 것을 특징으로 하는 방법.
  73. 제72항에 있어서, 상기 가중치는 상기 전기 광학적 네트워크 외부의 메모리로부터 PCIE 인터페이스를 통해 상기 처리 요소의 상기 메모리로 로드되는 것을 특징으로 하는 방법.
  74. 제72항에 있어서, 공유 처리 요소에 의해 구현된 신경 노드 간의 활성화는 상기 처리 요소 내에서 전자적으로 전송되는 것을 특징으로 하는 방법.
  75. 제72항에 있어서, 상기 신경 노드와 상기 처리 요소 사이의 할당이 컴파일 타임에 결정되는 것을 특징으로 하는 방법.
  76. 제72항에 있어서, 상기 전자-광자 네트워크를 동작시키는 단계를 더 포함하고,
    상기 전자-광자 네트워크의 동작은:
    상기 구성된 라우터에 의해 이루어진 라우팅 결정에 따라 상기 처리 요소 간의 스트림을 활성화하는 동작; 및
    상기 노드를 구현하기 위해, 각 노드에 대해 할당된 상기 하나 이상의 처리 요소 중 상기 하나 이상의 처리 엔진을 사용하여 상기 노드에 스트리밍된 관련 가중치 및 입력 활성화에 대한 계산을 수행하는 동작
    을 포함하는 것을 특징으로 하는 방법.
  77. 제72항에 있어서, 전력 소비 감소를 위해 상기 활성화 흐름에 기반하여 상기 양방향 광자 채널 내에서 광자 링크를 선택적으로 활성화하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  78. 제77항에 있어서, 각 양방향 광자 채널은 복수의 광자 링크를 포함하고, 각 채널의 상기 링크 중 하나가 마스터 링크로서 역할을 하도록 활성 상태로 유지되는 것을 특징으로 하는 방법.
  79. 제72항에 있어서, 각 양방향 광자 채널은 각 방향의 복수의 광자 링크를 포함하며, 상기 방법은 상기 전기 광자 네트워크의 초기화 동안, 적어도 일부의 상기 양방향 광자 채널에 대한 로직 채널을 설정하는 단계를 더 포함하며, 상기 양방향 광자 채널에 대한 로직 채널을 설정하는 단계는 링크의 본딩 그룹을 형성하기 위해 해당 양방향 광자 채널 내의 각 방향의 광자 링크를 함께 결합하는 단계를 포함하는 것을 특징으로 하는 방법.
  80. 제79항에 있어서, 비기능적인 광자 링크는 상기 본딩 그룹에서 생략되는 것을 특징으로 하는 방법.
  81. 제79항에 있어서, 상기 본딩 그룹 내의 광자 링크의 수는 상기 ANN 구현과 관련된 대역폭 요구사항를 기반으로 결정되는 것을 특징으로 하는 방법.
  82. 하드웨어 회로로서, 상기 하드웨어 회로는:
    복수의 행과 복수의 열을 갖는 조합 트리-여기서 상기 조합 트리는 복수의 하드웨어 유닛을 사용하여 상기 조합 트리의 제1 열에서 수신된 입력 값을 기반으로 하나 이상의 내적 값을 생성함-;
    상기 입력 값을 저장하는 제1 메모리 장치;
    상기 제1 메모리 장치로부터 상기 입력 값을 획득하고 스위치 패브릭에서 상기 입력 값을 재구성하도록 구성된 시퀀서;
    상기 재구성된 입력 값 중 일부가 상기 스위치 패브릭으로부터 상기 조합 트리의 제1 열에 제공되는 시간을 제어하도록 구성된 클럭; 및
    각각의 하드웨어 유닛이 상기 하나 이상의 내적 값을 누적하도록 구성된 누산기
    를 포함하는 복수의 하드웨어 유닛을 포함하고,
    상기 클럭에 의해 정의된 하나 이상의 후속 시간 동안, 상기 재구성된 입력 값의 추가 부분이 상기 제1 열과 관련된 하드웨어 유닛의 축적기에 제공되며, 상기 클럭에 의해 제어되는 하나 이상의 추가 시간 동안, 상기 제1 열의 상기 하드웨어 유닛의 각각의 축적기와 관련된 값이 상기 제1 메모리 장치에 기록되는 것을 특징으로 하는 방법.
  83. 제82항에 있어서, 상기 하드웨어 유닛은 적어도 하나의 융합 다중 축적(FMA) 유닛을 포함하는 것을 특징으로 하는 방법.
  84. 제82항에 있어서, 상기 조합 트리는 상기 입력값을 수신하며 상기 제1 열에 의해 수신된 상기 입력값를 기반으로 상기 하나 이상의 내적 값을 생성하도록 구성된 내적 유닛의 어레이를 포함하며, 상기 어레이의 단일 내적 유닛은 2개 이상의 상기 하드웨어 유닛을 포함하는 것을 특징으로 하는 방법.
  85. 제84항에 있어서, 제어 회로, 데이터 경로를 포함하는 상기 내적 유닛의 어레이를 더 포함하며, 상기 제어 회로는, 상기 데이터 경로를 사용하여 적어도 2개의 가중치 값이 배열의 인접한 두 열 사이에서 스왑되도록 하거나 상기 배열의 제1 행에서 상기 배열의 제2 행으로 가중치 값을 전파하도록 구성되는 것을 특징으로 하는 방법.
  86. 제82항에 있어서, 상기 시퀀서는 상기 조합 트리를 상기 제1 메모리 장치에 동작 가능하게 결합하는 스위치 패브릭을 포함하는 것을 특징으로 하는 방법.
  87. 제82항에 있어서, 상기 시퀀서는 일련의 파라미터를 기반으로, 상기 제1 열에 제공되는 입력 벡터의 시퀀스를 결정하며, 상기 파라미터의 세트는 스트라이드 값, 확장 값 또는 커널 크기 값 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  88. 제82항에 있어서, 상기 시퀀서는 하나 이상의 클록 사이클 동안 제1 메모리 장치로부터 판독된 복수의 가중치 값 및 복수의 피연산자 값을 판독하여 입력 벡터 시퀀스의 개별 입력 벡터를 생성하도록 구성되고, 상기 개별 입력 벡터는 상기 복수의 가중치 값 및 상기 복수의 피연산자 값을 포함하는 것을 특징으로 하는 방법.
  89. 제88항에 있어서, 상기 제1 메모리 장치는 메모리 뱅크를 포함하고, 하나 이상의 클록 사이클 동안 시퀀서에 의해 판독된 상기 복수의 가중치 값 및 상기 복수의 피연산자 값이 판독을 위해 선택되어, 상기 복수의 가중치 값과 상기 복수의 피연산자 값이 메모리 뱅크로부터 수신된 후 상기 스위치 패브릭의 시퀀서에 의해 치환되며, 상기 가중치 값 각각과 상기 피연산자 값은 단일 패스로 상기 시퀀서에 의해 판독되는 것을 특징으로 하는 방법.
  90. 제88항에 있어서, 상기 제1 메모리 장치는 메모리 뱅크를 포함하고, 상기 하나 이상의 클록 사이클 동안 시퀀서에 의해 판독된 상기 복수의 가중치 값 및 상기 복수의 피연산자 값이 판독을 위해 선택되어, 상기 복수의 가중치 값과 상기 복수의 피연산자 값이 메모리 뱅크로부터 수신된 후 상기 스위치 패브릭의 상기 시퀀서에 의해 치환되고, 각각의 가중치 값과 피연산자 값이 단일 패스로 상기 시퀀서에 의해 판독되며, 데이터가 각각의 메모리 뱅크로부터 판독되고, 상기 메모리 뱅크의 행 수는 상기 조합 트리의 상기 제1 열의 행 수와 실질적으로 동일한 것을 특징으로 하는 방법.
  91. 제88항에 있어서, 상기 시퀀서에 의해, 상기 제1 메모리 장치의 각각의 연속적인 판독은 이전 클록 사이클 동안 상기 시퀀서에 의해 판독되지 않은 상기 제1 메모리 장치로부터 새로운 가중치 값과 새로운 피연산자 값이 판독되는 결과가 되는 것을 특징으로 하는 방법.
  92. 제82항에 있어서, 단일 하드웨어 유닛이 적어도 2개의 인접한 하드웨어 유닛에 동작적으로 결합되어, 상기 단일 하드웨어 유닛에 의해 생성된 출력 값이 상기 적어도 2개의 인접한 하드웨어 유닛 각각에 대한 입력 값으로 공유되는 것을 특징으로 하는 방법.
  93. 제82항에 있어서, 상기 누산기는 단일 하드웨어 유닛을 통해 값이 흐름으로써 상기 단일 하드웨어 유닛에 의해 생성된 부분 내적 값을 누적하도록 구성된 복수의 누산기를 포함하는 것을 특징으로 하는 방법.
  94. 제82항에 있어서, 상기 조합 트리는 상기 하드웨어 유닛을 통해 전달되는 값의 클럭 정렬을 유지하도록 구성된 상기 하드웨어 유닛과 관련된 레지스터를 포함하는 것을 특징으로 하는 방법.
  95. 제82항에 있어서, 상기 조합 트리에 입력 벡터의 시퀀스가 모두 입력된 후, 상기 입력 값에 대한 최종 내적 값 세트를 생성하도록 구성된 로직을 포함하며, 상기 최종 내적 값 세트는 상기 조합 트리의 상기 하드웨어 유닛의 누산기에 저장된 값으로부터 구성되는 것을 특징으로 하는 방법.
  96. 제95항에 있어서, 상기 로직은 상기 최종 내적 값 세트를 상기 제1 메모리 장치에 저장하도록 구성되는 것을 특징으로 하는 방법.
  97. 제82항에 있어서, 상기 입력값은 적어도 하나의 가중치 값과 적어도 하나의 피연산자 값을 포함하는 것을 특징으로 하는 방법.
  98. 제82항에 있어서, 상기 하드웨어 회로는 광자 집적 회로(PIC)의 일부인 것을 특징으로 하는 방법.
  99. 방법으로서, 상기 방법은:
    시퀀서에 의해, 상기 시퀀서에 동작가능하게 결합된 메모리 장치들의 세트로부터 제1 복수의 가중치 및 제1 복수의 피연산자 값을 판독하는 단계;
    조합 트리의 제1 열에서 상기 시퀀서로부터 복수의 제1 입력 벡터를 수신하는 단계-여기서 상기 제1 복수의 입력 벡터는 상기 제1 복수의 가중치 값 및 상기 제1 복수의 피연산자 값을 포함함-;
    상기 조합 트리의 제1 열에서 연산 단위로 상기 제1 복수의 입력 벡터를 처리하는 단계-여기서 상기 연산 단위는 각 입력 벡터와 연관되며, 각 연산 단위는 적어도 하나의 누산기를 가지며, 상기 조합 트리는 상기 조합 트리의 상기 제1 열에서 연산 단위가 수신한 값을 기반으로 각 연산 단위의 상기 누산기에서 내적 값을 생성하도록 구성됨-;
    상기 시퀀서에 의해, 상기 메모리 장치 세트로부터 제2 복수의 가중치 값 및 제2 복수의 피연산자 값을 판독하는 단계;
    상기 조합 트리의 상기 제1 열에서 상기 시퀀서로부터 제2 복수의 입력 벡터를 수신하는 단계-여기서 상기 제2 복수의 입력 벡터는 상기 제2 복수의 가중치 값과 상기 제2 복수의 피연산자 값을 포함함-;
    상기 조합 트리의 상기 제1 열에 있는 상기 연산 단위로 상기 제2 복수의 입력 벡터를 처리하는 단계-여기서 상기 제1 복수의 입력 벡터와 상기 제2 복수의 입력 벡터는 상기 조합 트리의 상기 제1 열에 있는 연산 유닛에 의해 수신될 입력 벡터 시퀀스의 일부임-; 및
    모든 입력 벡터 시퀀스가 상기 조합 트리의 상기 제1 열에 의해 수신되고 관련 연산 단위에 의해 처리된 후에, 상기 조합 트리의 상기 제1 열의 모든 행에 있는 각 연산 단위의 각 누산기에서 값을 검색하여 최종 내적 값 세트를 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  100. 제99항에 있어서, 상기 적어도 하나의 누산기는 상기 연산 유닛 중 각각에 복수의 누산기를 포함하며, 상기 복수의 누산기는 개별 연산 단위에서 생성된 부분 내적 값을 상기 개별 연산 단위를 통해 전달되는 값으로 축적하도록 구성되는 것을 특징으로 하는 방법.
  101. 하드웨어 회로로서, 상기 하드웨어 회로는:
    내적 유닛의 어레이에서 입력받은 가중치와 활성화 값을 기반으로 내적 값을 생성하는 조합 트리로 구성된 상기 내적 유닛의 어레이-여기서 상기 내적 유닛의 어레이는 내적 유닛의 64행 x 32열로 구성되며, 각 내적 유닛은 2개의 8비트 값을 입력으로 수신하고 누산기를 갖도록 구성됨-; 및
    상기 어레이를 메모리 장치 세트에 작동 가능하게 연결하는 스위치 패브릭
    을 포함하고,
    상기 메모리 장치 세트는 복수의 가중치 값과 복수의 활성화 값을 저장하며, 상기 스위치 패브릭은 하나 이상의 클록 사이클을 포함하는 제1 클록 시퀀스 동안 상기 어레이의 제1 열에 대한 입력으로서 64개의 입력 벡터를 제공하도록 구성되고, 하나 이상의 추가 클록 시퀀스는 상기 스위치 패브릭이 64개의 입력 벡터로 구성된 복수의 추가 세트를 상기 어레이의 상기 제1 열에 제공하도록 하며, 상기 어레이의 상기 제1 열에 있는 상기 누산기 각각의 비트가 32비트인 경우 각 누산기의 각각의 값을 상기 메모리 장치 세트에 다시 기록하는 것을 특징으로 하는 하드웨어 회로.
  102. 제101항에 있어서, 상기 내적 유닛은 복수의 FMA 유닛을 포함하는 것을 특징으로 하는 하드웨어 회로.
  103. 제101항에 있어서, 상기 내적 유닛은 32바이트 입력을 수신하도록 구성되는 것을 특징으로 하는 하드웨어 회로.
  104. 제101항에 있어서, 상기 메모리 장치 세트는 32바이트 폭의 메모리 장치의 64 뱅크를 포함하는 것을 특징으로 하는 하드웨어 회로.
  105. 회로 패키지로서, 상기 회로 패키지는:
    광자 채널 인터페이스를 포함하는 복수의 처리 요소를 포함하는 주문형 집적 회로(ASIC); 및
    전자-광자 네트워크의 적어도 일부를 형성하기 위해 상기 광자 채널 인터페이스를 통해 상기 복수의 처리 요소를 연결하는 복수의 광자 채널을 포함하고, 상기 복수의 광자 채널 중 일부가 상기 복수의 처리 요소 중 개별 처리 요소에 연결되며, 상기 개별 처리 요소는:
    상기 개별 처리 요소에 대해, 상기 복수의 광자 채널 중 일부로부터 마스터 광자 채널을 선택하고;
    상기 개별 처리 요소에 대해, 상기 복수의 광자 채널 중 일부로부터 슬레이브 광자 채널 세트를 선택하며;
    상기 마스터 광자 채널로부터 수신된 클록 신호를 추출하고;
    상기 수신된 클록 신호를 기반으로, 상기 개별 처리 요소에 대해 하나 이상의 로컬 동작을 수행하기 위해 상기 개별 처리 요소에 의해 사용되는 로컬 클록 신호를 생성하며;
    상기 슬레이브 광자 채널 세트를 통해, 상기 개별 처리 요소에 연결된 복수의 처리 요소 세트에 분산 클록 신호를 전송하도록 구성되고,
    상기 분산 클록 신호의 전송은 상기 개별 처리 요소의 광자 채널 인터페이스를 사용하여 상기 분산 클록 신호를 전기적 형태에서 광학적 형태로 변환하는 것을 포함하며, 상기 분산 클럭 신호의 전송은 상기 복수의 처리 요소 세트에서 분산 클럭 신호를 광학적 형태에서 전기적 형태로 변환하는 것을 더 포함하고, 상기 분산 클록 신호는 상기 슬레이브 광자 채널 세트를 통한 전송에 적합하며 상기 복수의 처리 요소 세트에 의한 관련 로컬 클록 신호로 사용하기에 적합하고, 상기 분산 클록 신호는 상기 수신된 클록 신호를 기반으로 생성되는 것을 특징으로 하는 회로 패키지.
  106. 제105항에 있어서, 상기 개별 처리 요소는 지터 감쇠 위상-잠금 루프(jitter-attenuating phase-lock loop, PLL)를 포함하고, 상기 개별 처리 요소는 상기 지터 감쇠 PLL을 사용하여 수신된 클록 신호에 기초한 낮은 지터 클록 신호를 생성하며, 상기 수신된 클록 신호에 기반한 상기 로컬 클록 신호의 생성은 상기 낮은 지터 클록 신호에 기반한 상기 로컬 클록 신호를 생성하는 것을 포함하는 것을 특징으로 하는 회로 패키지.
  107. 제105항에 있어서, 상기 개별 처리 요소는 상기 개별 처리 요소의 부팅 시간 동안 상기 마스터 광자 채널을 선택하는 것을 특징으로 하는 하드웨어 회로.
  108. 제105항에 있어서, 상기 개별 처리 요소는 상기 개별 처리 요소의 부팅 시간 동안 상기 슬레이브 광자 채널 세트를 선택하는 것을 특징으로 하는 회로 패키지.
  109. 제105항에 있어서, 상기 개별 처리 요소는: 상기 마스터 광자 채널에서 채널 정렬 작업을 수행하도록 구성되며, 상기 채널 정렬 작업은 클록 스큐를 보정하기 위해 상기 개별 처리 요소의 하나 이상의 설정을 조정하도록 구성되는 것을 특징으로 하는 회로 패키지.
  110. 제105항에 있어서, 상기 개별 처리 요소는 상기 마스터 광자 채널을 통해 수신된 수신 비트 스트림에 대해 클록 데이터 복구를 수행하여 상기 마스터 광자 채널로부터 수신된 클록 신호를 추출하는 것을 특징으로 하는 회로 패키지.
  111. 제105항에 있어서, 상기 개별 처리 요소는 하나 이상의 발신 비트 스트림을 상기 처리 요소의 집합으로 전송함으로써 상기 분산 클럭 신호를 상기 처리 요소의 집합으로 전송하며, 상기 하나 이상의 발신 비트 스트림은 분산 클럭 신호에 기반하여 생성되는 것을 특징으로 하는 회로 패키지.
  112. 제105항에 있어서, 상기 개별 처리 요소는 텐서 프로세서 및 DNN을 포함하며, 상기 텐서 프로세서 및 DNN 각각은 상기 로컬 클럭 신호를 기반으로 작동하도록 구성되고, 패킷은 상기 로컬 클럭 신호를 사용하여 상기 DNN과 상기 텐서 프로세서 간에 전송될 수 있는 것을 특징으로 하는 회로 패키지.
  113. 제105항에 있어서, 상기 개별 처리 요소는 상기 광자 채널 인터페이스를 포함하는 메시지 라우터를 포함하며, 상기 메시지 라우터는 상기 로컬 클록 신호에 기반하여 작동하도록 구성되는 것을 특징으로 하는 회로 패키지.
  114. 제105항에 있어서, 상기 개별 처리 요소는 적어도 두 벡터 사이의 하나 이상의 내적을 계산하기 위한 하드웨어 회로를 포함하며, 상기 하드웨어 회로는 상기 로컬 클록 신호에 기반하여 작동하도록 구성되는 것을 특징으로 하는 회로 패키지.
  115. 제105항에 있어서, 상기 개별 처리 요소는 제1 처리 요소이고, 상기 복수의 광자 채널 중 일부는 복수의 광자 채널 중 제1 일부이며, 상기 마스터 광자 채널은 제1 마스터 광자 채널이고, 상기 슬레이브 광자 채널 세트는 상기 슬레이브 광자 채널의 제1 세트이며, 상기 수신된 클록 신호는 제1 수신 클록 신호이고, 상기 로컬 클록 신호는 제1 로컬 클록 신호이며, 상기 분산 클록 신호는 제1 분산 클록 신호이고,
    상기 복수의 광자 채널 중 제2 일부가 제2 처리 요소에 연결되며, 상기 제2 처리 요소는 상기 제1 처리 요소에 연결된 처리 요소 세트에 포함되고, 상기 복수의 광자 채널 중 상기 제2 일부는 상기 제1 처리 요소를 상기 제2 처리 요소에 연결하는 슬레이브 광자 채널 세트의 개별 광자 채널을 포함하며,
    상기 제2 처리 요소는:
    상기 제2 처리 요소에 대해, 상기 개별 광자 채널로부터 제2 마스터 광자 채널을 선택하고;
    상기 제2 처리 요소에 대해, 상기 복수의 광재 채널 중 제2 일부로부터 슬레이브 광자 채널의 제2 세트를 선택하며;
    상기 제2 마스터 광자 채널로부터 제2 수신 클록 신호를 추출하고;
    상기 제2 수신 클록 신호를 기반으로, 상기 제2 처리 요소에 대한 하나 이상의 로컬 동작을 수행하기 위해, 상기 제2 처리 요소에 의해 사용되는 제2 로컬 클록 신호를 생성하며;
    상기 제2 세트의 슬레이브 광자 채널을 통해, 제2 처리 요소에 연결된 상기 복수의 처리 요소 중 제2 세트에 제2 분산 클럭 신호를 전송하도록 구성되고, 상기 제2 분산 클록 신호의 전송은 상기 개별 처리 요소의 상기 광자 채널 인터페이스를 사용하여 상기 제2 분산 클록 신호를 전기적 형태에서 광학적 형태로 변환하는 것을 포함하며, 상기 제2 분산 클록 신호의 전송은 상기 복수의 처리 요소 중 제2 세트에서 상기 제2 분산 클록 신호를 광학적 형태에서 전기적 형태로 변환하는 단계를 더 포함하고, 상기 제2 분산 클록 신호는 제2 세트의 슬레이브 광자 채널을 통한 전송에 적합하며 상기 복수의 처리 요소 중 제2 세트에 의한 관련된 로컬 클록 신호로서 사용하기에 적합하고, 상기 제2 분산 클록 신호는 상기 제2 수신 클록 신호에 기반하여 생성되는 것을 특징으로 하는 회로 패키지.
  116. 제115항에 있어서, 상기 제1 처리 요소는 제1 구성요소 세트를 포함하며, 상기 제2 처리 요소는 제2 구성 요소 세트를 포함하며, 상기 제1 구성 요소 세트는 제1 텐서 프로세서, 광자 채널 인터페이스를 포함하는 제1 메시지 라우터, 또는 적어도 2개의 벡터들 사이에서 하나 이상의 제1 내적을 계산하기 위한 제1 하드웨어 회로 중 적어도 하나를 포함하며, 상기 제2 구성 요소 세트는 제2 텐서 프로세서, 광자 채널 인터페이스를 포함하는 제2 메시지 라우터, 또는 적어도 2개의 벡터 사이의 하나 이상의 제2 내적을 계산하기 위한 제2 하드웨어 회로 중 적어도 하나를 포함하고, 상기 제1 구성요소 세트는 상기 제1 로컬 클럭 신호를 기반으로 작동하도록 구성되며, 상기 제2 구성 요소 세트는 상기 제2 로컬 클럭 신호를 기반으로 작동하도록 구성되는 것을 특징으로 하는 회로 패키지.
  117. 방법으로서, 상기 방법은:
    복수의 처리 요소 중 개별 처리 요소에 의해, 복수의 광자 채널로부터 마스터 광자 채널을 선택하는 단계-여기서 상기 개별 처리 요소에 대해 마스터 광자 채널이 선택되며, 상기 복수의 처리 요소는 회로 패키지의 ASIC(주문형 집적 회로)의 일부이고, 상기 복수의 처리 요소는 복수의 광자 채널에 의해 함께 연결되어 상기 회로 패키지 내의 전자-광자 네트워크의 적어도 일부를 형성함-;
    상기 개별 처리 요소에 의해, 상기 복수의 광자 채널로부터 슬레이브 광자 채널 세트를 선택하는 단계-여기서 상기 개별 처리 요소에 대해 상기 슬레이브 광자 채널 세트가 선택됨-;
    상기 개별 처리 요소에 의해, 상기 마스터 광자 채널로부터 수신된 클럭 신호를 디지털 포맷으로 추출하는 단계;
    상기 디지털 형식으로 수신된 상기 클록 신호를 기반으로, 상기 개별 처리 요소에 의해, 상기 ASIC의 디지털 부분을 사용하여 상기 개별 처리 요소에 대한 하나 이상의 로컬 동작을 수행하기 위해 상기 개별 처리 요소에 의해 사용되는 로컬 클록 신호를 생성하는 단계; 및
    상기 개별 처리 요소에 의해 그리고 상기 슬레이브 광자 채널 세트를 통해, 상기 개별 처리 요소에 연결된 복수의 처리 요소 세트에 분산 상기 클록 신호를 전송하는 단계
    를 포함하고,
    상기 분산 클럭 신호는 수신된 상기 디지털 형식의 클럭 신호를 기반으로 생성되며,
    상기 전송하는 단계는:
    상기 분산 클록 신호를 디지털 형식에서 광학 형식으로 변환하는 단계;
    상기 슬레이브 광자 채널 세트에 걸쳐 상기 광학 포맷의 분산 클록 신호를 라우팅하는 단계;
    상기 복수의 처리 요소 세트의 광자 인터페이스에서 상기 광학 포맷의 분산 클록 신호를 수신하는 단계; 및
    관련된 광자 채널 인터페이스를 사용하여 상기 복수의 처리 요소 세트에서 상기 분산 클록 신호를 디지털 형식으로 변환하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  118. 제117항에 있어서, 상기 개별 처리 요소는 지터 감쇠 위상 잠금 루프(PLL)를 포함하며, 상기 개별 처리 요소는 상기 지터 감쇠 PLL을 사용하여 수신된 클록 신호를 기반으로 낮은 지터 클록 신호를 생성하고, 상기 수신된 클록 신호에 기반하여 로컬 클록 신호를 생성하는 단계는 상기 낮은 지터 클록 신호에 기반하여 상기로컬 클록 신호를 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  119. 제117항에 있어서, 상기 마스터 광자 채널의 선택을 선택하는 단계는 상기 개별 처리 요소의 부팅 시간 동안 수행되는 것을 특징으로 하는 방법.
  120. 제117항에 있어서, 상기 개별 프로세싱 요소의 부팅 시간 동안 상기 슬레이브 광자 채널 세트의 선택이 수행되는 것을 특징으로 하는 방법.
  121. 제117항에 있어서, 상기 개별 처리 요소에 의해, 상기 마스터 광자 채널에서 채널 정렬 작업을 수행하는 단계를 포함하고, 상기 채널 정렬 작업은 클록 스큐를 보상하기 위해 상기 개별 처리 요소의 하나 이상의 설정을 조정하도록 구성되는 것을 특징으로 하는 방법.
  122. 제117항에 있어서, 상기 마스터 광자 채널로부터 수신된 클럭 신호를 추출하는 단계는 상기 마스터 광자 채널을 통해 수신된 수신 비트 스트림에 대해 클럭 데이터 복구를 수행하는 단계를 포함하는 것을 특징으로 하는 방법.
  123. 제117항에 있어서, 상기 분산 클록 신호를 처리 요소 세트로 전송하는 단계는 하나 이상의 발신 비트 스트림을 상기 처리 요소 세트로 전송하는 단계를 포함하며, 상기 하나 이상의 발신 비트 스트림은 상기 분산 클록 신호에 기반하여 생성되는 것을 특징으로 하는 방법.
  124. 제117항에 있어서, 상기 개별 처리 요소는 일련의 구성 요소를 포함하며, 상기 구성 요소 세트는 텐서 프로세서, 광자 채널 인터페이스를 포함하는 메시지 라우터 또는 적어도 두 벡터 간의 내적을 계산하기 위한 하드웨어 회로 중 적어도 하나를 포함하고, 상기 구성요소 세트는 상기 로컬 클록 신호를 기반으로 작동하도록 구성되는 것을 특징으로 하는 방법.
KR1020237044346A 2021-06-18 2022-06-17 머신러닝용 전자광학 네트워크 KR20240054223A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163212353P 2021-06-18 2021-06-18
US63/212,353 2021-06-18
PCT/US2022/073039 WO2022266676A2 (en) 2021-06-18 2022-06-17 Electro-photonic network for machine learning

Publications (1)

Publication Number Publication Date
KR20240054223A true KR20240054223A (ko) 2024-04-25

Family

ID=84489247

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237044346A KR20240054223A (ko) 2021-06-18 2022-06-17 머신러닝용 전자광학 네트워크

Country Status (7)

Country Link
US (9) US20220405562A1 (ko)
EP (2) EP4336859A3 (ko)
JP (1) JP2024515703A (ko)
KR (1) KR20240054223A (ko)
CN (1) CN117063185A (ko)
TW (1) TW202328987A (ko)
WO (1) WO2022266676A2 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11995448B1 (en) 2018-02-08 2024-05-28 Marvell Asia Pte Ltd Method and apparatus for performing machine learning operations in parallel on machine learning hardware
US11016801B1 (en) 2018-05-22 2021-05-25 Marvell Asia Pte, Ltd. Architecture to support color scheme-based synchronization for machine learning
US10997510B1 (en) 2018-05-22 2021-05-04 Marvell Asia Pte, Ltd. Architecture to support tanh and sigmoid operations for inference acceleration in machine learning
US12034481B2 (en) 2020-09-15 2024-07-09 California Institute Of Technology Optically enabled RF phased-arrays for data transmission
US11726383B2 (en) * 2020-10-14 2023-08-15 California Institute Of Technology Modular hybrid optical phased arrays
CN113099133A (zh) * 2021-03-30 2021-07-09 深圳裹动智驾科技有限公司 串行解串器链路传输高带宽相机数据的方法
CN115241074A (zh) * 2021-04-23 2022-10-25 南京光智元科技有限公司 光子半导体装置及其制造方法
WO2023177848A1 (en) 2022-03-18 2023-09-21 Celestial Al Inc. Optical multi-die interconnect bridge (omib)
WO2024148373A1 (en) * 2023-01-06 2024-07-11 Ankur Aggarwal Electrical bridge package with integrated off-bridge photonic channel interface

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2223867A (en) * 1988-09-09 1990-04-18 Univ City Multiprocessor data processing system
US4912706A (en) * 1988-11-18 1990-03-27 American Telephone And Telegraph Company Frame synchronization in a network of time multiplexed optical space switches
WO1996035972A1 (en) * 1995-05-08 1996-11-14 Testdesign Corporation Optical fiber interface for integrated circuit test system
GB9617907D0 (en) * 1996-08-28 1996-10-09 British Telecomm Communications network
US6744552B2 (en) * 1998-04-02 2004-06-01 Michael Scalora Photonic signal frequency up and down-conversion using a photonic band gap structure
US6850515B2 (en) * 2001-01-30 2005-02-01 The Regents Of The University Of California Optical layer multicasting using a single sub-carrier header and a multicast switch with active header insertion via light circulation
US7570844B2 (en) * 2005-01-18 2009-08-04 Doron Handelman Photonic integrated circuit device and elements thereof
US8213751B1 (en) * 2008-11-26 2012-07-03 Optonet Inc. Electronic-integration compatible photonic integrated circuit and method for fabricating electronic-integration compatible photonic integrated circuit
US9002155B2 (en) * 2011-03-28 2015-04-07 Altera Corporation Integrated optical-electronic interface in programmable integrated circuit device
US9383516B2 (en) * 2014-09-02 2016-07-05 Huawei Technologies Co., Ltd. System and method for optical input/output arrays
WO2016069620A1 (en) * 2014-10-27 2016-05-06 Coriant Advanced Technology, LLC Photonic interface for electronic circuit
US10908369B1 (en) * 2017-06-26 2021-02-02 Amazon Technologies, Inc. Flexible onboard optics for networking switches
US11373088B2 (en) * 2017-12-30 2022-06-28 Intel Corporation Machine learning accelerator mechanism
US10712497B2 (en) * 2018-02-27 2020-07-14 Samsung Electronics Co., Ltd. Photonic integrated circuit packages and methods of manufacturing the same
US10930628B2 (en) * 2018-06-27 2021-02-23 Taiwan Semiconductor Manufacturing Company, Ltd. Photonic semiconductor device and method
US11493713B1 (en) * 2018-09-19 2022-11-08 Psiquantum, Corp. Photonic quantum computer assembly having dies with specific contact configuration and matched CTE
GB2595550B (en) * 2020-03-06 2023-12-20 Rockley Photonics Ltd Switch assembly
ES2795820B2 (es) * 2020-07-16 2021-03-17 Univ Valencia Politecnica Circuito integrado fotónico programable y método de operación relacionado
US20240013041A1 (en) * 2020-08-06 2024-01-11 Nikolaos Pleros Single ended eam with electrical combining
US20220091332A1 (en) * 2020-09-18 2022-03-24 Electronics And Telecommunications Research Institute Electronic-photonic integrated circuit based on silicon photonics technology
US11336376B1 (en) * 2021-01-29 2022-05-17 Alibaba Group Holding Limited Flexible switch solution based on co-packaged optics
US20220374575A1 (en) * 2021-05-20 2022-11-24 Lightmatter, Inc. Electronic-photonic processors and related packages
US20220003948A1 (en) * 2021-07-08 2022-01-06 Intel Corporation Integrated Silicon Photonics Transceivers Enabling Ultra-High-Speed High Dense Input/Output And Interconnect For Terabyte Per Second Optical Interconnect

Also Published As

Publication number Publication date
EP4336859A3 (en) 2024-06-05
US20220405056A1 (en) 2022-12-22
US20240280747A1 (en) 2024-08-22
CN117063185A (zh) 2023-11-14
US20220405562A1 (en) 2022-12-22
EP4336859A2 (en) 2024-03-13
TW202328987A (zh) 2023-07-16
US20220405566A1 (en) 2022-12-22
US20220404545A1 (en) 2022-12-22
EP4281906A2 (en) 2023-11-29
US20240111091A1 (en) 2024-04-04
US20220404544A1 (en) 2022-12-22
EP4281906A4 (en) 2024-07-17
WO2022266676A2 (en) 2022-12-22
US20240201436A1 (en) 2024-06-20
WO2022266676A3 (en) 2023-01-26
JP2024515703A (ja) 2024-04-10
US20240201437A1 (en) 2024-06-20

Similar Documents

Publication Publication Date Title
KR20240054223A (ko) 머신러닝용 전자광학 네트워크
Xiang et al. Perspective on the future of silicon photonics and electronics
US20230358957A1 (en) Photonic communication platform
Rumley et al. Silicon photonics for exascale systems
US8320761B2 (en) Broadband and wavelength-selective bidirectional 3-way optical splitter
Pasricha et al. A survey of silicon photonics for energy-efficient manycore computing
US7889996B2 (en) Optical-signal-path routing in a multi-chip system
US20100266240A1 (en) Multi-chip system including capacitively coupled and optical communication
US20160212510A1 (en) Optical Switching
US7865084B2 (en) Multi-chip systems with optical bypass
CN104285395A (zh) 光学数据传输系统
Cheng et al. Optical interconnection networks for high-performance systems
Luo et al. Performance and energy aware wavelength allocation on ring-based WDM 3D optical NoC
Xu et al. Silicon nanophotonics for future multicore architectures: opportunities and challenges
Sunny et al. Machine learning accelerators in 2.5 D chiplet platforms with silicon photonics
Taheri et al. ReSiPI: A reconfigurable silicon-photonic 2.5 D chiplet network with PCMs for energy-efficient interposer communication
US20230296838A1 (en) Circuit package for connecting to an electro-photonic memory fabric
Wen et al. Silicon photonic memory interconnect for many-core architectures
Zhu High Performance Silicon Photonic Interconnected Systems
Liu et al. Optical interconnects for scale-out data centers
WO2023039858A1 (zh) 光计算系统、光计算方法及控制装置
Terzenidis et al. Optics for Disaggregating Data Centers and Disintegrating Computing
WO2023086516A1 (en) Photonic ising compute engine with an optical phased array
Ahn et al. CMOS nanophotonics: technology, system implications, and a CMP case study
Nisa et al. Towards efficient on-chip communication: A survey on silicon nanophotonics and optical networks-on-chip