CN117642659A - 光子计算平台 - Google Patents

光子计算平台 Download PDF

Info

Publication number
CN117642659A
CN117642659A CN202180093234.3A CN202180093234A CN117642659A CN 117642659 A CN117642659 A CN 117642659A CN 202180093234 A CN202180093234 A CN 202180093234A CN 117642659 A CN117642659 A CN 117642659A
Authority
CN
China
Prior art keywords
integrated circuit
optical
photonic integrated
waveguide
laser
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN202180093234.3A
Other languages
English (en)
Inventor
吴建华
苏湛
陈晖�
孟怀宇
沈亦晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Photon Smart Private Technology Co ltd
Original Assignee
Photon Smart Private Technology Co ltd
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 Photon Smart Private Technology Co ltd filed Critical Photon Smart Private Technology Co ltd
Priority claimed from PCT/US2021/062654 external-priority patent/WO2022125798A1/en
Publication of CN117642659A publication Critical patent/CN117642659A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Semiconductor Lasers (AREA)
  • Optical Integrated Circuits (AREA)

Abstract

一种组装光子计算系统的方法,包括附接光子源到支撑结构,以及附接光子集成电路到支撑结构。光子源包括基板上的第一激光晶粒,被配置以提供第一光束,以及基板上的第二激光晶粒,被配置以提供第二光束。光子集成电路包括第一波导以及被耦合到第一波导的第一耦合器,以及第二波导以及被耦合到第二波导的第二耦合器。该方法包括附接多个波束成形光学元件到支撑结构、基板,或光子集成电路,其中该附接包括在附接期间对齐第一波束成形光学元件以使第一光束被耦合到第一耦合器,并在附接期间对齐第二波束成形光学元件以使第二光束被耦合到第二耦合器。

Description

光子计算平台
相关申请的交叉引用
本申请要求于2020年12月9日提交的63/123,338号美国临时申请和于2021年10月8日提交的63/253,704号美国临时申请的优先权。上述申请的全部公开内容通过引用合并于此。
技术领域
本发明是有关于光子计算平台。
背景技术
对电信号(如电压或电流)上以模拟或数字形式编码的电子数据执行的计算通常使用电子计算硬件来实现,例如在集成电路中实现的模拟或数字电子设备(如处理器、专用集成电路(ASIC)或片上系统(SoC))、电子电路板、或其它电子电路。光信号已被用于长距离和短距离(例如,在数据中心内)传输数据。对这种光信号执行的操作通常发生在光数据传输的情境中,例如在网络中用于切换或过滤光信号的设备内。光信号在计算平台中的使用受到了更大的限制。
发明内容
总体来讲,在第一方面,提供了一种组装光子计算系统的方法。所述方法包括:将光子源附接到支撑结构,以及将光子集成电路附接到所述支撑结构。所述光子源包括:第一激光晶粒,其在基板上且被配置以提供第一光束,以及第二激光晶粒,其在所述基板上且被配置以提供第二光束。所述光子集成电路包括:第一波导以及耦合到所述第一波导的第一耦合器;以及第二波导以及耦合到所述第二波导的第二耦合器。所述方法包括将多个波束成形光学元件附接到所述支撑结构、所述基板或所述光子集成电路,其中所述附接包括:利用所述第一激光晶粒提供所述第一光束,在附接期间对齐第一波束成形光学元件,使所述第一光束被耦合到所述第一耦合器,利用所述第二激光晶粒提供所述第二光束,以及在附接期间对齐第二波束成形光学元件,使所述第二光束被耦合到所述第二耦合器。
所述方法的实施例可包括以下一个或多个特征。在所述第一波束成形光学元件的附接期间对齐所述第一波束成形光学元件可以包括:相对于所述支撑结构、所述基板或所述光子集成电路平移所述第一波束成形光学元件。
所述移动可以基本上是在平行于共用平面的平面上。
在所述第一波束成形光学元件的附接期间对齐所述第一波束成形光学元件可以包括:监测反馈,所述反馈指示所述第一光束通过所述第一耦合器进入所述第一波导的耦合效率。
在所述第二波束成形光学元件的附接期间对齐所述第二波束成形光学元件可以发生在所述第一波束成形光学元件的附接被完成之后。
所述光子源包括在所述基板上的第三激光晶粒,其可以以提供第三光束,所述第一激光晶粒可以被配置以从第一发射位置提供所述第一光束,所述第二激光晶粒可以被配置以从第二发射位置提供所述第二光束,并且所述第三激光晶粒可以被配置以从第三发射位置提供所述第三光束。所述第一发射位置、所述第二发射位置以及所述第三发射位置可以基本上沿着直线对齐。
所述光子源包括在所述基板上的第四激光晶粒,其可以被配置以从第四发射位置提供第四光束。所述第一发射位置、所述第二发射位置、所述第三发射位置以及所述第四发射位置可以基本上沿着平面对齐。
所述第一激光晶粒以及所述第二激光晶粒可以被导向,使所述第一光束以及所述第二光束可以基本上沿着平面对齐。
所述第一激光晶粒、所述第二激光晶以及所述第三激光晶粒可以被导向,使所述第一光束、第二光束以及所述第三光束可以基本上沿着平面对齐。
所述光子源可以包括片上基座结构,其包括激光二极管条,所述激光二极管条包括被附接到包括至少一个散热器或热电冷却器的结构的多个激光晶粒,所述多个激光晶粒包括所述第一激光晶粒以及所述第二激光晶粒。
所述片上基座可以被附接到包括所述热电冷却器的结构。所述方法可以包括提供热电冷却器控制器,其被配置以控制所述热电冷却器的温度。
所述第一波束成形光学元件以及所述第二波束成形光学元件可以包括透镜。
所述第一耦合器以及所述第二耦合器可以包括被耦合到各个所述第一波导以及所述第二波导的波导光栅耦合器。
所述第一耦合器以及所述第二耦合器可以包括被耦合到各个所述第一波导以及所述第二波导的边缘耦合器。
所述支撑结构可以包括中介层,其为来自所述光子集成电路的电信号提供电信号路径。
所述中介层可以包括光电中介层,其为来自所述光子集成电路的光信号提供光信号路径。
所述方法可以包括将所述中介层附接到平面网格阵列LGA基板。
所述光子集成电路在受控塌陷芯片连接中可以被附接到所述光电中介层。
所述支撑结构可以包括平面网格阵列LGA基板。
所述方法可以包括将第一电子集成电路电性耦合到所述光子集成电路的顶面,并将第二电子集成电路电性耦合到所述光子集成电路的底面。
所述第二电子集成电路可以包括数字储存模块,且所述第一电子集成电路可以包括混合数字/模拟集成电路,其被配置以提供用以控制在所述光子集成电路中的光子计算元件的模拟控制信号,并向所述数字储存模块发送数字数据或从所述数字储存模块接收数字数据。
所述光子集成电路可以包括基板。所述方法可以包括提供导电通孔,所述导电通孔通过所述光子集成电路的所述基板以允许电信号通过所述导电通孔在所述第一电子集成电路以及所述第二电子集成电路之间被发送。
在另一一般方面,一种装置包括:光子源,其被附接到支撑结构,其中所述光子源包括:第一激光晶粒,在第一基板上,其中所述第一激光晶粒可以置以提供第一光束,以及第二激光晶粒,在所述第一基板或第二基板上,其中所述第二激光晶粒可以置以提供第二光束。该装置包括光子集成电路,其被附接到所述支撑结构,其中所述光子集成电路包括:第一波导以及耦合到所述第一波导的第一耦合器;以及第二波导以及耦合到所述第二波导的第二耦合器。该装置包括多个波束成形光学元件,其被附接到所述支撑结构、所述第一基板、各个所述第一基板以及所述第二基板或所述光子集成电路中的至少一个。所述波束成形光学元件包括:第一波束成形光学元件,其可以被配置以将所述第一光束耦合到所述光子集成电路上的所述第一耦合器;以及第二波束成形光学元件,其可以被配置以将所述第二光束耦合到所述光子集成电路上的所述第二耦合器。
所述装置的实施例可播客以下一个或多个特征。所述装置可以包括被附接到所述光子集成电路的波束重定向光学元件,所述波束重定向元件被配置以重定向所述第一光束进入所述第一耦合器以及重定向所述第二光束进入所述第二耦合器。
所述波束重定向光学元件可以包括被配置以反射所述第一光束进入所述第一耦合器的第一表面,以及被配置以反射所述第二光束进入所述第二耦合器的第二表面。
所述波束重定向元件的所述第一表面可以与所述波束重定向元件的所述第二表面重叠。
所述波束重定向光学元件可以包括棱镜。
所述波束重定向光学元件可以包括镜子。
所述光子源可以包括第三激光晶粒,其被布置在所述基板上且被配置以提供第三光束。所述第一激光晶粒可以被配置以从第一发射位置提供所述第一光束,所述第二激光晶粒可以被配置以从第二发射位置提供所述第二光束,并且所述第三激光晶粒可以被配置以从第三发射位置提供所述第三光束。所述第一发射位置、所述第二发射位置以及所述第三发射位置可以基本上沿着直线对齐。
所述光子源可以包括在所述基板上的第四激光晶粒,并且所述第四激光晶粒可以被配置以从第四发射位置提供第四光束。所述第一发射位置、所述第二发射位置、所述第三发射位置以及所述第四发射位置可以基本上沿着平面对齐。
所述光子源可以包括在所述第一基板或各个基板上的至少八个激光晶粒,所述至少八个激光晶粒包括所述第一激光晶粒以及所述第二激光晶粒,且所述第一基板或各个基板被附接到一个或多个散热器结构。
所述激光晶粒可以被配置以从可以基本上沿着平面对齐的对应的发射位置提供光束。
所述第一波束成形光学元件以及所述第二波束成形光学元件可以包括透镜。
所述第一耦合器以及所述第二耦合器可以包括被耦合到各个所述第一波导以及所述第二波导的波导光栅耦合器。
所述第一耦合器以及所述第二耦合器可以包括被耦合到各个所述第一波导以及所述第二波导的边缘耦合器。
所述支撑结构可以包括光电中介层,其为来自所述光子集成电路的电信号提供电信号路径,并为来自所述光子集成电路的光信号提供光信号路径。
所述光子集成电路可以在受控塌陷芯片连接中被附接到所述光电中介层。
所述装置可以包括电子集成电路。
所述光子集成电路可以包括光电计算元件,且所述电子集成电路可以包括控制电路,其被配置以提供用以控制所述光电计算元件的电子控制信号。
所述光电计算元件可以包括至少一个光调制器,其基于所述电子控制信号中的至少一个调制光信号。
所述电子集成电路可以在受控塌陷芯片连接中被附接到所述光电中介层。
所述电子集成电路可以在受控塌陷芯片连接中被附接到所述光子集成电路。
所述装置可以包括被附接到所述光电中介层的两个或更多个动态随机存取存储器(DRAM)集成电路的高带宽存储器(HBM)堆叠。
所述第一激光晶粒可以被配置以使所述第一光束具有第一波长,所述第二激光晶粒可以被配置以使所述第二光束具有第二波长,所述第一波长与所述第二波长不同,且所述光子集成电路可以包括波分复用计算模块,其同时处理源自所述第一光束的第一光信号以及源自所述第二光束的第二光信号。
在另一一般方面,一种装置包括:光子源,其被附接到支撑结构,并且所述光子源包括:激光器模块,其被配置以提供光束。所述装置包括光子集成电路,其被附接到所述支撑结构,其中所述光子集成电路包括:第一波导以及耦合到所述第一波导的耦合器;以及光电电路,其与所述第一波导光通信并被配置以从一个或多个控制电极接收一个或多个电信号。所述装置包括至少一个波束成形光学元件,其被附接到所述支撑结构、所述光子源或所述光子集成电路。所述波束成形光学元件被配置以将所述光束耦合到所述光子集成电路上的所述耦合器。所述装置包括数字电子模块,其与所述光子集成电路电性接触;以及电子集成电路,其与所述光子集成电路电性接触。所述电子集成电路包括模拟电路与数字电路,其中所述模拟电路与所述一个或多个控制电极中的至少一个电性接触。所述光子集成电路还包括多个金属路径,其穿过所述光子集成电路的至少一部分,被配置以在所述电子集成电路中的所述数字电路与所述数字电子模块之间提供电性接触点。
所述装置的实施例可包括以下一个或多个特征。所述数字电子模块与所述光子集成电路可以在和所述电子集成电路相同的平面上电性接触。
所述数字电子模块可以与所述光子集成电路的第一表面电性接触,所述电子集成电路与所述光子集成电路的第二表面电性接触,所述第二表面与所述第一表面相对。
所述数字电子模块可以包括两个或更多个动态随机存取存储器(DRAM)晶粒的堆叠。
所述支撑结构可以包括基板,其包括表面贴装电性接触点的阵列,其与所述光子集成电路的电性接触点通信。
在另一个一般方面,提供了一种用于组装光子计算系统的方法。所述方法包括:将多个激光晶粒附接到第一支撑结构,其中每个激光晶粒被配置以产生光束;以及将光子集成电路附接到所述第一支撑结构。所述光子集成电路包括:多个光波导,其被配置以承载光信号,其中一组多个输入值被编码在由所述光波导承载的各个光信号上;多个耦合器,每个耦合器被耦合到对应的波导;光网络,其包括多个分光器或定向耦合器;以及光电电路区段的阵列,其中每个光电电路区段被配置以接收来自所述光网络的输出端口中的一个输出端口的光波。每个光电电路区段包括:至少一个光探测器,其被配置以探测来自操作的至少一个光波;以及至少一个导电路径,其被整合在被电性耦合到所述光探测器且被电性耦合到电性输出端口的所述光子集成电路中。所述方法包括将多个波束成形光学元件附接到所述第一支撑结构或所述光子集成电路,其中每个波束成形光学元件与激光晶粒以及耦合器关联,且所述附接包括对齐每个波束成形光学元件以致使由所述对应的激光晶粒产生的所述光束通过所述对应的耦合器被耦合到所述对应的波导。
所述方法的实施例可以包括以下一个或多个特征。将所述多个激光晶粒附接到所述支撑结构可以包括将所述多个激光晶粒附接到包括至少一个散热器或热电冷却器的第二支撑结构,并将所述第二支撑结构附接到所述第一支撑结构。
在所述波束成形光学元件的附接期间对齐每个波束成形光学元件可以包括监测反馈,所述反馈指示所述对应的光束通过所述对应的耦合器进入所述对应的波导的耦合效率。
所述方法可以包括顺序地对齐所述波束成形光学元件,其中在第一波束成形光学元件基于监测指示所述耦合效率的所述反馈的对齐完成后,基于监测指示所述耦合效率的所述反馈对齐第二波束成形光学元件,且在所述第二波束成形光学元件基于监测指示所述耦合效率的所述反馈的对齐完成后,基于监测指示所述耦合效率的所述反馈对齐第三波束成形光学元件。
所述方法可以包括将第一电子集成电路电性耦合到所述光子集成电路的顶面,并将第二电子集成电路电性耦合到所述光子集成电路的底面。
所述第二电子集成电路可以包括数字储存模块,且所述第一电子集成电路可以包括混合数字/模拟集成电路,其可以被配置以提供用以控制在所述光子集成电路中的光子计算元件的模拟控制信号,并向所述数字储存模块发送数字数据或从所述数字储存模块接收数字数据。
所述光子集成电路可以包括基板,且所述方法可以包括提供导电通孔,所述导电通孔通过所述光子集成电路的所述基板以允许电信号通过所述导电通孔在所述第一电子集成电路以及所述第二电子集成电路之间被发送。
每个光电电路区段可以包括马赫-曾德尔干涉仪,其被配置以在以下两者之间执行乘法操作:(1)基于被所述光网络缩放的所述多个输入值中的一个的值,以及(2)由被电性耦合到所述混合数字/模拟集成电路的电性输入端口提供的电性数值。所述混合数字/模拟集成电路可以被配置以提供所述电性数值给所述光电电路区段的所述电性输入端口。
所述方法可以包括:将所述第一支撑结构附接到平面网格阵列(LGA)基板。将所述多个激光晶粒附接到所述第一支撑结构可以在所述第一支撑结构被附接到所述LGA基板后被执行。
在另一一般方面,一种装置包括:第一支撑结构;多个激光晶粒,其被附接到所述第一支撑结构,其中每个激光晶粒可以被配置以产生光束;以及光子集成电路,其被附接到所述第一支撑结构。所述光子集成电路包括:多个光波导,其被配置以承载光信号,其中一组多个输入值被编码在由所述光波导承载的各个光信号上;多个耦合器,每个耦合器被耦合到对应的波导;光网络,其包括多个分光器或定向耦合器;以及光电电路区段的阵列,其中每个光电电路区段被配置以接收来自所述光网络的输出端口中的一个输出端口的光波。每个光电电路区段包括:至少一个光探测器,其被配置以探测来自操作的至少一个光波;以及至少一个导电路径,其被整合在被电性耦合到所述光探测器且被电性耦合到电性输出端口的所述光子集成电路中。所述装置包括多个波束成形光学元件,其被附接到所述支撑结构或所述光子集成电路,其中每个波束成形光学元件与激光晶粒以及耦合器关联,且被配置以致使由所述对应的激光晶粒产生的所述光束通过所述对应的耦合器被耦合到所述对应的波导。
所述装置的实施例包括以下一个或多个特征。所述装置可以包括第二支撑结构,其包括至少一个散热器或热电冷却器,其中所述多个激光晶粒被附接到所述第二支撑结构,且所述第二支撑结构被附接到所述第一支撑结构。
所述光子集成电路可以包括反馈光探测器以及与所述光波导中的一个相关联的抽头波导,并且所述抽头波导可以被配置以提供耦合到所述对应的光波导的光功率的一部分给所述反馈光探测器。所述装置可以包括反馈监测电路,其被配置以监测由所述反馈光探测器产生的反馈信号。
所述装置可以包括第一电子集成电路,其被电性耦合到所述光子集成电路的顶面,以及第二电子集成电路,其被电性耦合到所述光子集成电路的底面。
所述第二电子集成电路可以包括数字储存模块,且所述第一电子集成电路可以包括混合数字/模拟集成电路,其可以被配置以提供用以控制在所述光子集成电路中的光子计算元件的模拟控制信号,并向所述数字储存模块发送数字数据或从所述数字储存模块接收数字数据。
所述光子集成电路可以包括基板以及通过所述基板的导电通孔。所述导电通孔可以允许电信号通过所述导电通孔在所述第一电子集成电路以及所述第二电子集成电路之间被发送。
每个光电电路区段可以包括马赫-曾德尔干涉仪,其被配置以在以下两者之间执行乘法操作:(1)基于被所述光网络缩放的所述多个输入值中的一个的值,以及(2)由被电性耦合到所述混合数字/模拟集成电路的电性输入端口提供的电性数值。所述混合数字/模拟集成电路可以被配置以提供所述电性数值给所述光电电路区段的所述电性输入端口。
所述耦合器可以包括导模谐振耦合器或边缘耦合器中的至少一个。
所述多个激光晶粒可以被配置以产生具有多个波长的多个光束,所述多个光束包括至少两个具有不同波长的光束,且所述光子集成电路可以包括波分复用计算模块,其同时处理具有第一波长并代表第一值的第一光信号以及具有第二波长并代表第二值的第二光信号。
在另一一般方面,提供了一种用于组装光子计算系统的方法。所述方法包括:将多个激光晶粒附接到第一支撑结构,其中每个激光晶粒被配置以产生激光束;将光子集成电路附接到所述第一支撑结构。所述光子集成电路包括:多个输入波导,其被配置以承载输入光信号;多个耦合器,每个耦合器被耦合到对应的输入波导;多个操作光探测器,其中每个操作光探测器被配置以探测源自基于至少一个输入光信号的操作的光信号。所述光子集成电路包括多个反馈光探测器,其中每个反馈光探测器与输入波导关联;以及多个抽头波导,其中每个抽头波导与输入波导关联且被配置以提供耦合到所述输入波导的光功率的一部分给所述反馈光探测器。所述方法包括将多个波束成形光学元件附接到所述第一支撑结构或所述光子集成电路,其中每个波束成形光学元件与所述多个激光晶粒中的一个以及所述多个耦合器中的一个相关联;以及驱动所述激光晶粒以顺序地或平行地产生激光束。所述方法包括使用每个反馈光探测器以产生反馈信号来指示所述激光束通过所述对应的耦合器进入所述对应的波导的耦合效率;以及对齐每个波束成形光学元件以致使由所述对应的激光晶粒产生的所述激光束在所述光子集成电路中通过所述对应的耦合器被耦合到所述对应的输入波导,其中对齐所述波束成形光学元件是基于所述对应的反馈光探测器产生的所述反馈信号。
所述方法的实施例可包括以下一个或多个特征。对齐所述波束成形光学元件可以包括对齐所述波束成形光学元件以最大化所述激光束进入所述对应的波导的所述耦合。
附接所述多个激光晶粒可以包括附接至少八个激光晶粒。所述光子集成电路可以被配置以对输入向量执行操作,每个输入向量具有至少八个平行比特,且每个比特可以由所述激光晶粒之一产生的所述激光束的调制版本表示。
所述波束成形光学元件可以包括透镜。
在另一一般方面,一种装置包括:光子集成电路,其通过在所述光子集成电路的第一表面上的第一导电结构的阵列被附接到支撑结构。所述光子集成电路可以包括:波导以及耦合器,所述耦合器被配置以将光束耦合到所述波导中;以及电子集成电路,其通过耦合到所述光子集成电路以及所述电子集成电路的第二导电结构的布置而被附接到所述光子集成电路。所述第二导电结构的布置提供所述电子集成电路以及所述光子集成电路之间的电通信。所述光子集成电路还包括:多个导电通孔,其穿过所述光子集成电路的至少一部分从所述第二导电结构的布置延伸到所述光子集成电路的所述第一表面。
所述装置的实施例可包括以下一个或多个特征。所述耦合器可以邻近于所述光子集成电路的所述第一表面。
所述光子集成电路还可以包括光电计算元件,所述光电计算元件包括被耦合到所述波导的至少一个光电计算元件。
所述多个光电计算元件可以在所述光子集成电路的一个或多个层之中,所述一个或多个层相比所述第二导电结构的布置更靠近所述第一表面。
所述第二导电结构的布置可以包括邻近于所述光子集成电路的第二表面的多个背面再分布层(RDL)。
所述第二导电结构的布置可以包括邻近于所述电子集成电路的表面的多个背面再分布层(RDL)。
所述光子集成电路还可以包括光电计算元件,所述光电计算元件包括被耦合到所述波导的至少一个光电计算元件。
所述电子集成电路可以包括控制电路,其被配置以提供用于控制所述光电计算元件的电子控制信号。
所述光电计算元件可以包括至少一个光调制器,其基于所述电子控制信号中的至少一个调制光信号。
所述支撑结构可以包括平面网格阵列基板,其包括在所述平面网格阵列基板的表面上的接触点的阵列,所述接触点的阵列提供通往在所述光子集成电路的所述第一表面上的所述第一导电结构的阵列的电性连接。
所述装置可以包括光子源,其被配置以提供所述光束。
所述光子源可以被附接到所述平面网格阵列基板的一部分或中介层,所述中介层被附接到所述平面网格阵列基板。
所述耦合器可以包括边缘耦合器。
所述平面网格阵列基板可以限定开口,且模块的一部分可以被插入所述开口的一部分中并被附接到所述光子集成电路的所述第一表面。
所述模块的所述部分可以包括被耦合到所述光子源的光连接器。
所述耦合器可以包括波导光栅耦合器。
所述模块可以包括数字储存模块。
所述数字储存模块可以包括两个或更多个动态随机存取存储器(DRAM)集成电路的高带宽存储器(HBM)堆叠。
所述耦合器可以包括波导光栅耦合器。
所述耦合器可以包括边缘耦合器。
在另一一般方面,一种装置包括:电子集成电路;以及光子集成电路,包括:多个导电通孔,其穿过所述光子集成电路的至少一部分,其中所述导电通孔延伸到所述光子集成电路的背对所述电子集成电路的第一表面,且所述导电通孔被配置以提供所述电子集成电路到所述光子集成电路的所述第一表面上所耦合的元件的导电路径。
所述装置的实施例可包括以下一个或多个特征。所述多个导电通孔可以被配置以为所述电子集成电路提供到基板的电性接触点,其中所述光子集成电路被布置在所述电子集成电路以及所述基板之间。
所述基板可以包括平面网格阵列基板,其可以包括在所述平面网格阵列基板的表面上的接触点的阵列,所述接触点的阵列提供通往在所述光子集成电路的所述第一表面上的导电结构的阵列的电性连接。
所述装置可以包括所述平面网格阵列基板。
所述光子集成电路可以包括:波导;耦合器,其被配置以将光束耦合到所述波导中;以及光电计算元件,其包括被耦合到所述波导的至少一个光电计算元件。
所述电子集成电路可以包括控制电路,所述控制电路被配置以提供用于控制所述光子集成电路中的所述光电计算元件的电子控制信号。
所述装置可以包括光子源,其被配置以提供所述光束。
所述装置可以包括被电性耦合到所述光子集成电路的所述第一表面的存储设备。所述电子集成电路可以被电性耦合到所述光子集成电路的第二表面,且所述电子集成电路可以通过至少一些所述导电通孔被电性耦合到所述存储设备。
所述存储设备可以包括两个或更多个动态随机存取存储器(DRAM)集成电路的高带宽存储器(HBM)堆叠。
在另一一般方面,提供了一种用于制造集成光电设备的方法。所述方法包括:形成光子集成电路的多个层,所述形成包括在导电通孔的末端被显露的一层上形成多个再分布层(RDL)。所述方法包括形成电子集成电路的多个层,所述形成包括在电子信号被提供的一层上形成多个再分布层(RDL)。所述方法包括将所述光子集成电路的多个RDL与所述电子集成电路的多个RDL结合在一起。
所述方法的实施例包括以下一个或多个特征。形成所述光子集成电路的所述多个层还可以包括:在一个或多个层中形成波导以及被耦合到所述波导的耦合器;在一个或多个层中形成光电计算元件,所述光电计算元件包括被耦合到所述波导的至少一个光电计算元件。所述方法还可以包括:形成穿过多个层的所述导电通孔,所述多个层可以包括所述波导、所述耦合器以及所述多个光电计算元件被形成其中的所述一个或多个层。
形成所述电子集成电路的所述多个层还可以包括在一个或多个层中形成被配置以提供所述电子信号的电路。
所述方法还可以包括移除所述光子集成电路的一部分以显露所述导电通孔的末端以及显露所述耦合器。
所述方法还可以包括将所述导电通孔的多个被显露的末端通过导电结构的阵列附接到支撑结构。
所述支撑结构可以包括平面网格阵列基板,其包括在所述平面网格阵列基板的表面上的接触点的阵列,所述接触点的阵列提供通往所述导电结构的阵列的电性连接。
所述方法还可以包括在所述平面网格阵列基板中形成开口,并将模块附接到所述光子集成电路的表面,其中所述模块的一部分被插入所述开口的一部分中。
所述模块可以包括光子源,其被定位以提供光束给所述耦合器。
所述模块可以包括两个或更多个动态随机存取存储器(DRAM)集成电路的高带宽存储器(HBM)堆叠。
所述耦合器可以包括波导光栅耦合器。
形成所述导电通孔可以发生在形成所述多个光电计算元件之前。
在另一种一般方面中,提供一种组装光子计算系统的方法,该方法包括:形成光子集成电路的多个层;以及在导电通孔的末端被显露的该光子集成电路的表面上形成多个再分布层(RDL),其中多个第一电性接触点被形成在所述多个再分布层的表面上。该方法包括形成电子集成电路的多个层;以及在电信号被提供的该电子集成电路的表面上形成多个再分布层,其中多个第二电性接触点被形成在所述多个再分布层的表面上。该方法包括将在该光子集成电路上的所述多个再分布层的所述多个第一电性接触点以及在该电子集成电路的所述多个再分布层的所述多个第二电性接触点结合。
形成该光子集成电路的多个层可以还包括:在一层或多层中形成波导以及被耦合到该波导的耦合器,在一层或多层中形成光电计算元件,包括被耦合到该波导的至少一个光电计算元件,以及形成穿过多个层的所述导电通孔,所述多个层包括该波导、该耦合器以及该光电计算元件被形成的一层或多层。
该方法的实施例可以包括一个或多个下述特征。形成该电子集成电路的多个层可以还包括在一层或多层中形成被配置以提供所述多个电子信号的电路。
该方法可以还包括移除该光子集成电路的一部分以显露所述导电通孔的末端以及显露该耦合器。
该方法可以还包括将所述导电通孔的所述被显露的末端通过导电结构的阵列附接到支撑结构。
该支撑结构可以包括平面网格阵列基板,其包括在该平面网格阵列基板的表面上的接触点的阵列,该接触点的阵列提供通往导电结构的阵列的电性连接。
该方法可以还包括在该平面网格阵列基板中形成开口,并将模块附接到该光子集成电路的表面,其中该模块的一部分被插入该开口的一部分中。
该模块可以包括光子源,其被定位以提供光束给该耦合器。
该耦合器可以包括波导光栅耦合器。
形成所述导电通孔可以发生在形成所述多个光电计算元件之前。
在另一一般方面中,一种方法包括:操作电子集成电路;以及操作具有被耦合到该电子集成电路的第一表面的光子集成电路。该方法包括下述中至少一个:(i)通过一个或多个导电通孔从该电子集成电路发送电信号到另一个电子元件,该一个或多个导电通孔从该光子集成电路的第一表面通过该光子集成电路到该光子集成电路的第二表面,或(ii)在该电子集成电路通过一个或多个导电通孔接收从另一个电子元件发送的电信号,该一个或多个导电通孔从该光子集成电路的第二表面通过该光子集成电路到该光子集成电路的该第一表面。
操作该光子集成电路可以包括操作该光子集成电路中的光电计算元件。操作该电子集成电路可以包括:生成用于控制该光子集成元件中的该光电计算元件的电子控制信号,且发送数据到耦合到该光子集成电路的该二表面的存储设备。发送数据到该存储设备可以包括通过一个或多个导电导通孔发送该数据,所述导电通孔从该光子集成电路的第一表面通过该光子集成电路到该光子集成电路的该第二表面。
在另一一般方面中,一种人工类神经网络计算系统包括上述任何所述装置。
在另一一般方面中,一种系统包括机器人、自动驾驶车、自驾无人机、医疗诊断系统、诈欺探测系统、天气预测系统、财务预测系统、面部识别系统、语音识别系统、元宇宙生成器或产品缺陷检测系统中的至少一个。所述机器人、所述自动驾驶车、所述自驾无人机、所述医疗诊断系统、所述诈欺探测系统、所述天气预测系统、所述财务预测系统、所述面部识别系统、所述语音识别系统、所述元宇宙生成器或所述产品缺陷检测系统中的至少一个包括如上所述的任何一种装置。
在另一一般方面,一种系统包括移动电话或便携式计算机中的至少一个,其中所述移动电话或所述便携式计算机包括如上所述的任何一种装置。
各方面可以具有以下一个或多个优点。本文描述的技术使得多激光器光子源能够以提供光子源内的各个激光器的有效对准的方式集成到光子计算平台中。将多激光光子源集成到光子计算平台中的优点是可以提供用于执行光子计算操作的相对大量的光通道(例如,在相同或不同波长)。例如,多激光光子源,例如安装在基板上的一组激光管芯,或子载台(CoS)条上的激光芯片,可以以能够减少光子源中的每个激光器与承载光子计算元件阵列的光子集成电路(PIC)内的对应光波导之间的光路长度的方式进行集成。
该技术能够减少或避免对某些类型的光学连接器的需要,例如光纤阵列,用于外部和内部光学连接。这种光学连接器可能对集成相对大量的光学连接提出挑战。该技术还与各种散热机制兼容,这些散热机制导致比用于将激光器集成在光子集成电路内的其他技术更可控的热环境。由此产生的系统提供了增强的系统性能、降低的系统复杂性和更紧凑的产品。例如,光子计算平台可以被配置为封装中的系统,和/或可以以小芯片或与其他系统组件进一步集成的另一种模块的形式提供。这些技术还简化了制造过程,可扩展到批量生产,并可能降低成本和开发周期时间。
本说明书中描述的主题的一个或多个实施例的细节在附图和下面的描述中阐述。通过说明书、附图和权利要求书,本发明的其他特征、方面和优点将变得显而易见。
除非另有定义,否则本文中使用的所有技术和科学术语具有与本发明所属领域的普通技术人员通常理解的含义相同的含义。在与通过引用并入本文的专利申请或专利申请出版物相冲突的情况下,将以包括定义在内的本说明书为准。
附图说明
当结合附图阅读时,从以下详细描述中可以最好地理解本公开。需要强调的是,根据惯例,附图的各种特征不是按比例绘制的。相反,为了清楚起见,各种特征的尺寸被任意扩展或减小。
图1是光子计算系统的示例的示意图。
图2A-2G是封装的光子计算系统的示例的视图的示意图。
图3是光子计算系统的示例的透视图的示意图。
图4和5A-5E是光子计算系统波束耦合布置的替代示例的示意图。
图6是用于组装光子计算系统的示例过程的流程图。
图7是光子计算系统的示例的示意图。
图8A和8B是光子计算系统的示例的视图的示意图。
图9A、9B和9C是光子计算系统的示例的视图的示意图。
图10A-10C是光子计算系统的示例的示意图。
图11A和11B是示出示例性制造工艺流程的示意图。
图12是光子源的示例的框图。
图13是示例光子计算系统的一部分的框图。
图14是人工神经网络(ANN)计算系统的示例的示意图。
图15是光电矩阵乘法单元的示例的示意图。
图16A-16E是用于光子计算系统的示例的制造步骤的示意图。
图17是示例光子计算系统的示意图。
图18是光电计算系统的示例的示意图。
图19A和图19B是示例系统配置的示意图。
图20A是对称差分配置(symmetric differential configuration)的示例的示意图。
图20B和图20C是系统模块的示例的电路图。
图21A是对称差分配置的示例的示意图。
图21B是系统配置的示例的示意图。
图22A是示例光幅度调制器的示意图。
图22B至图22D是在对称差分配置中使用光学检测的光幅度调制器的示例的示意图。
图23A至图23C是示例系统配置的光电电路图。
图24A至图24E是使用多个光电子系统的示例计算系统的示意图。
图25是示出用于执行ANN计算的方法的示例的流程图。
图26和图27是ANN计算系统的示例的示意图。
图28是使用无源2D光矩阵乘法单元(passive 2D optical matrixmultiplication unit)的神经网络计算系统的示例的示意图。
图29是使用无源3D光矩阵乘法单元的神经网络计算系统的示例的示意图。
图30是具有1比特内部分辨率的人工神经网络计算系统的示例的示意图,其中系统使用无源2D光矩阵乘法单元。
图31是具有1比特内部分辨率的人工神经网络计算系统的示例的示意图,其中系统使用无源3D光矩阵乘法单元。
图32A是人工神经网络(ANN)计算系统的示例的示意图。
图32B是光电矩阵乘法单元的示例的示意图。
图33是示出用于使用光电处理器执行ANN计算的方法的示例的流程图。
图34是示出图33的方法的一个方面的图。
图35A是使用光电处理器的波分复用ANN计算系统的示例的示意图。
图35B和图35C是波分复用光电矩阵乘法单元的示例的示意图。
图36和图37是使用光电矩阵乘法单元的ANN计算系统的示例的示意图。
图38是具有1比特内部分辨率的人工神经网络计算系统的示例的示意图,其中系统使用光电矩阵乘法单元。
图39A是马赫-曾德尔调制器的示例的示意图。
图39B是示出图39A的马赫-曾德尔调制器的强度-电压曲线的曲线图。
图40是零差检测器的示意图。
图41是包括光纤的计算系统的示意图,其每一个光纤承载具有多个波长的信号。
图42是调制值概率分布和调制器功率与调制值之间的示例关系的图。
图43马赫-曾德尔调制器的示例的图。
图44电荷泵浦(charge-pump)带宽增强电路的示例的图。
图45A-图45G是晶粒上以受控塌陷芯片连接配置的光子集成电路与电子集成电路的部分的示例布局的图。
图46A是人工神经网络(ANN)计算系统的示例的示意图。
图46B是光学矩阵乘法单元的示例的示意图。
图46C和46D是互连的马赫-曾德尔干涉仪(MZI)的示例配置的示意图。
图46E是MZI的示例的示意图。
图46F是波分复用的ANN计算系统的示例的示意图。
图47A是示出用于执行ANN计算的方法的示例的流程图。
图47B是示出了图47A的方法的一个方面的图。
图48A和48B是ANN计算系统的示例的示意图。
图49A是具有1比特内部分辨率的ANN计算系统的示例的示意图。
图49B是图49A的ANN计算系统的操作的数学表示。
不同附图中相同的参考数字和标号指示相同的元件。
具体实施方式
图1示出了光子计算系统100的示例。系统100包括附接到基座106的光子源102(例如,激光器条),基座106附接到支撑结构104(例如,硅基板)。光子源102包括:提供从第一发射位置发射的第一光束118A的第一激光器模块108A,以及提供从第二发射位置发射的第二光束118B的第二激光器模块108B。这些光束被统称为118。系统100包括附接到支撑结构104的光子集成电路110。光子集成电路110包括:第一波导和耦合到第一波导的第一导模谐振耦合器112A,以及耦合到第二波导的第二波导和第二导模谐振耦合器112B。导模谐振耦合器被统称为112。
系统100包括附接到支撑结构104的多个波束成形光学元件。在该示例中,波束成形光学元件包括:第一透镜114A,其定位在透镜支架115A上并且被配置为使得第一光束118A耦合到第一导模谐振耦合器112A,以及第二透镜114B,其定位于透镜支架115B上并且被配置为使得第二光束118B耦合到第二导模谐振耦合器112B。波束成形光学元件被统称为114。光束重定向光学元件116(例如,棱镜)附接到光子集成电路110,并且被配置为通过第一光束118B和第二光束118B从公共表面的反射,将第一光束118A重定向到第一导模谐振耦合器112A中,并且将第二光束118B重定向到第二导模谐振耦合器112B中。如参考本文所述的各种示例将显而易见的,不同的实现方式可以具有针对这些元件中的一些元件的不同布置,并且仍然提供本文所描述的波束对准能力。例如,透镜114A和114B可以附接到光子集成电路110。例如,光束重定向光学元件116可以由两个光束重定向光学元件代替,每个光束重定向光学元件重定向各自的光束。
在一些实施方式中,光子源102包括第三激光器模块,其提供从第三发射位置发射的第三光束。第一激光器模块、第二激光器模块和第三激光器模块可以被定位为使得第一发射位置、第二发射位置和第三发射位置基本上沿着一条直线对齐。例如,每个发射位置与直线之间的距离可以小于指定的距离。在一些实施方式中,光子源102包括第四激光器模块,其提供从第四发射位置发射的第四光束。第一至第四激光器模块可以被定位为使得第一至第四发射位置基本上沿着平面对齐。例如,每个发射位置与平面之间的距离可以小于指定的距离。光子源102还可以包括五个或更多个激光器模块,这些激光器模块被定位成使得发射位置基本上沿着平面对齐,并且每个发射位置与平面之间的距离小于指定距离。激光器模块沿着直线或平面的对齐使得更容易定位波束成形光学元件114以使光束耦合到对应的导模谐振耦合器。指定的距离可以取决于激光器模块对齐可接受的公差,并且可以根据系统设计而变化。
参照图2A,光子计算系统200的另一示例包括平面网格阵列(LGA)基板202,该LGA基板202在顶部上提供接触点204的阵列(例如,以引脚或用于基于焊料的安装的接触点的形式),以用于为由在中介层208的底部上形成LGA覆盖区(footprint)的接触点206的阵列提供的输入/输出信号的阵列提供电连接。可替换地,例如,任何其他表面安装封装结构都可以用于提供电输入/输出连接。LGA基板202顶部上的中介层208提供电信号路径,用于安装在中介层208顶部上的不同器件之间的通信。中介层208可以由硅、绝缘体上硅基板、有机基板或有机基板上的硅形成。在一些示例中,中介层可以包括光电中介层,该光电中介层为来自光子集成电路的光信号提供光信号路径。可以将附加组件附接到LGA基板202,例如本示例中所示的功率控制器210,用于控制通过LGA基板提供的功率信号以操作系统200中的各种其他组件和设备。在该示例中,中介层208还用作支撑结构,在该支撑结构上可以支撑不同组件,以实现本文所述的对准技术。LGA基板202在LGA覆盖区内具有电接触点240(或焊盘)。
光子计算系统200的一个特征是,光子集成电路224和激光器模块212都安装在LGA基板202上,并形成集成封装,该集成封装可以电性耦合到电路板,例如,使用或不使用插座。与具有安装在LGA基板外部的外部激光器模块并且使用光纤将来自外部激光器模块的光耦合到光子集成电路的另一光子计算系统相比,光子计算系统200更紧凑并且更容易安装在整个数据处理系统中。
在一些实施方式中,光子源被提供为各个支撑结构上的激光器模块212的阵列,这些支撑结构是附接到热电冷却器(TEC)216以提供温度控制的基座结构214。在一些实施方式中,激光器模块212的阵列可以设置在附接到热电冷却器216的公共基座结构上。激光器模块212提供被引导并耦合到光子集成电路224的激光束222。图2A示出了系统200的侧视图。图2B示出了系统200的透视图,其中示出了多个激光器模块。图2C提供了系统200的一部分的近距离视图,其中激光器212被支撑在单独的支撑结构(基座结构)214上,所述支撑结构附接到热电冷却器216上以形成集成激光器基座上芯片条218。
返回参考图2A,热电冷却器216由下面的中介层208提供的连接传输的控制信号控制。例如,热量从热电冷却器216的顶侧传递到底侧,通过中介层208和LGA基板202提供热传导路径,该热传导路径允许来自热电冷却器216下侧的热量传递到LGA基板的底侧。例如,热量可以从LGA基板202的底侧散发到周围环境,或者通过散热器(图中未示出)或连接到LGA基板的下侧的另一热电冷却器(例如,图2G的272)散发。
还有一个透镜阵列220,用作每个激光器模块212的光束222的波束成形元件,每个透镜220被容纳在单独的外壳内,该外壳安装在用于透镜220的公共支撑结构226(或“透镜支架”)上。每个容纳的透镜220的位置和取向可以在透镜支架226上独立地调节。例如,如图2A、2B和2C所示,透镜支架226可以直接安装在中介层208上,使得每个透镜220处于用于对齐对应激光器模块212的光束222的正确高度。透镜220可以被成形以提供期望的波束成形功能(例如,球面或非球面透镜),并且透镜220可以由各种材料(例如,玻璃、硅或塑料)中的任何材料形成。
光子集成电路(PIC)224被安装并电连接到中介层208的接触点。例如,光子集成电路224可以通过晶粒附接、引线接合或受控塌陷芯片连接(也称为“倒装芯片”连接)来安装。光子集成电路224提供光子计算元件(例如,干涉式调制器的2D阵列),其接收来自激光器模块212的阵列的光作为用于执行光子计算的输入。在一些实施方式中,光经由导模谐振耦合器228(例如光栅耦合器)耦合到光子集成电路224中。例如,在系统200中,光子集成电路224中的波导阵列被布置成接收来自光束222的光,所述光束222经由光子集成电路的表面处的光栅耦合器228的阵列耦合到光子集成电路。图2A的视图示出了那些光栅耦合器228中的一个,以及用作光束重定向光学元件的棱镜230,以重定向已经由透镜220中的一个聚焦的光束222。棱镜230可以被配置为具有顶点角度,该顶点角度被选择为将光束传播轴从水平重定向到接近垂直,以便于将光以导模谐振耦合器228的适当角度(例如,在大约30°到大约60°之间)耦合到光子集成电路224中。为了说明的目的,在该示例中,假设LGA基板202的顶表面、中介层208的顶表面和光子集成电路224的顶表面基本上水平定向。可以理解,系统200可以在任何方向上操作。
可替换地,在其他实施方式中,使用不同类型的耦合器将光耦合到光子集成电路224中,例如边缘耦合器,其中波导的一部分(例如,锥形部分)形成为直到光子集成电路的边缘,在这种情况下棱镜是不必要。激光器模块和光子集成电路之间的光学引线接合可以在一些实现中使用,例如通过使用光纤,在这种情况下透镜和棱镜是不必要的。不同的实现方式在制造的容易性、成本和其他因素方面具有不同的权衡。
对于使用透镜(或其他波束成形元件220)和导模谐振耦合器228的实施方式,透镜220在激光器模块212和对应的导模谐振耦合器228之间的独立对齐有助于每个透镜220任一侧上光束222的空间模式的精确匹配(称为“模式匹配”)。精确的模式匹配为它们所支持的对应光信道提供了均匀且低损耗的耦合。每个透镜220的波束成形特性将从激光器模块212到达透镜220的光学光束222的大小和发散度与发送到光栅耦合器228的光学光束的大小和散射度相匹配。此外,透镜220的独立可调节性实现了实现精确模式匹配所需的精细对齐。激光器模块212、透镜220、棱镜230和光子集成电路224最初在粗略对齐过程中对齐。组件的位置和取向的微小变化可以减少耦合到光子集成电路224中的光量。精细对齐程序用于补偿这种变化。例如,能够显著改善模式匹配的一个自由度是每个透镜220在横向于光束传播轴的平面中的平移。拾取工具(例如,一个或多个夹具)可以用于例如对齐每个透镜220,直到对齐指标被优化,并且环氧树脂可以被固化以将透镜220固定在该位置和取向。在一些实施方式中,使用主动对齐来优化对齐指标,其中来自正在对齐的激光器212的光在其被对齐时使用透镜220来耦合。例如,对齐指标可以是来自激光器212的光通过导模谐振耦合器228进入波导的耦合效率。可以使用光子集成电路224中的光电探测器来测量耦合到波导中的光量,并且调整透镜220以使耦合到波导的光量最大化。
电子集成电路(EIC)芯片可以包括在系统200中,用于执行各种电子控制功能。在该示例中,系统200包括:安装在光子集成电路224上的模拟芯片236,用于向光子集成电路的调制器或其他光子或光电子计算元件提供电控制信号,以及安装在中介层208上的数字芯片232,用于控制数据向数字存储模块234(例如,多个动态随机存取存储器(DRAM)芯片的堆叠,如在高带宽存储器(HBM)芯片中)或其他数字电子模块的移动。可替换地,在一些实施方式中,代替在系统200中包括数字存储模块234,可以包括用于向外部存储器系统发送数字数据和从外部存储器系统接收数据的存储器接口。用于光子集成电路224的任何相同安装技术或其他技术都可以用于这些电子集成电路。
图2D和2E分别示出了封装的光子计算系统252的侧视图和透视图,该光子计算系统包括附接到LGA基板202的顶表面254的盖250。盖250用作系统200的物理保护并且提供散热。在该示例中,散热器256附接到模拟芯片236和数字芯片232,使得它们接触盖250的内表面258。散热器256可以由多种导热材料中的任何一种构成。在一些实施方式中,可以使用气密密封,这可以提高某些系统的性能。
图2F示出了放置在盖250上用于附加散热的附加外部散热器260的示例。图2G示出了系统274的替代配置的示例,其中存在嵌入LGA基板202内的导热元件270(例如,铜块)和连接到导热元件270的底表面的热电冷却器272。
在一些实施方式中,可以包括附加光学元件以提供用于将来自每个激光器模块(例如,212)的光束(例如,222)对齐到光子集成电路224中的对应波导的附加自由度。图3示出了系统300的替代配置,其中,代替用于将激光束重定向到对应光栅的单个棱镜,存在单独的棱镜302,每个棱镜302可以作为用于模式匹配激光束(例如,222)的精细对齐过程的一部分进行调整。
还存在将透镜220附接到用于执行精细对齐的各种结构的不同方式。图4示出了光子计算系统400的替代布置的示例,其中透镜220和下面的透镜支架被定位在光子集成电路224上。在该示例中,热电冷却器216下方的附加结构402确保激光器模块212在粗略对齐过程中处于正确的高度。
图5A示出了光子计算系统500A的替代布置的示例,其中热电冷却器216可以被配置为具有用于粗略对齐的适当高度,而不需要在热电冷却器216下方的附加结构。图5B示出了光子计算系统500B的替代布置的示例,其中透镜220和透镜支架226在热电冷却器216上。图5C示出了光子计算系统500C的替代布置的示例,其中来自透镜220的激光束222被耦合到对应的边缘耦合器(例如,锥形波导)中以匹配光子集成电路224内的波导的模式。在该示例中,激光器模块212、透镜220和光子集成电路224安装在中介层208上。图5D示出了光子计算系统500D的替代布置的示例,其中在光子集成电路224和LGA基板202之间存在边缘耦合而没有单独的中介层。在图5C和5D的边缘耦合装置中不需要光束重定向。图5E示出了光子计算系统500E的替代布置的示例,其中透镜支架226附接到基座结构214,其在该模式匹配布置中将透镜220定位得更靠近激光器模块212。例如,一滴UV固化的环氧树脂510可用于将透镜支架226附接到基座结构214。在图5A至5E中所示的这些实施方式中的任何一个中,代替公共透镜支架226,用于每个透镜220的壳体可以附接到单独的透镜支架,然后可以在精细对齐期间对齐单独的透镜。
在一些实现中,光子计算系统可以包括使用各种方法安装的多组激光器模块。例如,光子计算系统可以包括以下两个或多个:安装在LGA基板上的第一组激光器模块(例如,图5A)和安装在中介层208上的第二组激光器模块(例如,图5C)。
包括多组激光器模块的光子计算系统还可以包括使用各种方法安装的多组透镜。例如,光子计算系统可以包括以下两个或多个:安装在LGA基板上的第一组透镜(例如,图5D)、安装在中介层208上的第二组透镜(如,图5C)、安装在电子集成电路上的第三组透镜(例如,图5A)、安装在热电冷却器上的第四组透镜(例如,图5B)、以及附接到基座结构的第五组透镜(如,图5E)。
可以使用各种程序来组装光子计算系统200(图2A至2C)、252(图2D至2F)、274(图2G)、300(图3)、400(图4)、500A(图5A)、500B(图5B)、500C(图5C)、500D(图5D)和500E(图5E)。在一些过程中,在粗略对齐阶段使用无源对齐技术来附着各种结构,该无源对齐技术将组件对齐其他结构上的对齐标记。光子源(例如,218)通过施加银胶或焊接附接到基板(例如,202),例如,使用对基板上的对齐标记的无源对齐来将光子源对齐光子集成电路(例如,224)。使用无源对齐将透镜支架(例如,226)附接到基板或光子集成电路(例如,通过UV固化环氧树脂)。使用无源对齐将棱镜连接到光子集成电路(例如,通过UV固化环氧树脂)。然后,在精细对齐阶段,使用主动对齐来确保光学通道的模式匹配是准确的。在有源对齐中,激光器模块212被开启以发射激光束222,该激光束222被引导朝向光子集成电路224并且通过导模谐振耦合器耦合到光子集成电路中的输入波导。透镜220与透镜支架226对齐(例如通过UV固化环氧树脂),同时监测与光学耦合相关联的反馈。例如,反馈可以由耦合到光子集成电路224中的抽头波导的光电探测器(例如,光电二极管)提供,该抽头波导提供经由导模谐振耦合器耦合到输入波导中的光功率的一部分。例如,可以通过反馈监测电路(图中未示出)来监测反馈。
图6是用于组装光子计算系统(例如,图2A至2C的200、图2D至2F的252、图2G的274、图3的300、图4的400、图5A的500A、图5B的500B、图5C的500C、图5D的500D或图5E的500E)的示例过程600的流程图。过程600包括将光子源附接到(602)支撑结构。光子源包括:提供从第一发射位置发射的第一光束(例如222)的第一激光器模块(例如212),以及提供从第二发射位置发射出的第二光束(例如222)的第二激光器模块(如212)。过程600包括将光子集成电路(例如,224)附接到支撑结构(例如,在图2A-2G、图3和图5C的示例中的中介层208,或者在图4、图5A、图5B、图5D和图5E的示例中为LGA基板202)。光子集成电路(例如,224)包括:第一波导和耦合到第一波导的第一导模谐振耦合器,以及第二波导和耦合到第二波导的第二导模谐振耦合。过程600包括将多个波束成形光学元件(例如,220)附接到(606)支撑结构(例如,208)或光子集成电路(例如,224)。附接(606)包括:在附接期间对齐(608)第一波束成形光学元件(例如,220),使得第一光束(例如,222)耦合到第一导模谐振耦合器,以及在附接过程中对齐(610)第二波束成形光学元件(例如,22),使得第二光束(例如)耦合到第二导模谐振耦合。任何数量的附加波束成形光学元件都可以以这种方式顺序排列。
在一些实现中,光子计算系统被配置为使用光子集成电路(例如,224)来提供对光波导携带的光信号进行操作的光子计算元件阵列,以及用于通过导体路径将电信号传输到系统的其他部分的中介层。光子集成电路(例如,224)作为中介层的这种使用可以实现更紧凑的系统。图7示出了示例光子计算系统700,其包括硅中介层702,该硅中介层提供到热电冷却器704、光子集成电路706和数字存储模块234(例如,堆叠的HBM芯片)的电连接。在该示例中,光子集成电路706还充当另一个中介层,以提供用于数字编码电信号的导体路径,该导体路径在数字存储模块234和混合数字/模拟芯片708之间传输数据,该数字存储模块连接到光子集成电路706底部的接触点(经由硅中介层702)光子集成电路706。混合数字/模拟芯片708提供用于控制光子集成电路706中的光子计算元件的模拟控制信号,并且向数字存储模块234发送数字数据/从数字存储模块接收数字数据。在该示例中,LGA基板202的底部包括用于连接到输入/输出接口(例如,提供在印刷电路板(PCB)上)的球栅阵列(BGA)710。LGA基板202的底部还包括连接到一个或多个温度控制元件704(例如热电冷却器和/或散热器)的大型导热结构712。
图8A和8B分别示出了另一示例光子计算系统800的侧视图和俯视图,该系统包括也用作中介层的光子集成电路802。在该示例中,LGA基板202上不存在硅中介层,并且光子集成电路802直接连接到LGA基板。在该示例中,光子集成电路802用作中介层以提供用于数字编码电信号的导体路径,所述数字编码电信信号在连接到光子集成电路801顶部的接触点的数字存储模块804和连接到光子集成电路802顶部的接触点的混合数字/模拟芯片806之间传输数据。混合数字/模拟芯片806提供用于控制光子集成电路802中的光子计算元件的模拟控制信号,并且向数字存储模块804发送数字数据/从数字存储模块接收数字数据。图8B示出了多个数字存储模块804在光子集成电路802之上并围绕混合数字/模拟芯片806的布置。
图9A、9B和9C分别示出了另一示例光子计算系统900的侧视图、俯视图和仰视图,该系统包括也用作中介层的光子集成电路902。在该示例中,光子集成电路902直接连接到LGA基板904,而不使用光子集成电路904和LGA基板之间的硅中介层。在该示例中,光子集成电路902用作中介层以提供用于数字编码电信号的导体路径,所述数字编码电信信号在连接到光子集成电路的底部的接触点的数字存储模块906和连接到光子集成电路902的顶部的接触点的混合数字/模拟芯片908之间传输数据。混合数字/模拟芯片908提供用于控制光子集成电路902中的光子计算元件的模拟控制信号,并且向数字存储模块906发送数字数据/从数字存储模块接收数字数据。图9B示出在该示例中,在光子集成电路902的顶部上存在可用于较大混合数字/模拟芯片908的较大区域。图9C示出了通过LGA基板904中的开口910在光子集成电路902的底部上的多个数字存储模块906的布置。
制造使用光子集成电路作为中介层的光子计算系统的一些方法利用了在操作期间提供优势的技术,例如降低功耗。图16A-16E示出了用于形成光子计算系统1660的制造和组装步骤的示例,该光子计算系统包括通过提供电信号路径的电连接结构电性耦合到光子集成电路(PIC)1602的电子集成电路(EIC)1600。由于与提供电信号路径的导体相关联的电阻R,存在由流过该路径的电流i引起的相关联的电压降(即IR降),这导致额外的功耗。一种用于直接接合由EIC 1600和PIC 1602的被称为再分布层(RDL)的导电结构层或其他导电结构形成的电连接结构的技术能够实现更短的信号路径并因此实现更低的功耗。例如,再分布层可以是将EIC 1600或PIC1602的一部分电连接到另一部分并且使得集成电路的输入/输出焊盘可用于集成电路上的其他位置的金属互连。
参考图16A,EIC 1600是通过形成从提供电信号的EIC 1600的层延伸的导电结构1605的布置1604来制备的。导电结构1605可以包括嵌入介电材料内的RDL或其他导电(例如,金属)结构。PIC 1602还通过形成从导电通孔1608的显露端延伸的导电结构1607的布置1606来制备,所述导电通孔形成穿过基板1610(例如二氧化硅),其中还形成光学和/或光电子元件1612,包括波导和光电子计算元件。光学和/或光电子元件1612形成在基板1610的层1613(称为“有源层”)上,其中基板1610在有源层1613下方的部分不具有有用的光学或光电子元件。导电通孔1608的显露端形成在PIC 1602的有源层1613的表面上,使得导电通孔160从PIC 1602有源层1612的表面延伸穿过PIC 1602活性层1613到达基板1610的有源层161 3下方的部分中的位置。导电结构1607可以包括嵌入介电材料内的RDL或其他导电(例如,金属)结构。
在一些实施方式中,EIC 1600具有“前”表面1609和“后”表面1614。EIC 1600的许多电子组件(例如,晶体管、放大器、驱动器、逻辑门)设置在比后表面1614更靠近前表面1609的一个或多个层中。RDL比前表面1609更靠近后表面1614,并被称为“背面再分布层”。穿过EIC 1600的基板的导电特征,例如导电通孔,将前表面1604附近的电子元件电性耦合到后表面1615附近的导电结构1605。
在一些实施方式中,EIC 1600RDL形成在EIC 1600的电子组件上方,并且电子组件通过不穿过IEC1600的基板的导电特征电性耦合到RDL。在该示例中,EIC 1600可以倒装芯片接合到PIC 1602。
EIC 1600的RDL可以包括导电迹线,例如导电通孔,其将嵌入介电材料中的导电迹线连接到EIC 1600表面1614,并且用导电材料例如铜(Cu)或焊料(例如,包括锡(Sn))覆盖,以在EIC 1600表面1614上形成导电帽或覆盖的导电结构1616。类似地,PIC 1602的RDL可以包括导电迹线,例如导电通孔,其将嵌入介电材料中的导电迹线连接到PIC 1602表面1618,并用导电材料例如铜(Cu)或焊料(例如,包括锡(Sn))覆盖,以在PIC 1602表面1618上形成导电帽或覆盖的导电结构1619。EIC 1600的表面1614上的带盖导电结构1616和PIC1602的表面1618上的带盖导电结构1619可以以相同的图案(例如,二维图案)布置,使得带盖导电结构1616和1619彼此对齐。
在一些实施方式中,在EIC 1600和PIC 1602的表面1614和1618处,EIC 1600中的导电结构和PIC 1602中的导电结构之间存在一一对应关系。每个芯片中可以有任何数量的导电结构(例如,每个芯片中有12个,或者每个芯片中64个)。在一些实现中,一个芯片中的导电结构比另一个多。例如,在一个芯片中可以有X个导电结构,在另一个芯片上可以有Y个导电结构。X个导电结构连接到另一芯片,Y-X个导电结构不连接,这可以用于其他电连接(例如,X=64和Y=68)。
图16B示出了通过将其上形成有EIC 1600和PIC1602的各个晶圆接合在一起而形成的结构1620,其中封端导电结构1616、1619彼此接合。
参考图16C,通过执行“TSV(硅通孔)显露”步骤以去除多余材料(例如半导体材料,例如绝缘体上硅晶圆中的硅手柄)来形成结构1630,其显露了与在光学元件1612附近的新形成的表面1617处耦合到导电结构1607的导电通孔1608的端部1615相对的端部1629。因此,导电通孔1608从导电结构1607穿过有源层1613延伸到PIC 1602的表面1617。
如图16D所示,通过将导电通孔1608的显露端1619接合到导电结构1642(例如,焊球)来形成结构1640。
图16E示出了结构1650,该结构1650包括附接到平面栅格阵列(LGA)基板1652的接合结构1640,该接合结构在LGA基板1652底部提供金属接触点1654,用于例如电性耦合到具有引脚的插座或印刷电路板(PCB)。在其它实例中,接合结构1640可附接到不同种类的基板,其中电连接形成到导电结构1642。
在一些实施方式中,LGA基板1652具有用于容纳光学端口1656的开口1653。在该示例中,在EIC 1600和LGA基板1652之间减薄的PIC 1602使得能够通过PIC 1602垂直地从EIC1600到LGA基板165的短电连接路径,而不需要消耗大量功率的长金属迹线。可替换地,一些实施方式不需要LGA基板1652中的用于光学耦合的开口。例如,可以使用光学边缘耦合。
图17示出了包括光纤阵列1702的替代结构1700,光纤阵列1701在PIC 1602的边缘处光学耦合到光学元件1612。
图10A、10B和10C示出了用于将激光器模块集成在光子计算系统内的不同替代方法。图10A示出了光子计算系统1000的示例,其中在公共的基板1004上有单独的激光晶粒1002a、1002b、1002c(统称为1002),并且不同的对应透镜1006将来自激光晶粒1004的光束1008耦合到不同的对应棱镜1010中,将光束重定向到光子集成电路1012上的光栅耦合器中。图10B示出了光子计算系统1020的示例,其中在单独的基板1024a、1024b、1024c(统称为1024)上存在单独的激光晶粒1022a、1022b、1022c(统称为1022),并且不同的对应透镜1006将来自激光晶粒1022的光束1008耦合到不同的对应棱镜1010中,从而将光束1008重定向到光子集成电路1012上的光栅耦合器中。图10C示出了光子计算系统1030的示例,其中在基座基板1036上的公共晶粒1034(例如,“激光器条”)内有单独的激光器1032a、1032b、1032c(统称为1032),并且不同的对应透镜1006将来自激光器1032的光束1008耦合到公共棱镜1038中,将光束1008重定向到光子集成电路1012上的光栅耦合器中。
图11A和11B示出了用于组装和对齐光子计算系统的不同组件的制造工艺流程的示例。在这些示例中,最终的系统布置是相同的,但一些组件的连接顺序不同。图11A示出了工艺流程1100,其中在中介层208已经附接到LGA基板202之后,将激光器/基座组件1102附接到中介层。在工艺流程1100的第一步骤中,将中介层208和表面安装器件(例如功率控制器210)附接到LGA基板202。在第二步骤中,光子集成电路224、数字电子集成电路(或数字芯片)232和数字存储模块234(例如,高带宽存储器芯片)附接到中介层208。在第三步骤中,将激光器模块212附接到基座结构214。在第四步骤中,将基座结构214附接到热电冷却器216以形成激光器/基座组件1102。在第五步骤中,将激光器/基座组件1102附接到中介层208。模拟集成电路236附接到光子集成电路224。在第六步骤中,将透镜支架(或透镜架)226附接到中介层208,并且将棱镜230附接到光子集成电路224。在第七步骤中,将波束成形元件220(例如,透镜)附接到透镜支架226。透镜220被对齐,使得由激光器模块212产生的激光束被适当地耦合到光子集成电路224中的波导。
光子计算系统可以具有两个或多个激光器/基座组件1102和两个或更多个波束成形元件220。在工艺流程1100的第三步骤中,将多个激光器模块212中的每一个附接到对应的基座结构214。在第四步骤中,多个激光器/基座组件1102中的每一个都连接到对应的热电冷却器216。在第五步骤中,将多个激光器/基座组件1102中的每一个附接到中介层208。在第六步骤中,将多个透镜支架226中的每一个附接到中介层208。在使用多个棱镜230的示例中,多个棱镜中的每一个都附接到光子集成电路224。在第七步骤中,将多个波束成形元件220中的每一个附接到对应的透镜支架226。多个波束成形元件220中的每一个被对齐,使得由对应的激光器模块212产生的激光束被适当地耦合到光子集成电路224中的对应波导。
图11B示出了工艺流程1110,其中在将中介层208附接到LGA基板202之前将激光器/基座组件1102附接到中介层。在工艺流程1110的第一步骤中,将激光器模块212附接到基座结构214。在第二步骤中,将基座结构214附接到热电冷却器216以形成激光器/基座组件1102。在第三步骤中,将激光器/基座组件1102附接到中介层208。光子集成电路224、数字电子集成电路232和数字存储模块234(例如,高带宽存储器芯片)附接到中介层208。在第四步骤中,将模拟集成电路236附接到光子集成电路224。在第五步骤中,将中介层208(连同已经附接到中介层208的组件)和表面安装器件(例如功率控制器210)附接到LGA基板202。在第六步骤中,将透镜支架(或透镜架)226附接到中介层208,并且将棱镜230附接到光子集成电路224。在第七步骤中,将波束成形元件220(例如,透镜)附接到透镜支架226。透镜220被对齐,使得由激光器模块212产生的激光束被适当地耦合到光子集成电路224中的波导。
光子计算系统可以具有两个或多个激光器/基座组件1102和两个或更多个波束成形元件220。在工艺流程1110的第一步骤中,将多个激光器模块212中的每一个附接到对应的基座结构214。在第二步骤中,将每个基座结构214附接到对应的热电冷却器216,以形成激光器/基座组件1102。在第三步骤中,将多个激光器/基座组件1102中的每一个附接到中介层208。在第六步骤中,将多个透镜支架226中的每一个附接到中介层208。在使用多个棱镜230的示例中,多个棱镜中的每一个都附接到光子集成电路224。在第七步骤中,将多个波束成形元件220中的每一个附接到对应的透镜支架226。多个波束成形元件220中的每一个被对齐,使得由对应的激光器模块212产生的激光束被适当地耦合到光子集成电路224中的对应波导。
在两个工艺流程1100和1110中,在激光器/基座组件1102已经连接到中介层208并且棱镜230就位以将光束粗略地对齐到光子集成电路224中之后,连接透镜220。然后使用精细对齐阶段来对齐透镜220以实现高精度模式匹配。
在一些示例中,激光器模块212的光谱特性可以取决于温度,使得激光束222的幅度和/或相位可以响应于激光器模块212温度的变化而变化。参考图12,在一些实施方式中,光子计算系统1200包括控制电路以将激光器模块212维持在相对恒定的温度,以便维持由激光器模块212产生的激光束222的稳定性。例如,光子计算机系统1200包括激光器芯片212,该激光器芯片212附接到热电冷却器216,该热电冷却器216可以冷却激光器芯片212。系统1200包括功能单元,例如用于产生用于驱动激光器芯片212的激光驱动信号1212的激光驱动器1204,以及用于产生用于激励热电冷却器216的热电冷却器驱动信号1208的热电冷却器控制器1206。热电冷却器216包括热敏电阻1202,用于感测热电冷却器216处的温度并产生温度反馈信号1210。热电冷却器控制器1206基于温度反馈信号1210控制热电冷却器驱动信号1208。相同的操作原理适用于其中激光器芯片212附接到基座214、基座214又附接到热电冷却器216的示例。在这样的例子中,热电冷却器216将热量从基座214抽走,这又将热量从激光器芯片212抽走。
例如,激光器芯片212可以被指定为具有最佳操作温度,并且热电冷却器控制器1206可以被配置为控制热电冷却器216以使激光器芯片212在基本上等于最佳操作温度的温度下操作。例如,在校准过程中,用户可以控制热电冷却器控制器1206以控制热电冷却器216处于特定温度,从而使激光器芯片212产生具有期望光学特性(例如,幅度)的激光束222。热电冷却器控制器1206的设置可以存储在数据存储器(图中未示出)中。当系统1200下次通电时,可以从数据存储器中检索热电冷却器控制器1206的存储设置。
由于制造公差的原因,即使在由相同电流驱动并在相同温度下工作时,不同的激光器模块也可能具有略微不同的输出特性(例如幅度)。一些光子集成电路可以具有光学处理器,该光学处理器要求各种输入激光束具有基本相同的幅度,例如,输入激光束之间的最大幅度差小于阈值。
参考图13,在一些实施方式中,光子计算系统1300可以具有用于保持由多个激光器模块产生的激光束的幅度的一致性的控制电路。系统1300包括分别产生激光束1304a、1304b、…、1304n的n个激光器芯片1302a、1302b、…、1302n。激光器驱动器1306产生分别驱动激光器芯片1302a、1302b、…、1302n的n个激光器驱动信号1308a、1308b、…、1308n。反馈信号1310a、1310b、…、1310n(统称为1310)分别表示激光束1304a、1304b、…、1304n的幅度。例如,每个反馈信号1310可以由耦合到光子集成电路224中的抽头波导的光电探测器(例如,光电二极管)提供,该抽头波导提供经由导模谐振耦合器耦合到输入波导中的光功率的一部分。激光驱动器1306基于反馈信号1310控制激光驱动信号1308,以确保激光束1304具有基本上相同的幅度,例如,激光束1304之间的最大幅度差小于光学处理器所需的阈值。
在一些实施方式中,本说明书中描述的光子计算系统可以为在2019年6月4日提交的公开号为US2019/0370652的美国申请16/431,167、2019年12月4日提交的公开号为US2020/0110992的美国专利申请16/703,278、2020年3月19日提交的公开号为WO 2020/191217的PCT专利申请PCT/US2020/023674、2020年12月4日提交的公开号为US2021/0173238的美国专利申请17/112,369、2021年4月28日提交的公开号为US2021/0341765的美国专利申请17/242,777、2021年7月6日提交的美国专利申请17/367,963、以及2021年3月17日提交的美国专利申请17/204,320中描述的系统(例如,人工神经网络)提供光电子平台。上述提交的全部内容通过引用并入本文。
图14和15类似于美国专利申请公开US2020/0110992的图32A和32B。参考图14,在一些实施方式中,人工神经网络(ANN)计算系统1400包括光电矩阵乘法单元1402,其具有例如美国专利申请公开US2020/0110992的图18至24D中所示的复制模块、乘法模块和求和模块,以使得能够在执行矩阵计算时处理非相干或低相干光信号。人工神经网络计算系统1400包括控制器1404、存储单元1406、DAC单元1408和ADC单元1410。控制器1404接收来自计算机1412的请求,并将计算输出发送到计算机1412。
光电处理器1414包括光源1416,光源1416可以包括图1的光子源102、图2A-2G、图3、图4、图5A-5E、图7、图8A、图8B、图9A、图9B、图10A-10C、图11A、图11B的激光器模块212的阵列或图12和图13的激光器芯片212。光电处理器1414包括调制器阵列1418,其接收由DAC单元1408的第一DAC子单元1420基于输入向量生成的调制器控制信号。调制器阵列1418的输出与美国专利申请公开US2020/0110992的图18中的光端口/光源1802的输出相当(该图也在本申请中再现)。光电矩阵乘法单元1402以类似于复制模块1804、乘法模块1806和求和模块1808处理来自图18中的光端口/光源1802的光信号的方式处理来自调制器阵列1418的光信号(其对应于美国专利申请公开US2020/0110992的图18)。
参考图15,在一些实施方式中,光电矩阵乘法单元1402接收输入向量并将输入向量与矩阵/>相乘以生成输出向量
光电矩阵乘法单元1402包括m个光路1500_1、1500_2、…、1500_m(统称为1500),这些光路承载表示输入向量的光信号。复制模块1502_1将输入光信号v1的副本提供给乘法模块1504_11、1504_21、…、1504_m1。复制模块1502_2将输入光信号v2的副本提供给乘法模块1504_12、1504_22、…、1504_m2。复制模块1502_n向乘法模块1504_1n、1504_2n、…、1504_mn提供输入光信号vn的副本。
由复制模块1502_1提供的光信号v1的副本的幅度相对于彼此相同(或基本相同),但不同于由调制器阵列1418提供的光信号v1的幅度。例如,如果复制模块1502_1在m个信号中均匀地分割由调制器阵列1418提供的v1的信号功率,则m个信号的每一个将具有等于或小于由调制器阵列1410提供的v1功率的1/m的功率。
乘法模块1504_11将输入信号v1与矩阵元素M11相乘以产生M11·v1。乘法模块1504_21将输入信号v1与矩阵元素M21相乘以产生M21·v1。乘法模块1504_m1将输入信号v1与矩阵元素Mm1相乘以产生Mm1·v1。乘法模块1504_12将输入信号v2与矩阵元素M12相乘以产生M12·v2。乘法模块1504_22将输入信号v2与矩阵元素M22相乘以产生M22·v2。乘法模块1504_m2将输入信号v2与矩阵元素Mm2相乘以产生Mm2·v2。乘法模块1504_1n将输入信号vn与矩阵元素M1n相乘以产生M1n·vn。乘法模块1504_2n将输入信号vn与矩阵元素M2n相乘以产生M2nvn。乘法模块1504_mn将输入信号vn与矩阵元素Mmn相乘以产生Mmn·vn等等。
DAC单元1408的第二DAC子单元1422基于矩阵元素的值生成控制信号,并将控制信号发送到乘法模块1504,以使乘法模块1505能够例如通过使用光学幅度调制将输入向量元素的值与矩阵元素的数值相乘。例如,乘法模块1504_11可以包括光学幅度调制器,并且将输入向量元素v1乘以矩阵元素M11可以通过将矩阵元素M11的值编码为施加到由输入向量元素v1表示的输入光信号的幅度调制水平来实现。
求和模块1506_1接收乘法模块1504_11、1504_12、…、1504_1n的输出,并产生等于M11v1+M12v2+…+M1nvn的和y1。求和模块1506_2接收乘法模块1504_21、1504_22、…、1504_2n的输出,并产生等于M21v1+M22v2+…+M2nvn的和y2。求和模块1506_n接收乘法模块1504_m1、1504_m2、…、1504_mn的输出,并产生等于Mm1v1+Mm2v2+…+Mmnvn的yn。
在系统1400中,光电矩阵乘法单元1402的输出被提供给ADC单元1410。乘法模块1504或求和模块1506将光信号转换为电信号。
例如,图1的光子集成电路110,图2A至2G、3、4、5A-5E的光子集成电路224,图7的光子集成电路706,图8A、8B的光子集成电路802,图9A、9B的光子集成电路902,图10A-10C的光子集成电路1012,以及图11A、11B的光子集成电路224可以包括图14的光电处理器1414的调制器阵列1418和光电矩阵乘法单元1402。例如,图2A、2B、2D-2G、3、7的数字存储模块234,图8A、8B的数字存储模块804,图9A、9C的数字存储模块906,以及图11A、11B的数字存储模块234可以包括图14的存储单元1406。例如,图2A-2G、3的模拟集成电路236和数字电子集成电路232、图7的混合数字/模拟芯片708、图8A、8B的混合数字-模拟芯片806、图9A、9B的混合数字和模拟芯片908以及图11A、11B的数字电子集成电路232可以包括控制器1404、DAC单元1408,以及图14的ADC单元1410。
光子集成电路可以被配置为以各种方式处理输入光信号,并且不限于上述示例。例如,光子集成电路可以包括被配置为携带输入光信号的输入波导,以及耦合到对应输入波导的耦合器。光子集成电路可以包括运算光电探测器,其中每个运算光电探测器被配置为检测从基于至少一个输入光信号的运算(例如,矩阵运算,诸如矩阵乘法运算)导出的光信号。光子集成电路还包括反馈光电探测器,其中每个反馈光电探测器与输入波导相关联。光子集成电路包括抽头(tap)波导,其中每个抽头波导与输入波导相关联,并且被配置为将耦合到输入波导中的光功率的一部分提供给反馈光电探测器。提供波束成形光学元件(例如,透镜),其中每个波束成形光学元件与一个激光晶粒和一个耦合器相关联。
用于组装光子计算系统的工艺的特征在于,在组装工艺期间驱动激光晶粒,以便对齐波束成形光学元件。激光晶粒被驱动以顺序地或并行地产生激光束。每个反馈光电探测器产生反馈信号以指示激光束通过对应耦合器进入对应波导的耦合效率。每个波束成形光学元件被对齐以使得由对应的激光晶粒产生的激光束通过对应的耦合器耦合到光子集成电路中的对应的输入波导。波束成形光学元件的对齐过程基于由对应的反馈光电探测器产生的反馈信号。例如,每个波束成形光学元件可以被对齐,以最大限度地将对应的激光束耦合到对应的波导中。
在一些实施方式中,光子计算系统可以包括产生具有多个波长的激光束的激光器模块,这些激光束可以在包括波分复用计算系统的光子集成电路中使用,例如,美国专利申请公开US2020/0110992的图35A至35C中公开的波分复用人工神经网络计算系统。
在一些实现中,光子计算系统包括安装在中介层上的两个或多个光子集成电路。中介层可以包括光波导和光耦合器,其提供光信号路径以使得光信号能够在两个或更多个光子集成电路之间或在两个或更多个光子集成电路之中进行通信。在一些实施方式中,光子集成电路包括光学处理器,该光学处理器对输入信号执行运算,例如对输入信号进行矩阵乘法运算,其中输入信号的每个比特由从激光器模块之一提供的激光束导出的调制光信号表示。例如,输入信号可以具有8个或更多比特,并且光子计算系统可以具有8个或更多个激光器模块,所述8个或多个激光器模块提供8个或更多各激光束,所述激光束被调制以表示输入信号的8个或更多比特。
在一些示例中,散热器可以附接到热电冷却器216。在一些示例中,热电冷却器216可以由散热器代替。
例如,上述光子计算系统(例如,图2A至2C的200、图2D至2F的252、图2G的274、图3的300、图4的400、图5A的500A、图5B的500B、图5C的500C、图5D的500D、或图5E的500E)可被做成具有小尺寸和低功耗,并且可以被用于例如机器人、自动驾驶车、自驾无人机、医疗诊断系统、欺诈检测系统、天气预测系统、财务预测系统、面部识别系统、语音识别系统、元宇宙生成器或产品缺陷检测系统。例如,光子计算系统可以用于生成元宇宙中对象的数字表示,并使用户能够与元宇宙中的对象或元宇宙中其他用户进行交互。光子计算系统还可以用于例如移动电话或其他便携式计算设备。
由于本文中描述的光子计算系统可以具有低功耗,因此使用数十、数百、数千、数万、数十万或更多光子计算系统的超级计算机或数据中心可以显著降低操作成本。
以下是可以结合本说明书中描述的各种技术的光子计算系统的附加示例,例如使用光子集成电路作为其他组件的中介层,或者用于组装和对齐光子计算系统不同组件的制造工艺。
以下描述在执行矩阵计算时处理非相干或低相干光信号的光电子计算系统。光电子计算系统不要求光信号在整个矩阵乘法过程中是相干的,其中计算的某些部分在光域中执行,而计算的某些部份在电域中执行。
光电子计算系统使用不同类型的操作来产生计算结果,每个操作对操作的基本物理最适合的信号(例如,在能量消耗和/或速度方面)(例如,电信号或光信号)执行。例如,可以使用光功率分割来执行复制,可以使用基于电流的求和来执行求和,并且可以使用光幅度调制来执行乘法。可以使用这三种类型的运算执行的计算的示例是将向量乘以矩阵(例如,如人工神经网络计算所使用的)。可以使用这些运算来执行各种其他计算,这些运算表示一组通用线性运算,可以从中执行各种计算,包括但不限于:向量向量点积、向量向量逐元素乘法、向量标量逐元素乘法或矩阵矩阵逐元素乘法。
参考图18,光电子计算系统1800的示例包括提供光信号的一组光端口或光源1802A、1802B等。例如,在一些实施方式中,光端口/光源1802A可以包括光输入耦合器,该光输入耦合器提供耦合到光路1803的光信号。在其他实施方式中,光端口/光源1802A可以包括调制光源,例如激光器(例如,对于相干敏感实施方式)或发光二极管(LED)(例如,用于相干不敏感实施方式,其产生耦合到光路1803的光信号。一些实现方式可以包括将光信号耦合到系统1800中的端口和在系统1800内生成光信号的源的组合。光信号可以包括任何光波(例如,具有包括在大约100nm和大约1mm之间的范围内的波长的光谱的电磁波),该光波已经或者正在被使用各种形式的调制中的任何形式的信息调制。例如,可以基于光波导(例如,嵌入光子集成电路(PIC)或光纤中的波导)的引导模式,或者基于光端口/光源1802A与系统1800的另一模块之间的预定自由空间路径来限定光路1803。
在一些实施方式中,光电子计算系统1800被配置为对输入值的阵列执行计算,所述输入值被编码在由光端口或光源1802A、1802B等提供的对应光信号上。例如,对于基于神经网络的各种机器学习应用,计算可以实现向量矩阵乘法(或向量乘矩阵乘法),其中输入向量与矩阵相乘以作为结果产生输出向量。光信号可以表示向量的元素,可能仅包括向量的选定元素的子集。例如,对于一些神经网络模型,计算中使用的矩阵的大小可以大于可以加载到执行计算的向量矩阵乘法部分的硬件系统(例如,较大系统的引擎或协处理器)中的矩阵的尺寸。因此,执行计算的一部分可以包括将矩阵和向量划分为更小的片段,这些片段可以单独提供给硬件系统。
图18中所显示的模块可以是对例如64×64元素矩阵的相对较大的矩阵(或子矩阵)执行向量矩阵乘法的较大系统的一部分。但是,出于说明的目的,将在使用2×2元素矩阵执行向量矩阵乘法的示例计算的情境中描述模块。在该示例中引用的模块将包括两个复制模块1804A和1804B,四个乘法模块1806A、1806B、1806C以及1806D,以及两个求和模块,其中仅一个求和模块1808在图18中显示。这些模块将使输入向量乘以矩阵/> 以产生输出向量/>对于该向量矩阵乘法/>输出向量/>的两个元素中的每一个可以由不同的等式表示,如下所示。
yA=MAxA+MBxB
yB=MCxA+MDxB
这些等式可以分解为可以使用一组基本操作在系统1800中执行的分开的步骤:复制操作、乘法操作以及求和操作。在这些等式中,输入向量的每个元素出现两次,因此有两个复制操作。还有四个乘法操作,并且有两个求和操作。对于使用较大矩阵实现向量矩阵乘法的系统,执行的操作数量会更大,并且使用形状不是方形矩阵的矩阵(即,列数与行数不同),每个操作的相对实例数量将不同。
在此示例中,通过复制模块1804A和1804B来执行复制操作。输入向量xA和xB的元素分别由来自光学端口/光源1802A和1802B的光信号上所编码的值来表示。这些值中的每一个都用于两个等式中,因此复制每个值以将得到的两个副本提供给不同的相应乘法模块。例如,如下面更详细的描述,可以使用已被调制为具有来自一组多个功率水平的功率的光波,或具有来自一组多个占空比的占空比的光波,在特定时隙中编码值。通过复制在其上编码值的光信号来复制值。被编码具有表示元素xA的值的光信号由复制模块1804A复制,并且被编码具有表示元素xB的值的光信号由复制模块1804B复制。每个复制模块可以例如使用光功率分光器来实现,光功率分光器例如是波导分光器,其将输入波导中的引导模式耦合到Y形分光器上的两个输出波导中的每一个,Y形分光器逐渐(例如绝热地(adiabatically))分离功率,或者光功率分光器例如是自由空间分束器,其使用具有一个或多个层的介电界面或薄膜,以分别从输入光束传输和反射两个输出光束。
在本文档中,当说到通过复制模块1804A来复制被编码具有表示元素xA的值的光信号时,是指基于输入信号来产生表示元素xA的多个信号副本,复制模块1804A的输出信号不一定具有与输入信号相同的幅度。例如,如果复制模块1804A在两个输出信号之间均匀地分离输入信号功率,则两个输出信号中的每一个将具有等于或小于输入信号功率的50%的功率。两个输出信号是彼此的副本,而复制模块1804A的每个输出信号的幅度不同于输入信号的幅度。而且,在具有用于复制给定光信号或光信号子集的一组多个复制模块的一些实施例中,每个单独的复制模块不一定在其产生的副本之间均匀地分离功率,但是该组复制模块可以共同地被配置以提供与下游模块(downstreammodule)(例如:下游乘法模块)的输入具有基本相等的功率的副本。
在该示例中,乘法操作由四个乘法模块1806A、1806B、1806C以及1806D执行。对于一个光信号的每个副本,一个乘法模块将光信号的副本乘以矩阵元素值,这可以使用光幅度调制来执行。例如,乘法模块1806A将输入向量元素xA乘以矩阵元素MA。向量元素xA的值可以在光信号上编码,并且矩阵元素MA的值可以编码作为光幅度调制器的幅度调制水平(amplitude modulation level)。
被编码具有向量元素xA的光信号可以使用不同形式的幅度调制来编码。光信号的幅度可以对应特定时隙内的物理光波的特定瞬时功率水平PA,或者可以对应特定时隙上的物理光波的特定能量EA(随着时间的推移积分的功率(the power integrated over time)产生总能量)。例如,可以调制激光源的功率以具有来自预定的一组多个功率水平的特定功率水平。在一些实施例中,在优化的操作点附近操作电子电路可能是有用的,因此代替在许多可能的功率水平上改变功率,使用优化的“开启(on)”功率水平,其中信号被调制为对于时隙的特定部分是“开启(on)”和“关闭(off)”(处于零功率)。功率在“开启(on)”水平的时间部分对应特定能量水平。可以将功率或能量的这些特定值中的任何一个映射到元素xA的特定值(使用线性或非线性映射关系)。在信号处在电域中的后,产生特定总能量水平的随着时间的实际积分(actual integration over time)可以在系统1800的下游发生,如下面更详细的描述。
另外,术语“幅度”可以指由光波中的瞬时或积分功率表示的信号的幅度,或者也可以等效地指光波的“电磁场幅度”。这是因为电磁场幅度与信号幅度具有定义良好的关系(例如:通过在引导模式或自由空间光束的横向尺寸上积分电磁场强度(与电磁场幅度的平方成比例)以产生瞬时功率)。这导致调制值之间的关系,因为通过特定值调制电磁场幅度的调制器也可以被认为是通过对应的值M调制基于功率的信号幅度(因为光功率与电磁场幅度的平方成比例)。
通过乘法模块用来编码矩阵元素MA的光幅度调制器可以通过使用各种物理相互作用中的任何一种来改变光信号的幅度(即光信号中的功率)来操作。例如,调制器可包括环形谐振器、电吸收调制器、热电光调制器(thermal electro-optical modulator)或马赫-曾德尔干涉(MZI)调制器。在一些技术中,一部分功率被吸收作为物理相互作用的一部分,并且在其他技术中,使用物理相互作用来转移功率,物理相互作用修改光波的其他特性而不是其功率,例如其偏振或相位,或者修改不同光学结构之间的光功率的耦合(例如:使用可调谐振器)。对于使用已经在不同路径上行进的光波之间的干涉(例如,相消和/或相长干涉)来进行操作的光幅度调制器,可以使用相干光源(例如激光)。对于使用吸收来操作的光幅度调制器,可以使用相干或非相干或低相干光源中任一个,例如LED。
在波导1×2光幅度调制器的一个示例中,相位调制器被用以通过将相位调制器放置在调制器的多个波导之一中来调制光波中的功率。例如,波导1×2光幅度调制器可以将由输入光波导引导的光波分离进入第一臂和第二臂。第一臂包括移相器,其相对于第二臂的相位延迟产生相对相移。接着调制器组合来自第一臂和第二臂的光波。在一些实施例中,不同的相位延迟值通过相长干涉或相消干涉将输入光波导所引导的光波中的功率乘以0到1之间的值。在一些实施例中,第一臂和第二臂组合成两个输出波导中的每一个,并且由接收来自两个输出波导的光波的相应光电检测器所产生的光电流之间的差异提供有符号的乘法结果(例如,乘以-1到1之间的值),如下面更详细的描述。通过适当选择编码光信号的幅度缩放,矩阵元素值的范围可以映射到正值(0到M)或有符号值(-M到M)的任意范围。
在该示例中,求和操作由两个求和模块执行,其中求和模块1808(如图18所示)用于在用来计算输出向量元素yB的等式中执行求和。对应的求和模块(未显示)用于在用来计算输出向量元素yA的等式中执行求和。求和模块1808产生电信号,电信号表示两个乘法模块1806C和1806D的结果的总和。在此示例中,电信号是电流isum的形式,其分别与由乘法模块1806C和1806D所产生的输出光信号中的功率的总和成比例。在一些实施例中,产生此电流isum的求和操作在光电域中执行,并且在其他实施例中在电域中执行。或者,一些实施例可以使用用于一些求和模块的光电域求和以及使用用于其他求和模块的电域求和。
在电域中执行求和的实施例中,求和模块1808可以使用以下来实现:(1)两个或更多个输入导体,每个输入导体承载输入电流,输入电流的幅度表示乘法模块之一的结果,以及(2)至少一个输出导体,其承载作为输入电流的总和的电流。例如,如果导体是在结点接触的导线,则会发生这种情况。例如(不受理论束缚),基于基尔霍夫电流定律(Kirchhoff’scurrent law)可以理解这种关系,该定律指出流入结点的电流等于流出结点的电流。对于这些实施例,提供给求和模块1808的信号1810A和1810B是输入电流,其可以由光电检测器产生,光电检测器是乘法模块的一部分,乘法模块产生相应的光电流,其幅度与接收的光信号中的功率成比例。求和模块1808接着提供输出电流isum。接着可以使用输出电流的瞬时值(instantaneous value)或输出电流的积分值(integrated value)来表示总和的定量值(quantitative value)。
在光电域中执行求和的实施例中,求和模块1808可以使用光电检测器(例如:光电二极管)来实现,光电检测器接收由不同相应乘法模块产生的光信号。对于这些实施例,提供给求和模块1808的信号1810A和1810B是输入光信号,每个输入光信号包括光波,其功率代表乘法模块之一的结果。在该示例中的输出电流isum是由光电检测器产生的光电流。由于光波的波长是不同的(例如:足够不同使得它们之间不发生显著的相长干涉或相消干涉),光电流将与接收的光信号的功率的总和成比例。光电流也基本等于相应电流的总和,相应电流将导致由分开的等效光电检测器所检测到的相应检测光功率。光波的波长是不同的,但足够接近以使光电检测器具有基本相同的响应(例如:光电检测器的基本平坦的检测带宽内的波长)。如上面所述,使用电流求和的在电域中的求和可以通过避免对多个波长的需求来实现更简单的系统架构。
图19A示出了用于使用2×2元素矩阵执行向量矩阵乘法的系统的实现的系统1900的示例配置,其中在电域中执行求和操作。在此示例中,输入向量是并且矩阵是输入向量的每个元素在不同的光信号上编码。两个不同的复制模块1902执行光复制操作以在不同的路径(例如:“上”路径和“下”路径)上分离计算。存在四个乘法模块1904,每个乘法模块1904使用光幅度调制乘以不同的矩阵元素。在每个乘法模块1904的输出,存在光电检测模块1906,其将光信号转换为电流形式的电信号。使用求和模块1908将不同输入向量元素的两个上路径组合,并且使用求和模块1908将不同输入向量元素的两个下路径组合,求和模块1908在电域中执行求和。因此,输出向量的每个元素都在不同的电信号上编码。如图19A所示,随着计算的进行,递增地产生输出向量的每个分量,以分别地产生上路径和下路径的以下结果。
M11v1+M12v2
M21v1+M22v2
可以使用各种光电技术中的任何一种来实现系统1900的配置。在一些实施例中,存在公共基板(例如:半导体(例如硅)),其可以支持集成光学部件和电子部件。光路径可以在波导结构中实现,波导结构具有由具有较低光学指数(optical index)的材料围绕的具有较高光学指数的材料,该材料定义用于传播承载了光信号的光波的波导。电路径可以由导电材料实现,用于传播承载了电信号的电流。(在图19A至图20A、图21A至图24E中,除非另外说明,表示路径的线的厚度用于区分光路径(由较粗的线表示)和电路径(由较细的线或虚线表示)。)可以在公共基板上制造光学装置(例如分光器和光幅度调制器)以及电装置(例如光电检测器和运算放大器(operational amplifier;op-amp))。可替换地,可以使用具有不同基板的不同装置来实现系统的不同部分,并且那些装置可以通过通信信道进行通信。例如,光纤可用于提供通信信道,以在用于实现整个系统的多个装置之间传输光信号。那些光信号可以表示当执行向量矩阵乘法时所提供的输入向量的不同子集,和/或当执行向量矩阵乘法时所计算的中间结果的不同子集,如下面更详细的描述。
在本文档中,附图可显示穿过电信号线的光波导,应理解光波导不与电信号线相交。电信号线和光波导可以布置在装置的不同层。
图19B示出了用于使用2×2元素矩阵执行向量矩阵乘法的系统的实现的系统的示例配置1920,其中在光电域中执行求和操作。在此示例中,使用两个不同的相应波长λ1和λ2将不同的输入向量元素编码在光信号上。而且,乘法模块1904的光输出信号被组合在光组合器模块1910中,使得光波导将两个波长上的两个光信号引导到每个光电求和模块1912,这可以使用光电检测器来实现,如用于图19A的示例中的光电检测模块1906。但是,在这个示例中,总和由表示两个波长中的功率的光电流表示,而不是由离开不同导体之间的结点的电流表示。
在本文档中,当附图显示两个彼此交叉的光波导时,从描述中将清楚两个光波导是否实际上彼此光学耦合。例如,从装置的俯视图显示的看起来彼此交叉的两个波导可以在不同的层中实现,并因此不相互交叉。例如,将光信号λ2作为输入提供到复制模块1902的光路径和从乘法模块1904提供光信号M11V1到光组合器模块1910的光路径彼此不是光学耦合的,尽管在附图中它们可能看起来彼此交叉。相似地,从复制模块1902提供光信号λ2到乘法模块1904的光路径和从乘法模块1904提供光信号M21V1到光组合器模块1910的光路径彼此不是光学耦合的,尽管在附图中它们可能看起来互相交叉。
可以扩展图19A和图19B中所示的系统配置以实现用于使用m×n元素矩阵执行向量矩阵乘法的系统配置。在此示例中,输入向量是并且矩阵是例如,输入向量元素v1至vn由n个波导提供,并且每个输入向量元素由一个或多个复制模块处理,以将输入向量元素的m个副本提供至m个相应路径。存在m×n个乘法模块,每个乘法模块使用光幅度调制乘以不同的矩阵元素以产生表示Mij·vj(i=1…m,j=1…n))的电信号或光信号。使用第i个求和模块(i=1…m)组合表示Mij·vj(j=1…n)的信号,以分别产生m个路径的以下结果。
M11v1+M12v2+…+M1nvn
M21v1+M22v2+…+M2nvn
Mm1v1+Mm2v2+…+Mmnvn
由于光幅度调制能够将光信号中的功率从其全值(full value)降低到较低值,降低到零(或接近零)功率,因此可以实现乘以0到1之间的任何值。然而,一些计算可能要求乘以大于1的值和/或乘以有符号(正或负)值。首先,为了将范围扩展至0到Mmax(其中Mmax>1),光信号的原始调制可包括通过Mmax显性(explicit)或隐性(implicit)缩放原始向量元素幅度(或等效地,通过1/Mmax缩放映射到线性映射中特定向量元素幅度的值)使得矩阵元素幅度的范围0到1在计算中定量地对应范围0到Mmax。第二,为了将矩阵元素值的正范围0到Mmax扩展到有符号范围-Mmax到Mmax,可以使用对称差分配置,如下面更详细的描述。相似地,对称差分配置也可用于将在各种信号上编码的值的正范围扩展到值的有符号范围。
图20A示出了对称差分配置2000的示例,其用于为在光信号上编码的值提供有符号范围的值。在此示例中,存在两个相关的光信号,被编码为无符号值(unsigned value),指定为和/>其中假设每个值在0(例如:对应接近零的光功率)与Vmax(例如:对应最大功率水平的光功率)之间变化。两个光信号之间的关系是,当一个光信号用“主要(main)”值编码时,另一个光信号用对应的“反对称(anti-symmetric)”值/>编码,使得在一个光信号上编码的主要值/>从0单调增加(monotonically increase)到Vmax,在配对光信号上编码的反对称值/>从Vmax单调减少(monotonically decrease)到0。或者,相反地,当在一个光信号上编码的主要值/>从Vmax单调减少到0时,在配对光信号上编码的反对称值/>从0单调增加到Vmax。在上路径和下路径中的光信号被相应光电检测模块1906转换为电流信号之后,电流信号之间的差异可以由电流减法模块(current subtraction module)2002产生。编码/>和/>的电流信号之间的差异导致用有符号值V1编码的电流,给定为:
/>
其中随着无符号主要值从0单调增加到Vmax并且与其成对的反对称值/>从Vmax单调减少到0,有符号值V1在-Vmax与Vmax之间单调增加。
存在可用于实现图20A的对称差分配置的各种技术,如图20B和图20C所示。
在图20B中,在公共端配置(common-terminal configuration)中检测光信号,其中两个光电二极管检测器连接至运算放大器2030的公共端2032(例如:反相端(invertingterminal))。在此配置中,从第一光电二极管检测器2012产生的电流2010和从第二光电二极管检测器2016产生的电流2014在三个导体之间的结点2018组合,以产生电流2010与电流2014之间的差值电流2020。电流2010和电流2014是从相应光电二极管的相对侧提供的,光电二极管在另一端连接到提供相同幅度vbias但相反符号的偏置电压的电压源(未显示),如图20B所示。在此配置中,由于在公共结点2018接触的电流的行为而产生差值。差值电流2020表示在电信号上编码的有符号值,其对应在检测的光信号上编码的无符号值之间的差值。运算放大器2030可以配置成跨阻放大器(transimpedance amplifier;TIA)配置,其中另一端2024接地,并且输出端2026使用电阻组件2028反馈到公共端2032,电阻组件2028提供与差值电流2020成比例的电压。这种TIA配置将提供结果值作为电压信号形式的电信号。
在图20C中,光信号在差分端子配置中检测,其中两个光电二极管检测器连接到运算放大器2050的不同端子。在此配置中,从第一光电二极管检测器2042产生的电流2040连接到反相端2052,并且从第二光电二极管检测器2046产生的电流2044连接到非反相端2054。电流2040和2044从相应光电二极管的相同端提供,光电二极管在另一端连接到提供相同幅度vbias和相同符号的偏置电压的电压源(未显示),如图20C所示。在此配置中的运算放大器2050的输出端2056提供与电流2040和电流2044之间的差值成比例的电流。在此配置中,由于运算放大器2050的电路的行为而产生差值。从输出端2056流出的差值电流表示在电信号上编码的有符号值,其对应在检测的光信号上编码的无符号值之间的差值。
图21A示出了对称差分配置2100的示例,其用于为被编码为实现乘法模块1904的光幅度调制器的调制水平的值提供有符号范围的值。在此示例中,存在两个相关的调制器,被配置以通过被指定为和/>的无符号值来进行调制,其中假设每个值在0(例如:对应被调制降低至接近零的光功率)与Mmax(例如:对应保持在最大功率水平附近的光功率)之间变化。两个调制水平之间的关系是,当一个调制水平被配置在“主要”值/>时,另一个调制水平被配置在对应的“反对称”值/>使得当一个调制器的主要值/>从0单调增加到Mmax时,另一个调制器的反对称值/>从Mmax单调减少到0。或者,相反地,当一个调制器的主要值/>从Mmax单调减少到0时,另一个调制器的反对称值/>从0单调增加到Mmax。在复制模块1902复制编码了值V的输入光信号之后,每个调制器将调制的输出光信号提供给对应的光电检测模块1906。在上路径中的乘法模块1904包括与/>相乘并且提供以值/>编码的光信号的调制器。在下路径中的乘法模块1904包括与/>相乘并且提供以值/>编码的光信号的调制器。在光信号被相应光电检测模块1906转换为电流信号之后,它们之间的差值可以由电流减法模块2102产生。编码/>和/>的电流信号之间的差值导致用V编码的电流乘以有符号值M11,给定为:/>
其中随着无符号主要值从0单调增加到Mmax并且与其成对的反对称值/>从Mmax单调减少到0,有符号值M11在-Mmax与Mmax之间单调增加。
图21B示出了用于使用2×2元素矩阵执行向量矩阵乘法的系统1800的实现的系统2110的示例配置,其中求和操作在电域中执行,并且具有输入向量的有符号元素和矩阵的有符号元素。在此示例中,对于输入向量的每个有符号元素,存在两个编码无符号值的相关光信号。对于第一有符号输入向量元素值V1,有两个指定为和/>的无符号值,并且对于第二有符号输入向量元素值V2,有两个指定为/>和/>的无符号值。在光信号上编码的每个无符号值由复制模块2112接收,复制模块2112执行一个或多个光复制操作,光复制操作在四个相应光路径上产生四个光信号副本。在复制模块2112的一些实施例中,存在三个不同的Y形波导分光器,每个Y形波导分光器被配置以使用不同的功率比进行分离(这例如可以使用各种光子装置中的任何一种来实现)。例如,第一分光器可以使用1:4的功率比进行分离,以将25%(1/4)的功率转移到第一路径,第二分光器可以使用1:3的功率比进行分离,以将25%(1/4=1/3×3/4)的功率转移到第二路径,以及第三分光器可以使用1:2的功率比进行分离,以将25%(1/4=1/2×2/3×3/4)的功率转移到第三路径,并且将剩余的25%的功率转移到第四路径。例如,作为复制模块2112的一部分的相应分光器可以布置在基板的不同部分中,以将不同副本适当地分配到系统内的不同路径。在复制模块2112的其他实施例中,可以适当地以不同的分离率分离不同数量的路径。例如,第一分光器可以使用1:2的功率比分离以提供两个实质上有相同功率的中间光信号(例如,输入光波的50%功率给两个输出端口中的每一个)。接着,可以使用具有1:2的功率比的第二分光器来分离这些中间光信号中的一个,以将25%的输入光波功率转移到第一路径和第二路径中的每一个,并且可以使用具有1:2功率比的第三分光器来分离这些中间光信号中的另一个,以将25%的输入光波功率转移到第三路径和第四路径中的每一个。
具有这种二叉树拓扑类型的光复制分配网络提供特定优势。例如,因为二叉树光复制分配网络可以对所有的波长在均匀1:2功率分光器上使用对称设计(例如Y形绝热波导锥,Y-shaped adiabatic waveguide taper),网络会与波长不相依,促进其使用于多个波长。此外,非均匀功率分光器可能会有需要精准控制长度以转换不同功率比例(例如:对于n分支网络,1/n、1/(n-1)、……等等)的耦合部分。然而,此等精准度在现存制造变化中可能很困难。此二叉树光复制分配网络也促使部分紧凑晶粒布局的电路径缩短,如下述参照图45A-45G图更详细的描述。
系统2110的配置还包括如图21B所示布置的其他模块,以提供表示输出向量的两个不同的输出电信号,输出向量是由系统100执行的向量矩阵乘法的结果。存在16个不同的乘法模块1904,其调制表示输入向量的光信号的不同副本,并且存在16个不同的光电检测模块1906,以提供表示计算的中间结果的电信号。还存在两个不同的求和模块2114A和2114B,其计算每个输出电信号的总体求和。在附图中,以虚线示出了将光电检测模块1906电耦合到求和模块2114B的信号线。因为每个总体求和可包括从来自于用于向量元素和/或矩阵元素的任何对称差分配置的成对主要项(paired main term)中减去的一些反对称项(anti-symmetric term),所以求和模块2114A和2114B可包括用于将求和中的一些项在被反转(invert)之后进行加入的机制(等效地,从非反转项(non-inverted term)中减去)。例如,在一些实施例中,求和模块2114A和2114B包括反相输入端口和非反相输入端口,使得在总体求和中要加入的项可以连接到非反相输入端口,并且在总体求和中要减去的项可以连接到反相输入端口。这种求和模块的一个示例实施例是运算放大器,其中非反相端连接到传导了表示要被加入的信号的电流的导线,并且反相端连接到传导了表示要被减去的信号的电流的导线。可替换地,如果通过其他方式执行反对称项的反转,则在求和模块上可能不需要反相输入端口。求和模块2114A和2114B分别产生以下求和结果,以完成向量矩阵乘法。
在本文档中,当附图显示彼此交叉的两条电信号线时,从描述中可以清楚两条电信号线是否彼此电耦合。例如,承载M21 +V1+信号的信号线不电耦合至承载M11 +V1 -信号的信号线或承载M11 -V1 -信号的信号线。
可以扩展图21B中所示的系统配置以实现使用m×n元素矩阵执行向量矩阵乘法的系统配置,其中输入向量和矩阵包括有符号元素。
存在可以用于实现图21B的对称差分配置的各种技术。这些技术中的一些利用1×2光幅度调制器来实现乘法模块1904,和/或提供与主要和反对称配对相关的光信号对。图22A示出了1×2光幅度调制器2200的示例。在此示例中,1×2光幅度调制器2200包括输入分光器2202,其将输入光信号分离以将50%的功率提供给包括相位调制器2204(也称为移相器)的第一路径,并且将50%功率提供给不包括相位调制器的第二路径。可以以不同的方式定义路径,这取决于光幅度调制器是否实现作为自由空间干涉仪或作为波导干涉仪。例如,在自由空间干涉仪中,通过通过分束器的波的传输来定义一条路径,并且通过来自分束器的波的反射来定义另一条路径。在波导干涉仪中,每个路径通过已耦合至入射波导(incoming waveguide)的不同光波导来定义(例如:在Y形分光器中)。相位调制器2204可以被配置以产生相移,使得第一路径的总相位延迟与第二路径的总相位延迟相差一个可配置的相移值(例如:可以布置为在0度到180度之间某处的相移的值)。
1×2光幅度调制器2200包括2×2耦合器2206,其以特定方式使用光学干涉或光学耦合来组合来自第一和第二输入路径的光波,以在不同的比率将功率转移到第一和第二输出路径中,这取决于相移。例如,在自由空间干涉仪中,0度的相移导致在两个路径之间分离的基本所有输入功率的相长干涉,以从实现耦合器2206的分束器的一个输出路径离开,并且180度的相移导致在两个路径之间分离的基本所有输入功率相长干涉,以从实现耦合器2206的分束器的另一输出路径离开。在波导干涉仪中,0度的相移导致在两个路径之间分离的基本所有输入功率耦合到耦合器2206的一个输出波导,并且180度的相移导致在两个路径之间分离的基本所有输入功率耦合到耦合器2206的另一个输出波导。接着,0度和180度之间的相移可以通过部分相长干涉或相消干涉或部分波导耦合将光波中的功率(和在光波上编码的值)乘以0和1之间的值。然后可以将乘以0和1之间的任何值的乘法映射到如上所述的乘以0和Mmax之间的任何值的乘法。
另外,从调制器2200发射的两个光波中的功率之间的关系遵循上面所述的主要和反对称配对的功率之间的关系。当一个信号的光功率的幅度增加时,另一个信号的光功率的幅度减小,因此检测到的光电流之间的差值可以产生有符号向量元素,或者乘以有符号矩阵元素,如本文所述。例如,可以从调制器2200的两个输出端口提供该对相关光信号,使得相关光信号的幅度之间的差值对应将输入值乘以有符号矩阵元素值的结果。图22B示出了1×2光幅度调制器2200的对称差分配置2210,其在图20B的对称差分配置的公共终端版本(common-terminal version)中在待检测的输出布置有光信号。对应由一对光电检测器2212和2214所产生的光电流的电流信号在结点2216组合,以提供输出电流信号,其幅度对应相关光信号的幅度之间的差值。在其他实施例中,例如在图20C的对称差分配置中,可以使用不同的电路组合从输出的两个光信号所检测到的光电流。
可以使用其他技术来建构1×2光幅度调制器以用于实现乘法模块1904,和/或提供与主要和反对称配对相关的光信号对。图22C示出了另一种类型的1×2光幅度调制器的对称差分配置2220的另一示例。在此示例中,1×2光幅度调制器包括环形谐振器2222,其被配置以将输入端口2221的光信号的光功率分到两个输出端口。环形谐振器2222(也称为“微环(microring)”)可以例如通过在基板上形成圆形波导来制造,其中圆形波导耦合到对应输入端口2221的直线波导(straight waveguide)。当光信号的波长接近与环形谐振器2222相关的谐振波长时,耦合到环中的光波在顺时针路径2226上围绕环循环并且在耦合位置相消地干涉,使得降低功率的光波通过路径2224离开到第一输出端口。循环光波也耦合出环,使得另一光波通过弯曲波导在路径2228上离开,弯曲波导将光波引导出第二输出端口。
由于光功率围绕环形谐振器2222循环的时间尺度与光信号的幅度调制的时间尺度相比较小,因此在两个输出端口之间快速建立反对称功率关系,使得由光电检测器2212检测的光波和由光电检测器2214检测的光波形成主要和反对称对。可以调整环形谐振器2222的谐振波长以单调减少/增加主要/反对称信号以实现有符号结果,如上面所述。当环完全不谐振时,所有功率通过路径2224离开第一输出端口,并且当它完全谐振时,适当调整某些其他参数(例如:质量因子和耦合系数)的情况下,所有功率通过路径2228离开第二输出端口。具体来说,为了实现完全的功率传输,表征(characterizing)波导和环形谐振器之间的耦合效率的耦合系数应要匹配。在一些实施例中,具有相对浅(shallow)的调整曲线(tuning curve)是有用的,这可以通过降低环形谐振器2222的质量因子(例如:通过增加损耗)并相应地增加进入和离开环的耦合系数来实现。浅调整曲线提供对谐振波长的较小幅度灵敏度。诸如温度控制的技术也可用于谐振波长的调整和/或稳定性。
图22D示出了另一种类型的1×2光幅度调制器的对称差分配置2230的另一示例。在此示例中,1×2光幅度调制器包括两个环形谐振器2232和2234。在输入端口2231的光信号的光功率被分到两个端口。当光信号的波长接近与两个环形谐振器2232和2234相关的谐振波长时,降低功率的光波通过路径2236离开第一输出端口。光波的一部分还耦合到在顺时针路径2238上围绕环循环的环形谐振器2232中,并且还耦合到在逆时针路径2240上围绕环循环的环形谐振器2234中。接着将循环的光波耦合出环,使得另一光波通过路径2242离开第二输出端口。在此示例中,由光电检测器2212检测的光波和由光电检测器2214检测的光波也形成主要和反对称配对。
图23A和图23B示出了使用光学幅度调制器的不同示例,例如使用1×2光幅度调制器2200,用于实现对2×2元素矩阵执行向量矩阵乘法的系统1800。图23A示出了光电系统2300A的示例配置,其包括提供表示输入向量的有符号向量元素的值的光幅度调制器2302A和2302B。光幅度调制器2302A提供一对光信号,其为第一有符号向量元素编码一对值并且光幅度调制器2302B提供一对光信号,其为第二有符号向量元素编码一对值/>向量矩阵乘法器(VMM)子系统2310A接收输入光信号,执行分离操作、乘法操作以及如上面所述的一些求和操作,并且提供将由额外电路处理的输出电流信号。在一些示例中,输出电流信号表示被进一步处理以产生最终总和的部分总和,最终总和导致输出向量的有符号向量元素。在此示例中,一些最终求和操作被执行作为由运算放大器2306A和2306B的反相和非反相端处的电流信号表示的不同部分总和之间的减法。减法用以提供有符号值,如上面所述(例如:参考图21B)。此示例还说明了某些元素如何成为多个模块的一部分。具体来说,由波导分光器2303执行的光复制可以被认为是复制模块(例如:图21B中的复制模块2112的一个)的一部分和乘法模块(例如:图21B中的乘法模块1904的一个)的一部分。在VMM子系统2310A内使用的光幅度调制器被配置用于在图20B中所示的公共端子配置(common-terminal configuration)中进行检测。
图23B示出了与图23A中所示的光电系统2300A的配置类似的光电系统2300B的示例配置。但是,VMM子系统2310B包括光调制器,其被配置用于在图20C所示的差分端子配置中进行检测。在此示例中,VMM子系统2310B的输出电流信号也表示被进一步处理以产生最终总和的部分总和,最终总和导致输出向量的有符号向量元素。作为由运算放大器2306A和2306B的反相和非反相端子的电流信号表示的不同部分总和之间的减法执行的最终求和操作与图23A的示例不同。但是,如上面所述(例如:参照第21B图),最终减法仍然导致提供有符号值。
图23C示出了光电系统2300C的示例配置,其在公共端子配置中进行检测的情况下(如图23A所示的VVM子系统2310A中那样)使用VVM子系统2310C的替代布置,但承载乘法模块的结果的光信号通过波导内(例如,在半导体基板内)的子系统布线至基板的一部分,基板包括被布置以将光信号转换成电信号的检测器。在一些实施例中,此检测器的分组允许缩短电路径,从而可能减少由于在其他情况下将使用的长电路径所引起的电串扰或其他损害。光波导可以在基板的一个层内布线(route),或者为了防止在单个层内可能会遇到的波导交叉(与相关的损失),波导也可以在基板的多个层内布线,以允许在基板的两个维度上交叉但不在(基板中的深度的)第三维度中交叉的布线路径中的更大灵活性。可以在系统配置中进行各种其他更改,包括VMM子系统中所包括的部件的更改。例如,光幅度调制器2302A和2302B可以被包括作为VMM子系统的一部分。或者,VMM子系统可以包括光输入端口,用于接收由除了光幅度调制器之外的模块所产生的成对的主要和反对称光信号,或者用于与其他类型的子系统接口。在一些实施例中,除了将检测器分组并且为波导在基板使用多个层,避免波导交叉损失且仍然限制电路径长度的替代方式涉及重新排列波导和光子集成电路晶粒上的元件的布局。例如,为了在基板提供多个波导层,有些生产程序可能会带来额外的成本和/或复杂度。相反地,光布线可以包含促进缩短一些紧凑晶粒布局的电路径的光复制分配网络,如下述参照图45A-45G所述。
在给定的光电检测器和下游端口之间的长导线有关联的寄生电容,该寄生电容导致顺着导线以驱动信号的功耗增加。为了限制系统中的功率损耗,包含实现光处理器的光子集成电路(PIC)的晶粒上的元件的布局可以被优化以允许紧凑电布线(electricalrouting)。例如,实现分布式光电处理的PIC的部分(例如,向量矩阵乘法器子系统2310A或向量矩阵乘法器子系统2310B)可被布置使得具有相对窄的“光学排线(optical ribbon)”,该光学排线包含:光波导,其承载光输入的光信号(例如:来自提供输入向量的元素的光调制器);光电子节点(例如:包含MZI调制器及检测器);以及承载电输出的电信号的导线(例如:馈送用于提供输出向量的元素的跨阻放大器)。在一些实施例中,跨阻放大器(例如:TIA2306A及2306B)为倒装连接至光子集成电路(PIC)的电子集成电路(EIC)的一部分。光学排线包含多个“股(strands)”,其中多个股包含光复制分配网络的部分,以及与矩阵乘法的特定列相对应的光电子“节点(nodes)”,其与“片(tiles)”相交,片包含对应于矩阵乘法的特定行的元素。这些PIC中的片也与EIC中对应的片重叠,如下更详细所述。
图45A示出了这种光学排线中的一条股4500的示例。该股4500包括:二叉树光导网络,其使用1:2分光器4502光学地分配对应的输入向量元件,作为二叉树布置中的中间节点;以及光电子节点4504,其作为二叉树布置中的叶节点进行光电子运算。或者,股可以包括两个二叉树,其分配该元件的相应主要和反对称值,但是对于一些系统配置一个二叉树是足够的,例如,在这些系统配置中矩阵被限制为仅包含用于特定软件算法的正权重。此外,PIC会包含从节点4504延伸的导线(未示出),在结点处接触其他股的导线。光复制分配网络的每个子网络的根可以被根据输入向量的元素调制光波的根调制器(未示出)(例如:如2302A或2302B的MZI调制器)馈送。在一些实施例中,在每个光复制分配网络的叶节点处的光电子节点4504包含通过矩阵元素进行乘法的MZI调制器4505,以及一对位于MZI调制器输出以进行光电转换的光电检测器4507。用于电布线这些电信号的导线长度部分取决于整个光学排线的宽度。对N×N个阵列的元素(例如:N×N矩阵的乘法)来说,排线中有N股额集合,每个集合有自己的光复制分配网络。因为最长导线的长度可能需要穿过多至N股的距离,光复制分配网络的每个子网络(即每个二叉树)需占据窄的宽度。为求图示的简洁明了,描绘的是4×4个阵列的元素的示例,但在一些实现中,N的值可能会显著增加(例如:32、64、128或更大)。
如上所述,可以通过二叉树拓扑制造具有容忍误差以及与波长不相依的光复制分配网络,该光复制分配网络分配给定值给股的节点。作为考量股4500中二叉树的非对称布置的动机,考虑N×N矩阵乘法下对称二叉树可能的大小。因为一列为N个元素的树,其宽度(N)大于深度(log2(N)),该树可以被布置使最窄的维度超过其深度。但是,在叶处的二叉树的最后一层需要在树的宽度上适合节点的对称分布,因此树中的波导需要有90度的转弯才能扩展到足够大的宽度。基于需要支持波导的最小曲率半径(以限制弯曲损失),对于该深度维度的窄度将有限制,从而在树的每个层上产生最小宽度(例如,约40微米)。因此,在此例中,总宽度与log2(N)乘以40微米成比例。相反地,考虑在股4500中使用二叉树的对称布置。在这种非对称布置中,二叉树布置的根与不同光电节点之间的光传输长度是不同的。在其他不对称布置中,长度的一些(但不一定是全部)不同。在具有二叉树拓扑的一些非对称布置中,根可能不在一个股的末端,而是可能位于与叶节点相对应的两端之间的某个位置。不对称性有助于形成窄股。1:2Y形分光器的宽度不需要改变方位即可被限制在每臂1微米(也就是总共大约2微米)左右,而不需要制造90度旋转的转弯而耗费10微米左右。股中最宽的部分在顶节点,其具有矩形节点的宽度+log2(N)相邻波导的宽度。各节点的宽度足够大以容纳MZI调制器2臂的宽度(也就是20微米或更少)。该相邻波导的宽度约为2.5微米(为波导本身以及其与邻居的间隔)。因此,股的总宽度与20微米加log2(N)乘以2.5微米成比例,可能比对称二叉树的情况要窄上许多。
图45B示出了可以如何在PIC晶粒上布置排线4510。排线4510包含布置在晶粒一侧的片4514的第一线4512A;以及布置在晶粒另一侧的片4514的第二线4512B。连接部分4515通过延伸各股中一个或多个波导来提供。将片分布成两条或更多实质上是直线,分布在晶粒区域的不同部分(在这种情况下,晶粒区域的不同端)由光纤复制分配网络的波导连接在股内,从而实现更紧凑的布置。以这种方式扩展波导确实会增加总的光插入损耗(例如,增加额外波导长度的1dB/cm左右),但这种额外损耗通常可以持续。可选择扩展波导(如2条线、3条线、4条或更多条)连接的片的线数,以联合优化对晶粒区域的适配和整个系统中的总功率损失。对于大量的片,基本上直线的片可以布置在均匀间距的列中。此外,波导延伸的量可以通过计算约束来限制,例如,在股的长度上的传播时间明显小于时钟周期的时间,从而导致对股的总长度的限制(例如小于10cm)。
图45C示出了排线4510的布置(未示出片边界),其叠加在凸块4516的布置上,该布置用于将PIC上提供电输入及输出端口的焊盘(例如:以导电材料如金属或合金组成)与EIC上相对应的提供电输出及输入端口之的焊盘电耦合。例如,信号通过EIC的输出端口被提供以控制MZI调制器(例如:在给定的光电子节点中每MZI中两个凸块)。在一些实施例中,每个光电子节点有一个或多个额外的凸块(例如:用于给定的MZI调制器的温度控制的凸块),以及用于PIC与EIC间各种其他电信号交换的额外的凸块。为了从EIC转换电信号到PIC以进行控制,以及为了从PIC接收电信号到EIC,PIC中的焊盘会与EIC中的凸块位置上相应的焊盘对齐。将PIC输出端口连接到EIC输入端口的凸块的一个例示为将片中从多个光电子节点的导线提供总和电流的焊盘连接到EIC中的TIA输入的焊盘的凸块(未图示)。典型的凸块直径可以约为100微米,尽管凸块可能更小(例如50微米)。因此,在一些实施例中,凸块的间距(例如:100微米)会比股中的片所需的间距更大,在这种情况下片可以被散开以提供大致均匀的片间隔。
图45D示出了另一个排线4520的例子,其描绘包含根调制器4524的片4522的示例,该根调制器4524用于将数据值调制到馈送给光复制分配网络的其中一个股的光波上。各股(包含被根调制器4524馈送的股)之中也有光电子节点4526(此例中为4个节点)的阵列。在节点4526中,有用于发送从EIC到PIC MZI调制器的臂的相位调制值的一组4528凸块(例如:用于矩阵乘法的调制权重)。片4522也包含结束于焊盘的导线,多个焊盘经由凸块4530与EIC中的TIA 4532的输入的焊盘连接。正是这些导线在穿过多个股的维度中的长度应该被优化以保持相对较短,因为该维度按N缩放,在某些实现中可能相对较大。在图45D中,凸块4528、4530以及TIA 4532被显示为叠加在片4522上,但并非片4522的一部分。因为片4522的根调制器4524被放置在晶粒上与光复制分配网络的节点不同的位置,连接调制器4524的波导部分包含波导的光学延迟部分(或其他形式的光学延迟),使总有效光学距离以及相应的时间延迟与其他片的根调制器匹配。因此,在此例中,波导部分4534比波导部分4536更长。
图45E示出了不同的光电计算系统的另一种光学排线4540,该光电计算系统以EIC代替PIC进行更多计算。此例中,对于4×4矩阵乘法,在PIC中仍有四个片4542、4544、4546及4548的相似配置。然而承载调制数据值的光波经由EIC中连接到TIA的凸块被检测并耦合到EIC。接着,作为VMM操作的一部分的乘法与加法通过EIC中的数字电路使用数字值以电的方式执行。对于这种计算,在数字域中发生同步通信的情况下,可以补偿由不同波导长度引起的时间差,因此不需要光延迟。或者,另一光电计算系统可包括用于执行权重乘法的MZI调制器,并且光电乘法的结果可被检测并耦合到EIC以使用数字值以电子方式执行求和。
图45F示出了光学排线4550的另一示例以及在PIC中执行各种类型数据处理的片4552内可以发生的光电处理类型。通常,光电二极管被用于将编码在分布在排线的不同股上的光信号转换为电信号。这些电信号被馈送到PIC中的数据处理电路4560。PIC还包括用于将结果上传到倒装连接的EIC或任何其他形式集成电子电路的操作的数据上传电路4570。
图45G示出了光电计算系统4580的视图,示出了系统内包括用于矩阵元素的乘法的权重值(W#,#)、用于光或电求和的光电二极管(PD)在内的系统内各种功能的示例性布置,以及ADC模块,用于将模拟电信号转换为数字电信号。功能的不同部分可以包括在系统4580中的PIC或EIC中。
在某些布置中,矩阵乘法可能具有不同的行和列数。例如,对于M×N矩阵乘法器,在EIC中有M个电片(electric tile)(每行1个),并且在PIC中有M个片,其中每个片具有N个权重调制器,对应于光学排线的N条股中的一股。如上所述,为了更好地适合于晶粒,而不是M个片的长行,可能有多个行:第一行的M/2个片和第二行的M/2个片,或四行M/4、M/4、M/4、M/4个片等。在某些情况下,由于空间分布的回报可能会减少,因此四行可能足够,但在某些情况下,行的数量可能较大但小于M。
在一些实现中,EIC包括用于组件的电路,组件例如权重驱动器、数据驱动器、存储器(例如,存储调制器的矩阵权重以及累加结果)、DAC、ADC、数字逻辑(例如用于累加)以及用于与其他片通信的数字数据总线的部分。对于大多数情况,由于不同片中计算的数据之间的相关性有限,不同的片(例如矩阵中的不同行)之间需要有限制的通信。因此,布局可以允许相加(通过电流)至给定TIA(以及输出向量中的相应元素)的(短)行在布局中相对独立。在大多数情况下,给定输出向量与下一次迭代的输入向量之间没有关系,但在计算的某些迭代(例如,神经网络计算)中,输出向量的元素与下一次迭代中使用的输入向量的相应元素之间存在相关关系。很少见的是,其他元素之间可能会进一步相关,例如当所有元素作为标准化计算的一部分而累加时,该标准化计算将每个元素除以累积和。因此,在布局中,需要彼此更频繁地通信的部件可以布置在一起。
图24A示出了用于系统1800的实现的系统2400A的示例配置,其中存在承载(host)不同乘法模块(例如:乘法模块1806A、1806B、1806C和1806D)的多个装置2410,每个乘法模块都被配置作为VMM子系统,以通过较大矩阵的不同子矩阵对向量元素的不同子集执行向量矩阵乘法。例如,每个乘法模块可以被配置与系统2110的配置(图21B)相似,但不是使用2×2元素矩阵实现VMM子系统,每个乘法模块可以被配置以使用具有与在单一装置上能高效制造的尺寸一样大的尺寸的矩阵来实现VMM子系统,所述单一装置具有用于该装置内的模块的公共基板。例如,每个乘法模块可以使用64×64元素矩阵来实现VMM子系统。
布置不同的VMM子系统,以便适当地组合每个子矩阵的结果,以产生较大组合矩阵的结果(例如:乘以128×128元素矩阵得到的128元素向量的元素)。每组光学端口或光源2402提供一组光信号,其表示较大输入向量的向量元素的不同子集。复制模块2404被配置以复制接收光信号组(在64个光波导的组2403中所引导的光波上编码)内的所有光信号,并且将该组光信号提供给两个不同光波导组中的每一组,光波导组在此示例中是64个光波导的组2405A和64个光波导的组2405B。例如,通过使用波导分光器阵列来执行此复制操作,阵列中的每个分光器通过将光波导的组2403中的光波分成在光波导的组2405A中的第一对应光波和在光波导的组2405B中的第二对应光波,来复制输入向量元素子集(例如,针对每个复制模块2404的64个元素的子集)的一个元素。如果在一些实施例中使用多个波长(例如:W个波长),则分开的波导的数量(和因此2402中分开的端口或源的数量)可以减少例如1/W。每个VMM子系统2410执行向量矩阵乘法,提供其部分结果作为一组电信号(用于输出向量的元素的子集),来自不同VMM子系统2410的相应部分结果对通过如图24A所示的求和模块2414被使用本文所述的任何技术(例如导体之间的结点处的电流求和)加在一起。在一些实施例中,对于任何数量的递归水平,可以通过组合来自较小子矩阵的结果来递归地执行使用期望矩阵的向量矩阵乘法,通过在递归的根级(root level)使用单一元素光幅度调制器来结束。在递归的不同水平,VMM子系统装置可以更紧凑(例如:通过在一个水平的长距离光纤网络连接的不同数据中心,通过在另一水平的数据中心内的光纤连接的不同多芯片装置,通过在另一水平的光纤连接的装置内的不同芯片,以及通过另一水平的芯片上波导(on-chip waveguide)连接的在相同芯片上的模块的不同部分)。
图24B示出了系统2400B的另一示例配置,其中额外装置用于对每个VMM子系统2410的光传输和接收。在每个VMM子系统2410的输出中,光发射器阵列2420用于将每个光信号耦合到光传输线内的信道(例如:VMM子系统2410之间的光纤束(fiber bundle)中的光纤,VMM子系统2410可以由分离的装置承载(host)和/或分布在远程位置,或者是在集成装置上的一组波导中的波导,集成装置例如是在公共基板上承载VMM子系统2410的SoC)。光接收器阵列2422用于输出向量元素的每个子集,以在部分结果的对应配对由求和模块2414求和之前,将光信号转换成电信号。
图24C示出了系统2400C的另一示例配置,其中可以重新配置VMM子系统2410以使得用于不同子矩阵的不同向量矩阵乘法能够以不同方式重新布置。例如,通过组合不同子矩阵所形成的较大矩阵的形状可为可配置的。在此示例中,两个不同的光信号子集从每组光学端口或光源2402提供至光学开关2430。还存在电学开关2440,其能够重新布置电信号子集,电信号子集表示要由求和模块2414求和以提供用于期望的计算的一个输出向量或分离的输出向量的部分结果。例如,代替使用由大小m×n的四个子矩阵所组成的大小2m×2n的矩阵的向量矩阵乘法,可以重新布置VMM子系统2410以使用大小2m×n的矩阵或大小m×2n的矩阵。
图24D示出了系统2400D的另一示例配置,其中VMM子系统2410可以以其他方式重新配置。光学开关2430可以接收多达四组分离的光信号,并且可以被配置以将不同组的光信号提供至不同的VMM子系统2410,或者将任何组的光信号复制到多个VMM子系统2410。而且,电学开关2440可以被配置以将所接收到的电信号组的任何组合提供至求和模块2414。这种更大的可重新配置性使得能够进行更多各种不同的向量矩阵乘法计算,包括使用大小为m×3n、3m×n、m×4n、4m×n的矩阵进行乘法。
图24E显示系统2400E的另一示例配置,其包括可执行各种操作(例如:数字逻辑操作)的额外电路,以使系统2400E的配置(例如:用于完整的光电计算系统,或者用于较大计算平台的光电子系统)能够用于实施计算技术,例如人工神经网络或其他形式的机器学习。数据储存子系统2450可包括易失性储存介质(例如:SRAM和/或DRAM)和/或非易失性储存介质(例如:固态硬盘和/或硬盘)。数据储存子系统2450还可包括分层缓存模块(hierarchical cache module)。储存的数据可以包括例如训练数据、中间结果数据或用于馈送至在线计算系统(online computational system)的生产数据(production data)。数据储存子系统2450可以被配置以提供对输入数据的并发存取(concurrent access),以在由光学端口或光源2402所提供的不同光学信号上进行调制。以数字形式储存的数据到可用于调制的模拟形式的转换可以由电路(例如数字模拟转换器)来执行,电路被包括在数据储存子系统2450的输出、或在光学端口或光源2402的输入、或在两者之间分开。辅助处理子系统(auxiliary processing subsystem)2460可被配置以对数据执行辅助操作(例如:非线性操作、数据混洗(data shuffling)等),数据可以使用VMM子系统2410通过向量矩阵乘法的多次迭代循环。来自那些辅助操作的结果数据2462可以以数字形式传输到数据储存子系统2450。由数据储存子系统2450取得的数据可用于使用适当的输入向量调制光信号,并且用于提供用来在VMM子系统2410中布置光幅度调制器的调制水平的控制信号(未示出)。以模拟形式编码在电信号上的数据到数字形式的转换可以由辅助处理子系统2460内的电路(例如模拟数字转换器)执行。
在一些实施例中,提供数字控制器(未示出于附图中)以控制数据储存子系统2450、分层缓存模块、各种电路(例如数字模拟转换器和模拟数字转换器)、VMM子系统2410以及光源2402的操作。例如,数字控制器被配置以执行程序代码以实现具有多个隐藏层的神经网络。数字控制器迭代地执行与神经网络的相应层相关联的矩阵处理。数字控制器通过从数据储存子系统2450取得第一矩阵数据并且基于取得的数据布置VMM子系统2410中的光幅度调制器的调制水平来执行矩阵处理的第一次迭代,其中第一矩阵数据表示神经网络的第一层的系数。数字控制器从数据储存子系统取得一组输入数据,并且布置用于光源2402的调制水平,以产生表示第一输入向量的元素的一组光输入信号。
VMM子系统2410基于第一输入向量和第一矩阵数据执行矩阵处理,表示神经网络的第一层对信号的处理。在辅助处理子系统2450产生第一组结果数据2462之后,数字控制器通过从数据储存子系统取得表示神经网络的第二层的系数的第二矩阵数据,并且基于第二矩阵数据布置VMM子系统2410中的光幅度调制器的调制水平来执行矩阵处理的第二次迭代。第一组结果数据2462用来作为第二输入向量,以布置光源2402的调制水平。VMM子系统2410基于第二输入向量和第二矩阵数据执行矩阵处理,表示神经网络的第二层对信号的处理,以此类推。在最后一次迭代中,产生由神经网络的最后一层处理信号的输出。
在一些实施例中,当执行与神经网络的隐藏层相关联的计算时,结果数据2462不是被传输到数据储存子系统2450,而是被数字控制器用来直接控制数字模拟转换器,数字模拟转换器产生用于在VMM子系统2410中布置光幅度调制器的调制水平的控制信号。这减少了将数据储存到数据储存子系统2450和从数据储存子系统2450存取数据所需的时间。
可以将其他处理技术结合到系统配置的其他示例中。例如,与其他种类的向量矩阵乘法子系统一起使用的各种技术(例如:不具有本文所述的电求和或有符号乘法而使用光干涉的子系统)可以结合到一些系统配置中,例如美国专利公开第US2017/0351293号中所述的一些技术,其通过引用并入本文。
图32A和图32B示出了类似于图14和图15所示的人工神经网络计算系统。
图33示出了用于使用图32A的ANN计算系统3200执行ANN计算的方法3300的示例的流程图。过程3300的步骤可以由系统3200的控制器10110来执行。在一些实施方式中,方法3300的各种步骤可以并行、组合、循环或以任何顺序运行。
在3310,接收包括输入数据集和第一多个神经网络权重的人工神经网络(ANN)计算请求。输入数据集包括第一数字输入向量。第一数字输入向量是输入数据集的子集。例如,它可以是图像的子区域。ANN计算请求可以由各种实体生成,例如图32A的计算机10102。计算机10102可以包括各种类型的计算设备中的一个或多个,诸如个人计算机、服务器计算机、车辆计算机和飞行计算机。ANN计算请求通常是指向ANN计算系统3300通知或通知要执行的ANN计算的电信号。在一些实现中,ANN计算请求可以被划分为两个或多个信号。例如,第一信号可以查询ANN计算系统3300,以检查系统3300是否准备好接收输入数据集和第一多个神经网络权重。响应于系统3300的肯定确认,计算机10102可以发送包括输入数据集和第一多个神经网络权重的第二信号。
在3320,存储输入数据集和第一多个神经网络权重。控制器10110可以将输入数据集和第一多个神经网络权重存储在存储单元10120中。将输入数据集和第一组多个神经网络权重存储在存储单元10120中可以允许在ANN计算系统3300的操作中具有灵活性,例如可以提高系统的整体性能。例如,通过从存储单元10120检索输入数据集的期望部分,可以将输入数据集划分为具有设置大小和格式的数字输入向量。输入数据集的不同部分可以按各种顺序进行处理,或者被打乱,以允许执行各种类型的ANN计算。例如,在输入和输出矩阵大小不同的情况下,混洗可以允许通过块矩阵乘法技术进行矩阵乘法。作为另一示例,将输入数据集和第一多个神经网络权重存储在存储单元10120中可以允许由ANN计算系统3300对多个ANN计算请求进行排队,这可以允许系统3300在没有不活动周期的情况下以其全速维持操作。
在一些实现中,输入数据集可以存储在第一存储器子单元中,并且第一多个神经网络权重可以存储在第二存储器子单元。
在3330,基于第一数字输入向量生成第一多个调制器控制信号,并且基于第一多个神经网络权重生成第一多多个权重控制信号。控制器10110可以向DAC单元130发送第一DAC控制信号,用于生成第一多个调制器控制信号。DAC单元130基于第一DAC控制信号生成第一多个调制器控制信号,并且调制器阵列144生成表示第一数字输入向量的光输入向量。
第一DAC控制信号可以包括要由DAC单元130转换为第一多个调制器控制信号的多个数字值。多个数字值通常与第一数字输入向量相对应,并且可以通过各种数学关系或查找表进行关联。例如,多个数字值可以与第一数字输入向量的元素的值成线性比例。作为另一示例,多个数字值可以通过查找表与第一数字输入向量的元素相关,该查找表被配置为保持数字输入向量与调制器阵列144生成的光输入向量之间的线性关系。
控制器10110可以向DAC单元130发送第二DAC控制信号,用于生成第一多个权重控制信号。DAC单元130基于第二DAC控制信号产生第一多个权重控制信号,光电矩阵乘法单元3220根据第一多个权值控制信号重新配置,实现与第一多个神经网络权值对应的矩阵。
第二DAC控制信号可以包括要由DAC单元130转换为第一多个权重控制信号的多个数字值。多个数字值通常与第一多个神经网络权重相对应,并且可以通过各种数学关系或查找表进行关联。例如,多个数字值可以与第一多个神经网络权重成线性比例。作为另一示例,可以通过对第一多个神经网络权重执行各种数学运算来计算多个数字值,以生成权重控制信号,该权重控制信号可以配置光电矩阵乘法单元3220执行与第一多个神经元网络权重相对应的矩阵乘法。
在3340,获得与光电矩阵乘法单元3220的电子输出向量相对应的第一多个数字化输出。由调制器阵列144生成的光输入向量由光电矩阵乘法单元3220处理并变换为电输出向量。电输出向量由ADC单元160转换成数字化值。控制器10110可以例如向ADC单元160发送转换请求,以开始将光电矩阵乘法单元3220输出的电压转换为数字化输出。一旦转换完成,ADC单元160就可以将转换结果发送到控制器10110。或者,控制器10110可以从ADC单元160检索转换结果。控制器10110可以从数字化输出形成数字输出向量,该数字输出向量对应于输入数字向量的矩阵乘法的结果。例如,数字化输出可以被组织或连接,以具有向量格式。
在一些实施方式中,ADC单元160可以被设置或控制为基于控制器10110向DAC单元10130发出的DAC控制信号来执行ADC转换。例如,ADC转换可以被设置为在DAC单元130生成调制控制信号之后的预设时间开始。ADC转换的这种控制可以简化控制器10110的操作并减少必要的控制操作的数量。
在3350,对第一数字输出向量执行非线性变换以生成第一变换后的数字输出向量。神经网络的一个节点或人工神经元通过首先对从前一层的节点接收到的信号进行加权和,然后对加权和进行非线性变换(“激活”)来产生输出。各种类型的人工神经网络可以实现各种类型的可微非线性变换。非线性变换函数的例子包括整流线性单元(RELU)函数、Sigmoid函数、双曲正切函数、X^2函数和|X|函数。控制器10110对第一数字输出执行这种非线性变换,以生成第一变换后的数字输出向量。在一些实施方式中,非线性变换可以由控制器10110内的专用数字集成电路来执行。例如,控制器10110可以包括一个或多个模块或电路块,其特别适于加速一种或多种类型的非线性变换的计算。
在3360,存储第一变换后的数字输出向量。控制器10110可以将第一变换后的数字输出向量存储在存储单元10120中。在输入数据集被划分为多个数字输入向量的情况下,第一变换后的数字输出向量对应于输入数据集的一部分(例如第一数字输入向量)的ANN计算的结果。因此,存储第一变换后的数字输出向量允许ANN计算系统3200对输入数据集的其他数字输入向量执行并存储附加计算,以稍后聚合为单个ANN输出。
在3370,输出基于第一变换后的数字输出向量生成的人工神经网络输出。控制器10110生成ANN输出,其是通过由第一多个神经网络权重限定的ANN处理输入数据集的结果。在输入数据集被划分为多个数字输入向量的情况下,所生成的ANN输出是包括第一变换后的数字输出的聚合输出,但是可以进一步包括与输入数据集的其他部分相对应的附加变换后的数字输出。一旦产生了ANN输出,所产生的输出就被发送到发起ANN计算请求的计算机,例如计算机10102。
可以为实现方法3300的ANN计算系统3200限定各种性能指标。限定性能指标可以允许将实现光电子处理器3210的ANN计算系统3200的性能与替代地实现电子矩阵乘法单元的用于ANN计算的其他系统进行比较。在一个方面,可以部分地通过第一循环周期来指示可以执行ANN计算的速率,该第一循环周期被限定为在将输入数据集和第一多个神经网络权重存储在存储单元中的步骤3320与将第一变换后的数字输出向量存储在存储器单位中的步骤3360之间经过的时间。因此,该第一循环周期包括将电信号转换为光信号(例如,步骤3330)以及在光域和电域中执行矩阵乘法(例如,步3340)所花费的时间。步骤3320和3360都涉及将数据存储到存储单元10120中,这是在ANN计算系统3200和没有光电处理器3210的常规ANN计算系统系统之间共享的步骤。这样,测量存储器到存储器事务时间的第一循环周期可以允许在ANN计算系统3200和没有光电处理器3210的ANN计算系统(例如实现电子矩阵乘法单元的体系)之间进行ANN计算吞吐量的真实或公平的比较。
由于调制器阵列144可以产生光输入向量的速率(例如:在25GHz)和光电矩阵乘法单元3220的处理速率(例如:>100GHz),用于执行单一数字输入向量的单一ANN计算的ANN计算系统3200的第一循环时段可以接近调制器阵列144的速度的倒数(例如40ps)。在考虑与DAC单元130的信号产生和ADC单元160的ADC转换相关联的延迟之后,第一循环时段可以例如小于或等于100ps、小于或等于200ps、小于或等于500ps、小于或等于1ns、小于或等于2ns、小于或等于5ns、或小于或等于10ns。
作为比较,通过电子矩阵乘法单元对Mx1向量和MxM矩阵进行乘法运算的执行时间通常与M^2-1处理器时钟周期成比例。对于M=32,这样的乘法将花费大约1024个周期,这在3GHz时钟速度下导致执行时间超过300ns,这比ANN计算系统3200的第一循环周期慢几个数量级。
在一些实施方式中,方法3300还包括基于第一变换后的数字输出向量生成第二多个调制器控制信号的步骤。在某些类型的人工神经网络计算中,单个数字输入向量可以通过同一个人工神经网络重复传播或由其处理。如前所述,实现多次处理的人工神经系统可以称为递归神经网络(RNN)。RNN是一种神经网络,其中网络在第(k)次通过神经网络期间的输出被再循环回神经网络的输入,并在第(k+1)次通过期间用作输入。RNN可以在模式识别任务中具有各种应用,如语音或手写识别。一旦生成第二多个调制器控制信号,方法3300就可以从步骤3340进行到步骤3360,以完成第一数字输入向量通过ANN的第二次通过。一般来说,根据在ANN计算请求中接收到的RNN的特性,变换后的数字输出作为数字输入矢量的再循环可以重复预设数量的循环。。
在一些实施方式中,方法3300还包括基于第二多个神经网络权重生成第二多组权重控制信号的步骤。在一些情况下,人工神经网络计算请求还包括第二多个神经网络权重。如前所述,通常,除了输入层和输出层之外,ANN还具有一个或多个隐藏层。对于具有两个隐藏层的ANN,第二多个神经网络权重可以对应于,例如,ANN的第一层和ANN的第二层之间的连接性。为了通过ANN的两个隐藏层次处理第一数字输入向量,可以首先根据方法3300处理第一数字输入向量,直到步骤3360,在该处,通过ANN的第一隐藏层处理第一数字输入向量的结果被存储在存储单元10120中。控制器10110然后重新配置光电矩阵乘法单元3220以执行对应于与ANN的第二隐藏层相关联的第二多个神经网络权重的矩阵乘法,方法3300可以基于第一变换后的数字输出向量来生成多个调制器控制信号,该第一变换的数字化输出向量生成与第一隐藏层的输出相对应的更新的光学输入向量。更新后的光学输入向量随后由重新配置的光电矩阵乘法单元3220处理,该单元对应于ANN的第二隐藏层。通常,可以重复所述步骤,直到数字输入向量已经通过ANN的所有隐藏层处理为止。
在光电矩阵乘法单元3220的一些实施方式中,光电矩阵乘法单位3220的重新配置速率可以明显慢于调制器阵列144的调制速率。在这种情况下,ANN计算系统3200的吞吐量可能受到在重新配置光电矩阵乘法单元3220中花费的时间量的不利影响,在该时间量期间不能执行ANN计算。为了减轻光电矩阵乘法单元3220的相对较慢的重新配置时间的影响,可以利用批处理技术,其中两个或多个数字输入向量在没有配置改变的情况下通过光电矩阵乘法单元3220传播,以将重新配置时间分摊到更大数量的数字输入向量上。
图34示出了图示图33的方法3300的一个方面的图3290。对于具有两个隐藏层的ANN,不是通过第一隐藏层来处理第一数字输入向量,而是为第二隐藏层重新配置光电矩阵乘法单元3220,通过重新配置的光电子矩阵相乘单元3220来处理第一数字化输入向量,并对剩余的数字化输入向量重复同样的操作,输入数据集的所有数字输入向量可以首先通过为第一隐藏层配置的光电矩阵乘法单元3220(配置#1)进行处理,如图3290的上部所示。一旦具有配置#1的光电矩阵乘法单元3220已经处理了所有数字输入向量,该重新配置可以明显慢于光电矩阵乘法单元3220处理输入向量的速率。一旦光电矩阵乘法单元3220被重新配置用于第二隐藏层,则来自前一隐藏层的输出向量可以由光电矩阵乘法单位3220批量处理。对于具有数万或数十万个数字输入向量的大型输入数据集,重新配置时间的影响可以减少大约相同的因素,这可以显著减少ANN计算系统3200在重新配置中花费的时间部分。
为了实现批处理,在一些实现中,方法3300还包括以下步骤:通过DAC单元基于第二数字输入向量生成第二多个调制器控制信号;从所述ADC单元获得与所述光电矩阵乘法单元的输出向量相对应的第二多个数字化输出,所述第二多多个数字化输出形成第二数字输出向量;对所述第二数字输出向量执行非线性变换以生成第二变换后的数字输出向量;以及在存储单元中存储第二变换后的数字输出向量。第二多个调制器控制信号的生成可以例如跟随步骤3360。此外,在这种情况下,步骤3370的ANN输出现在基于第一变换数字输出向量和第二变换数字输出向量。获取、执行和存储步骤类似于步骤3340至3360。
批处理技术是用于提高ANN计算系统3200的吞吐量的几种技术之一。用于提高ANN计算系统3200的吞吐量的另一技术是通过利用波分复用(WDM)并行处理多个数字输入向量。如前所述,WDM是一种通过公共传播信道(例如光电矩阵乘法单元3220的波导)同时传播不同波长的多个光信号的技术。与电信号不同,不同波长的光信号可以通过公共信道传播,而不会影响同一信道上不同波长的其他光信号。此外,可以使用诸如光复用器和解复用器之类的公知结构从公共传播信道添加(复用)或丢弃(解复用)光信号。
在ANN计算系统3200的情境中,可以独立地生成不同波长的多个光学输入向量,同时通过光电矩阵乘法单元3220的光路和光学处理组件(例如,光学幅度调制器)传播,并且由电子处理组件(例如检测器和/或求和模块)独立处理以增强ANN计算系统3200的吞吐量。
参考图35A,在一些实施方式中,波分复用(WDM)人工神经网络(ANN)计算系统3500包括光电子处理器3510,该光电子处理器包括光电矩阵乘法单元3520,以及图18至24D中所示的求和模块,用于在执行矩阵计算时能够处理非相干或低相干光信号,其中光信号以多个波长编码。WDM ANN计算系统3500类似于ANN计算系统3200,不同之处在于使用WDM技术,其中对于ANN计算系统3500的一些实施方式,光源3230被配置为生成多个波长,例如λ1、λ2和λ3,类似于图46F的体系10104。
多个波长可以优选地通过足够大的波长间隔来分离,以允许在公共传播信道上容易地多路复用和多路分解。例如,大于0.5nm、1.0nm、2.0nm、3.0nm或5.0nm的波长间隔可以允许简单的复用和解复用。另一方面,多个波长中的最短波长和最长波长之间的范围(“WDM带宽”)可以优选地足够小,使得光电矩阵乘法单元3520的特性或性能在多个波长上保持基本相同。光学元件通常是色散的,这意味着它们的光学特性随着波长的变化而变化。例如,MZI的功率分配比可以随波长变化。然而,通过将光电矩阵乘法单元3520设计为具有足够大的操作波长窗口,并且通过将波长限制在该操作波长窗口内,由光电矩阵乘法单元3520输出的与每个波长对应的输出电子向量可以是由光电子矩阵相乘单元3520实现的矩阵相乘的足够精确的结果。工作波长窗口可以是例如1nm、2nm、3nm、4nm、5nm、10nm或20nm。
WDM ANN计算系统3500的调制器阵列144包括被配置为生成多个光输入向量的光调制器组,每个组对应于多个波长中的一个,并且生成具有对应波长的对应光输入向量。例如,对于具有长度为32和3个波长(例如,λ1、λ2和λ3)的光学输入向量的系统,调制器阵列144可以具有3组,每组32个调制器。此外,调制器阵列144还包括光复用器,该光复用器被配置为将多个光输入向量组合成包括多个波长的组合光输入向量。例如,对于光输入向量的每个元件,光复用器可以将三个不同波长的三组调制器的输出组合成单个传播信道,例如波导。因此,返回到上面的示例,组合的光输入向量将具有32个光信号,每个信号包括3个波长。
WDM ANN计算系统3500的光电处理部件进一步被配置以多路分解多个波长并且产生多个多路分解的输出电信号。参照图35B,光电矩阵乘法单元3520包括光路径1803,光路径1803被配置以从调制器阵列144接收包括多个波长的组合光输入向量。例如,光路径1803_1接收在波长λ1、λ2以及λ3的组合光输入向量元素v1。在波长λ1、λ2以及λ3的光输入向量元素v1的副本被提供给乘法模块3530_11、3530_21、……、以及3530_m1。在乘法模块3530输出电信号的一些实施例中,乘法模块3530_11输出表示M11·v1的三个电信号,其对应在波长λ1、λ2以及λ3的输入向量元素v1。对应在波长λ1、λ2以及λ3的输入向量元素v1的乘法模块3530_11的输出电信号分别地示为(λ1)、(λ2)以及(λ3)。相似的符号应用于其他乘法模块的输出。乘法模块3530_21输出表示M21·v1的三个电信号,其分别地对应在波长λ1、λ2以及λ3的输入向量元素v1。乘法模块3530_m1输出表示Mm1·v1的三个电信号,其对应在波长λ1、λ2以及λ3的输入向量元素v1
在波长λ1、λ2以及λ3的光输入向量元素v2的副本被提供给乘法模块3530_12、3530_22、……、以及3530_m2。乘法模块3530_12输出表示M12·v2的三个电信号,其对应在波长λ1、λ2以及λ3的输入向量元素v2。乘法模块3530_22输出表示M22·v2的三个电信号,其对应在波长λ1、λ2以及λ3的输入向量元素v2。乘法模块3530_m2输出表示Mm2·v2的三个电信号,其对应在波长λ1、λ2以及λ3的输入向量元素v2
包括波长λ1、λ2以及λ3的光输入向量元素vn的副本被提供给乘法模块3530_1n、3530_2n、……、以及3530_mn。乘法模块3530_1n输出表示M1n·vn的三个电信号,其对应在波长λ1、λ2以及λ3的输入向量元素vn。乘法模块3530_2n输出表示M2n·vn的三个电信号,其对应在波长λ1、λ2以及λ3的输入向量元素vn。乘法模块3530_mn输出表示Mmn·vn的三个电信号,其对应在波长λ1、λ2以及λ3的输入向量元素vn,以此类推。
例如,每一个乘法模块3530可包括多路分解器,多路分解器被配置以多路分解包含在多波长光向量的32个信号的每一个中的三个波长,并且将3个单一波长光输出向量布线(route)到耦合至三组运算放大器或跨阻放大器(例如:运算放大器2030(图20B)或2050(图20C))的三组光电检测器(例如:光电检测器2012、2016(图20B)或2042、2046(图20C))。
三组求和模块1808接收来自乘法模块3530的输出,并且产生对应在各种波长的输入向量的总和y。例如,三个求和模块1808_1接收乘法模块3530_11、3530_12、……、3530_1n的输出,并且产生分别地对应在波长λ1、λ2以及λ3的输入向量元素v1的总和y1(λ1)、y1(λ2)、y1(λ2),其中在每个波长的总和y1等于M11v1+M12v2+…+M1nvn。三个求和模块1808_2接收乘法模块3530_21、3530_22、……、3530_2n的输出,并且产生分别地对应在波长λ1、λ2以及λ3的输入向量元素v2的总和y2(λ1)、y2(λ2)、y2(λ3),其中在每个波长的总和y2等于M21v1+M22v2+…+M2nvn。三个求和模块1808_n接收乘法模块3530_m1、3530_m2、……、3530_mn的输出,并且产生分别地对应在波长λ1、λ2以及λ3的输入向量元素vn的总和yn(λ1)、yn(λ2)、yn(λ3),其中在每个波长的总和yn等于Mm1v1+Mm2v2+…+Mmnvn
再次参照图35A,WDM ANN计算系统3500的ADC单元160包括ADC组(banks ofADCs),其被配置以转换光电矩阵乘法单元3520的多个多路分解输出电压(demultiplexedoutput voltage)。每个ADC组对应于多个波长之一,并且产生相应的数字多路分解输出(digitized demultiplexed output)。例如,例如,ADC 160的组可以耦合到求和模块1808的组。
控制器110可以实现与方法3300(图33)相似的方法,但是扩展为支持多波长操作。例如,方法可包括从ADC单元160得到多个数字多路分解输出的步骤,多个数字多路分解输出形成多个第一数字输出向量的步骤,其中多个第一数字输出向量中的每一个对应多个波长之一;对多个第一数字输出向量中的每一个执行非线性变换,以产生多个变换第一数字输出向量的步骤;以及在存储单元中储存多个变换第一数字输出向量的步骤。
在一些情况下,可以专门设计ANN,并且可以具体地形成数字输入向量,使得可以在不进行多路分解的情况下加入乘法模块3530的多波长乘积(multi-wavelengthproduct)。在这种情况下,乘法模块3530可以是波长非敏感(wavelength-insensitive)的乘法模块,其不会多路分解多波长乘积的多个波长。如此一来,乘法模块3530的每一个光电检测器有效地将光信号的多个波长加到单一光电流中,并且乘法模块3530输出的每一个电压对应于对多个波长的向量元素和矩阵元素的乘积的总和。求和模块1808(仅需要一个组)输出多个数字输入向量的矩阵乘法结果的逐元素总和(element-by-element sum)。
图35C示出了用于使用2×2元素矩阵执行向量矩阵乘法的分波多路复用的光电矩阵乘法单元3520的实现的系统3500的示例配置,其中在电域中执行求和操作。在该实施例中,输入向量是并且矩阵是/> 在该实施例中,输入向量具有多个波长λ1、λ2以及λ3,并且输入向量的每个元素在不同的光信号上编码。两个不同的复制模块1902执行光复制操作以在不同的路径(例如:“上”路径和“下”路径)上分离计算。存在四个乘法模块1904,每个乘法模块1904使用光幅度调制乘以不同的矩阵元素。每个乘法模块1904的输出被提供给多路分解器和一组光电检测模块3310,光电检测模块3310将波分多路复用光信号转换成与波长λ1、λ2以及λ3相关的电流形式的电信号。使用与波长λ1、λ2以及λ3相关的一组求和模块3320来组合不同输入向量元素的两个上路径,并且使用与波长λ1、λ2以及λ3相关的一组求和模块3320来组合不同输入向量元素的两个下路径,其中求和模块3320在电域中执行求和。因此,对每个波长的输出向量的每个元素都在不同的电信号上编码。如图35A所示,随着计算的进行,递增地产生输出向量的每个分量,以对每个波长分别地产生上路径和下路径的以下结果。/>
M11v1+M12v2
M21v1+M22v2
可以使用各种光电技术中的任何一种来实现系统3500配置。在一些实施例中,存在公共基板(例如:半导体(例如硅)),其可以支持集成光学部件和电子部件。光路径可以在波导结构中实现,波导结构具有由具有较低光学指数(optical index)的材料围绕的具有较高光学指数的材料,该材料定义用于传播承载了光信号的光波的波导。电路径可以由导电材料实现,用于传播承载了电信号的电流。(在图35C中,表示路径的线的厚度用于区分光路径(由较粗的线表示)和电路径(由较细的线或虚线表示)。)可以在公共基板上制造光学装置(例如分光器和光幅度调制器),以及电子装置(例如光电检测器和运算放大器(op-amp))。可替换地,可以使用具有不同基板的不同装置来实现系统的不同部分,并且那些装置可以通过通信信道进行通信。例如,光纤可用于提供通信信道,以在用于实现整个系统的多个装置之间传输光信号。那些光信号可以表示当执行向量矩阵乘法时所提供的输入向量的不同子集,和/或当执行向量矩阵乘法时所计算的中间结果的不同子集,如下面更详细的描述。
到目前为止,作为ANN计算的一部分执行的加权总和的非线性变换由控制器110在数字域中执行。在一些情况下,非线性变换可能是计算密集的(computationallyintensive)或耗电的,显著增加了控制器110的复杂性,或者在吞吐量或功率效率方面限制了ANN计算系统3200(第32A图)的性能。如此一来,在ANN计算系统的一些实施例中,可以通过模拟电子设备在模拟域中执行非线性变换。
图36示出了ANN计算系统3600的示例的图。ANN计算系统3600类似于ANN计算系统3200,不同之处在于添加了模拟非线性单元310。模拟非线性单元310布置在光电矩阵乘法单元3220和ADC单元160之间。模拟非线性单元310被配置以从光电矩阵乘法单元3220接收输出电压、应用非线性传递函数、以及将转换输出电压输出到ADC单元160。
当ADC单元160接收已经由模拟非线性单元310非线性变换的电压时,控制器10110可以从ADC单元160得到对应转换输出电压的转换数字输出电压。因为从ADC单元160得到的数字输出电压已经被非线性变换(“激活”),所以可以省略控制器10110的非线性变换步骤,从而减少了控制器10110的计算负担。接着,可以将直接从ADC单元160得到的第一转换电压作为第一变换数字输出向量储存在存储单元10120中。
可以以各种方式实现模拟非线性单元310,如上面对图48A的模拟非线性单元310的讨论。使用模拟非线性单元310可以通过减少在数字域中执行的步骤来改善ANN计算系统3600的性能,例如吞吐量或功率效率。将非线性变换步骤移出数字域可以允许ANN计算系统的操作中的额外的灵活性和改进。例如,在递归神经网络中,光电矩阵乘法单元3220的输出被激活,并且再循环回到光电矩阵乘法单元3220的输入。激活步骤由ANN计算系统3200中的控制器10110执行,这需要在每次通过光电矩阵乘法单元3220时数字化光电矩阵乘法单元3220的输出电压。然而,因为激活步骤现在在ADC单元160的数字化之前执行,所以可以减少在执行递归神经网络计算中所需的ADC转换的次数。
在一些实施例中,模拟非线性单元310可以集成到ADC单元160中作为非线性ADC单元。例如,非线性ADC单元可以是具有非线性查找表的线性ADC单元,非线性查找表将线性ADC单元的线性数字输出映射到所期望的非线性变换数字输出。
图37示出了ANN计算系统3700的示例的示例的图。ANN计算系统3700类似于图36的系统3600,不同之处在于它进一步包括模拟存储单元320。模拟存储单元320耦合至DAC单元130(例如:通过第一DAC子单元132)、调制器阵列144和模拟非线性单元310。模拟存储单元320包括多路复用器,其具有耦合至第一DAC子单元132的第一输入和耦合至模拟非线性单元310的第二输入。这允许模拟存储单元320从第一DAC子单元132或模拟非线性单元310接收信号。模拟存储单元320被配置以储存模拟电压并且输出所储存的模拟电压。可以以各种方式实现模拟存储单元320,如上面对图3B的模拟存储单元320的讨论。
现在将描述ANN计算系统3700的操作。由DAC单元130(例如:由第一DAC子单元132)输出的第一多个调制器控制信号首先通过模拟存储单元320输入至调制器阵列144。在此步骤中,模拟存储单元320可以简单地传递或缓冲第一多个调制器控制信号。调制器阵列144基于第一多个调制器控制信号产生光输入向量,其通过光电矩阵乘法单元3220传播。光电矩阵乘法单元3220的输出电压由模拟非线性单元310非线性变换。此时,代替由ADC单元160数字化,模拟非线性单元310的输出电压由模拟存储单元320储存,其接着输出到调制器阵列144,以被转换成将要通过光电矩阵乘法单元3220传播的下一个光输入向量。在控制器10110的控制下,可以在预设时间量或预设数量的循环下执行该递归处理(recurrentprocessing)。一旦对于给定数字输入向量完成了递归处理,模拟非线性单元310的转换输出电压就由ADC单元160转换。
在系统3700中使用模拟存储单元320的优点类似于在图48B的系统302中使用模拟存储单元320的那些优点。类似地,使用系统3700的递归神经网络计算的执行可以类似于图48B的系统302的执行。如下面针对图49A的系统400所讨论的,通过使用在保持ANN计算输出的分辨率的同时以低于输入数据集的分辨率的比特分辨率内部操作的ANN计算系统,存在优点(例如,降低功耗)。参考图38,示出了具有1比特内部分辨率的人工神经网络(ANN)计算系统3800的示例的示意图。ANN计算系统3800类似于ANN计算系统3200(图32A),但不同之处在于DAC单元130现在由驱动器单元430代替,ADC单元160现在由比较器单元460代替。
图38的系统3800中的驱动器单元430和比较器单元460以类似于图49A的系统400中的驱动器模块430和比较器460的方式操作。图38中的ANN计算系统3800的操作的数学表示类似于图49A中所示的ANN计算系统400的操作的算术表示。
ANN计算系统3800通过执行1比特向量的一系列矩阵乘法,然后对各个矩阵乘法结果求和来执行ANN计算。使用图49A中所示的示例,通过通过驱动器单元430生成与4个1比特输入向量相对应的4个1比特调制器控制信号的序列,可以将分解的输入向量Vbit0到Vbit3中的每一个与矩阵U相乘。这又产生4个1比特光学输入向量的序列,该序列由通过驱动器单元430配置的光电矩阵乘法单元3220处理以实现矩阵U的矩阵乘法,对应于4个1比特调制器控制信号的序列的4个数字化1比特光学输出的序列。
在将4比特向量分解为4个1比特向量的情况下,每个向量应由ANN计算系统3800以四倍于单个4比特向量可由其他ANN计算系统(例如系统3200(图32A))处理的速度进行处理,以保持相同的有效ANN计算吞吐量。这种增加的内部处理速度可以被视为将4个1比特向量时分复用到用于处理4比特向量的单个时隙中。所需的处理速度的增加可以至少部分地通过驱动器单元430和比较器单元460相对于DAC单元130和ADC单元160的操作速度的增加来实现,因为信号转换过程的分辨率的降低通常导致可以实现的信号转换率的增加。
在该示例中,尽管在1比特操作中信号转换率增加了4倍,但是相对于4比特操作,所产生的功耗可以显著降低。如前所述,信号转换过程的功耗通常随比特分辨率呈指数缩放,而随转换率呈线性缩放。因此,每次转换的功率减少16倍可以由比特分辨率的4倍减少引起,随后由增加的转换率的功率增加4倍引起。总体而言,在保持相同的有效ANN计算吞吐量的同时,通过ANN计算系统3800可以实现操作功率的4倍降低,例如,超过ANN计算系统3200。
控制器10110然后可以通过将数字化的1比特光学输出中的每一个与2^0到2^3的对应权重相乘,从4个数字化的1比特光学输出构造4比特数字输出向量。一旦构造了4比特数字输出向量,则可以通过对构造的4比特数字输向量执行非线性变换来进行ANN计算,以生成变换的4比特的数字输出向量;以及将变换后的4比特数字输出向量存储在存储单元10120中。
可替换地或附加地,在一些实施方式中,4个数字化的1比特光学输出中的每一个可以被非线性地变换。例如,阶跃函数非线性函数可以用于非线性变换。变换后的4比特数字输出向量然后可以由非线性变换后的数字化1比特光学输出构成。
虽然已经示出和描述了单独的ANN计算系统3800,但是一般来说,图32A的ANN运算系统3200可以被设计为实现与ANN运算体系3800的功能类似的功能。例如,DAC单元130可以包括被配置为生成1比特调制器控制信号的1比特DAC子单元,并且ADC单元160可以被设计为具有1比特的分辨率。这样的1比特ADC可以类似于比较器,或者实际上等效于比较器。
此外,虽然已经描述了具有1比特内部分辨率的ANN计算系统的操作,但是通常,ANN计算系统的内部分辨率可以降低到低于输入数据集的N比特分辨率的中间水平。例如,内部分辨率可以减少到2^Y比特,其中Y是大于或等于0的整数。
各种可替换的系统配置或信号处理技术可以与本文所描述的不同系统、子系统和模块的各种实现方式一起使用。
在一些实施例中,VMM子系统中的一些或全部可替换为替代子系统可能是有用的,所述替代子系统包括使用各种复制模块、乘法模块和/或求和模块的不同实现的子系统。例如,VMM子系统可以包括在此描述的光学复制模块和在此描述的电求和模块,但是乘法模块可以用在电域而不是光电域中执行乘法运算的子系统来代替。在这样的示例中,光学幅度调制器的阵列可以由检测器阵列代替,以将光信号转换为电信号,然后是电子子系统(例如,ASIC、处理器或SoC)。可选地,如果光信号路由要被用于被配置为检测光信号的求和模块,则电子子系统可以包括电到光转换,例如,使用电调制光源阵列。
在一些实施例中,能够对用于VMM计算的一些或全部的光信号的一些或所有使用单个波长可能是有用的。可替换地,在一些实施例中,为了帮助减少可能需要的光输入端口的数量,输入端口可以接收复用的光信号,该复用光信号具有在不同波长的不同光波上编码的不同值。然后,这些光波可以在系统中的适当位置被分离,这取决于复制模块、乘法模块和/或求和模块中的任何一个是否被配置为在多个波长上操作。但是,即使在多波长实施例中,对于例如在相同VMM子系统中使用的光信号的不同子集使用相同的波长也可能是有用的。
在一些实施例中,可以使用累加器来实现对由各种模块接收的光信号和电信号的时域编码,从而减轻了对电子电路在大量不同功率水平上有效操作的需要。例如,在通过累加器(对电信号的电流或电压进行积分的模拟电子累加器)之后,使用二进制(开关)幅度调制在每个符号N个时隙上以特定占空比编码的信号可以被转换为每个符号具有N个幅度水平的信号。因此,如果光学设备(例如,光学幅度调制器中的相位调制器)能够以符号带宽B操作,则它们可以以符号带宽B/100操作,其中每个符号值使用N=100个时隙。50%的积分幅度具有50%的占空比(例如,处于非零“开”水平的前50个时隙,然后是处于零或接近零的“关”水平的50个时隙),而10%的积分幅度则具有10%的占空率(例如,位于非零“关”水平的前10个时隙,之后是处于零“关)。在本文所描述的示例中,这样的累加器可以被定位在VMM子系统内对于每个电信号一致的任何位置处的每个电信号的路径上,例如,在该VMM子系统中的所有电信号的求和模块之前或者在该VMM分系统中的全部电信号的加和模块之后。VMM子系统还可以被配置为使得在保持不同符号的对齐的不同电信号之间不存在显著的相对时间偏移。
参照图40,在一些实施例中,零差检测可用于得到调制信号的相位和幅度。零差检测器4000包括了包括2×2多模干涉(MMI)耦合器的分束器4002、两个光电检测器4004a和4004b以及减法器4006。分束器4002接收输入信号E1和E2,分束器402的输出由光电检测器4004a和4004b检测。例如,输入信号E1可以是要被检测的信号,并且输入信号E2可以由具有恒定激光功率的本地振荡器产生。在信号被光电检测器4004a和4004b检测到之前,由分束器4002将本地振荡器信号E2与输入信号E1混合。减法器4006输出光电检测器4004a和4004b的输出之间的差值。减法器4006的输出4008与|E1||E2|sin(θ)成比例,其中|E1|和|E2|是两个输入光场(input optical field)的幅度,θ是它们的相对相位。由于输出与两个光场的乘积相关,因此即使在单一光子水平下也能检测到极弱的光信号。
例如,零差检测器4000可用于图18-24E,26-32B,和35A-38,46A,46F,48A-49A,50,52,和54所示的系统中。零差检测器4000提供信号上的增益(gain),并因此提供更好的信噪比(signal noise ratio)。对于相干系统,零差检测器4000提供了通过检测结果的极性的揭示信号的相位信息的附加益处。
在图19B的示例中,系统1920的配置包括2×2元素矩阵,其中使用两个不同的相应波长λ1和λ2在两个光信号上编码两个输入向量元素。可以例如使用两个光纤将两个光信号提供给系统1920的配置。例如,对4×4矩阵执行矩阵处理的系统可以接收四个光纤上承载的四个输入光信号。虽然可以使用更多光纤来承载用于处理较大矩阵的系统的更多输入光信号,但因为光纤和光电芯片之间的耦合占用相当大的空间,很难将大量光纤耦合到光电芯片上。
减少将光信号承载到光电芯片所需的光纤数量的方法是使用波分多路复用。可以使用单一光纤多路复用和传输具有不同波长的多个光信号。例如,参照图41,在计算系统4100中,具有波长λ1的第一光信号4102由第一调制器4104调制,以产生表示第一输入向量元素V1的第一调制光信号4120。具有波长λ2的第二光信号4106由第二调制器4108调制,以产生表示第二输入向量元素V2的第二调制光信号4122。第一和第二调制光信号由多路复用器4110组合以产生波分多路复用信号,其通过光纤4112被传输到光电芯片4114,光电芯片4114包括多个矩阵乘法模块4116a、4116b、4116c以及4116d(统称为4116)和4118a、4118b、4118c以及4118d(统称为4118)。
在光电芯片4114内部,通过多路分解器4118多路分解波分多路复用信号,以分离光信号4120和光信号4122。在此示例中,光信号4120由复制模块4124复制,以产生传输到矩阵乘法模块4116a和4118a的光信号的副本。光信号4122由复制模块4126复制,以产生传输到矩阵乘法模块4116b和4118b的光信号的副本。矩阵乘法模块4116a和4116b的输出使用光耦合器4120a组合,并且组合信号由光电检测器4122a检测。
具有波长λ1的第三光信号4124由第三调制器4128调制,以产生表示第三输入向量元素V3的第三调制光信号4132。具有波长λ2的第四光信号4126由第四调制器4130调制,以产生表示第四输入向量元素V4的第四调制光信号4134。第三和第四调制光信号由多路复用器4136组合以产生波分多路复用信号,其通过光纤4138传输到光电芯片4114。
在光电芯片4114内部,由光纤4138提供的波分多路复用信号由多路分解器4140多路分解,以分离光信号4132和4134。在此示例中,光信号4132由复制模块4142复制,以产生传输到矩阵乘法模块4116c和4118c的光信号的副本。光信号4134由复制模块4144复制,以产生传输到矩阵乘法模块4116d和4118d的光信号的副本。矩阵乘法单元4116c和4116d的输出使用光耦合器4120b组合,并且组合信号由光电检测器4122b检测。矩阵乘法单元4118a和4118b的输出使用光耦合器组合,并且组合信号由光电检测器检测。矩阵乘法单元4118c和4118d的输出使用光耦合器组合,并且组合信号由光电检测器检测。
在一些实施例中,多路复用器可以多路复用具有三个或更多个(例如:10或100个)波长的光信号,以产生由单一光纤传输的波分多路复用信号,并且光电芯片内部的多路分解器可以多路分解波分多路复用信号,以将具有不同波长的信号分开。这允许更多的光信号并行通过光纤传输到光电芯片,增加了光电芯片的数据处理吞吐量。
在一些示例中,图46A的激光单元142包括单个激光器,其提供可以用不同的光信号进行调制的光波。在那种情况下,系统的相应波导中的光波在激光的线宽的分辨率内具有彼此大致相同的公共波长。例如,光波可具有彼此在1nm之内的波长。然而,激光单元142还可包括多个激光器,其能够使用调制到不同相应光波(例如:每个具有1nm或更小的线宽)上的不同的光信号来进行波分复用操作。不同的光波可以具有峰值波长,其通过大于单个激光器的线宽的波长距离(例如,大于1nm)彼此分离。在一些示例中,波分复用系统可以使用被调制到具有几纳米(例如:3nm或更大)的波长的光波上的光信号。然而,如果多路分解器具有更好的分辨率,则WDM系统中不同波长之间的差异也可以小于3nm。
本说明书中描述的数字控制器(例如,用于控制图24E中所示的组件)和功能操作可以在数字电子电路中实现,或者在计算机软件、固件或硬件中实现,包括本说明书中公开的结构及其结构等价物,或者在它们中的一个或多个的组合中实现。本说明书中描述的主题的实施例可以使用编码在计算机可读介质上的计算机程序指令的一个或多个模块来实现,用于由数据处理设备执行或控制数据处理设备的操作。计算机可读介质可以是制造的产品,例如计算机系统中的硬盘驱动器或通过零售渠道销售的光盘,或者嵌入式系统。计算机可读介质可以被单独地获取,并且随后用计算机程序指令的一个或多个模块来编码,例如通过在有线或无线网络上递送计算机程序指令中的一个或者多个模块。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备或它们中的一个或多个的组合。
计算机程序(也称为程序、软件、软件应用程序、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明性或过程性语言,并且可以以任何形式部署,包括作为独立程序或作为适合在计算环境中使用的模块、组件、子例程或其他单元。计算机程序不一定与文件系统中的文件相对应。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),可以存储在专用于所讨论程序的单个文件中,也可以存储在多个协调文件中(例如,存储一个或更多模块、子程序或代码部分的文件)。计算机程序可以被部署为在位于一个站点或分布在多个站点并通过通信网络互连的一台计算机或多台计算机上执行。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,该可编程处理器通过对输入数据进行操作并产生输出来执行一个或更多个计算机程序以执行功能。过程和逻辑流程也可以由专用逻辑电路执行,并且设备也可以实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
虽然已经结合某些实施例描述了本公开,但是应当理解的是,本公开不限于所公开的实施例,相反,旨在覆盖包括在所附权利要求的范围内的各种修改和等效布置,该范围应给予最广泛的解释,以涵盖法律允许的所有此类修改和等效结构。
例如,图42示出了小系数更频繁出现的数据集的概率分布函数。在另一示例中,假设数据集具有这样的特性,即系数的概率分布函数(PDF)对于大系数(即具有相对大的绝对值的系数)产生更高的概率(并因此产生更频繁的情况)。对于这样的数据集(“高系数加权数据集”),可以通过设计调制器来实现降低的功耗,使得调制器在较低功率状态下操作以用于使用较大系数(在数据集中更频繁地出现)的计算,并且在较高功率状态下工作以用于使用较小系数(在在数据集中不经常出现)的运算。
以下是可以结合本说明书中描述的各种技术的光子计算系统的附加示例,例如使用光子集成电路作为其他组件的中介层,或者用于组装和对齐光子计算系统不同组件的制造工艺。
图46A示出了人工神经网络(ANN)计算系统10100的示例的示意图。系统10100包括控制器10110、存储单元10120、数模转换器(DAC)单元130、光学处理器140和模数转换器(ADC)单元160。控制器10110耦合到计算机10102、存储单元10120、DAC单元10130和ADC单元160。控制器10110包括集成电路,该集成电路被配置为控制ANN计算系统10100的运算以执行ANN计算。
控制器10110的集成电路可以是专用集成电路,该专用集成电路被专门配置为执行ANN计算过程的步骤。例如,集成电路可以实现专用于执行ANN计算过程的微码或固件。这样,控制器10110可以具有相对于在诸如计算机10102之类的常规计算机中使用的通用处理器的精简指令集。在一些实施方式中,控制器10110的集成电路可以包括被配置为执行ANN计算过程的不同步骤的两个或多个电路。
在ANN计算系统10100的示例操作中,计算机10102可以向ANN计算系统10100发出人工神经网络计算请求。ANN计算请求可以包括限定ANN的神经网络权重,以及将由所提供的ANN处理的输入数据集。控制器10110接收ANN计算要求,并将输入数据集和神经网络权重存储在存储单元10120中。
输入数据集可以对应于要由ANN处理的各种数字信息。输入数据集的示例包括图像文件、音频文件、LiDAR点云和GPS坐标序列,并且将基于接收图像文件作为输入数据集来描述ANN计算系统10100的操作。通常,输入数据集的大小可以有很大的变化,从数百个数据点到数百万个数据点或更大。例如,一个分辨率为100万像素的数字图像文件大约有100万像素,而这100万像素中的每一个都可能是要由ANN处理的数据点。由于典型的输入数据集中有大量的数据点,输入数据集通常被划分为较小大小的多个数字输入向量,以由光学处理器140单独处理。例如,对于灰度数字图像,数字输入向量的元素可以是表示图像强度的8比特值,并且数字输入向量可以具有从10个元素(例如,32个元素、64个元素)到数百个元素(如,256个元素、512个元素)的长度。通常,任意大小的输入数据集可以被划分为适合由光学处理器140处理的大小的数字输入向量。在输入数据集的元素数量不能被数字输入向量的长度整除的情况下,可以使用零填充来填充数据集,使其能够被数字输入向量的长度整整除。可以对各个数字输入向量的处理输出进行处理,以重建完整的输出,该输出是通过ANN处理输入数据集的结果。在一些实现中,可以使用块矩阵乘法技术实现将输入数据集划分为多个输入向量和随后的向量级处理。
神经网络权重是限定ANN的人工神经元的连接性的一组值,包括这些连接的相对重要性或权重。ANN可以包括具有对应节点集合的一个或多个隐藏层。在具有单个隐藏层的ANN的情况下,ANN可以由两组神经网络权重来限定,一组对应于输入节点和隐藏层的节点之间的连接性,第二组对应于隐藏层和输出节点之间的连接性。描述连接性的每组神经网络权重对应于将由光学处理器140实现的矩阵。对于具有两个或更多个隐藏层的神经网络,需要额外的神经网络权重集来限定额外隐藏层之间的连接性。因此,通常,包括在ANN计算请求中的神经网络权重可以包括表示ANN的各个层之间的连接性的多组神经网络权重。
由于要处理的输入数据集通常被划分为多个较小的数字输入向量用于单独处理,因此输入数据集一般被存储在数字存储器中。然而,计算机10102的存储器和处理器之间的存储器操作的速度明显慢于ANN计算系统10100可以执行ANN计算的速率。例如,在计算机10102的典型存储器读取周期期间,ANN计算系统10100可以执行数十到数百次ANN计算。这样,如果在处理ANN计算请求的过程中,由ANN计算系统10100进行的ANN计算涉及系统10100和计算机10102之间的多次数据传输,则可以将由ANN操作系统10100执行ANN计算的速率限制在其完全处理速率以下。例如,如果计算机10102要从其自己的存储器访问输入数据集,并在被请求时向控制器10110提供数字输入向量,则由于计算机10102和控制器10110之间的一系列数据传输所需的时间,ANN计算系统10100的操作可能会大大减慢。应该注意的是,计算机10102的存储器访问等待时间通常是不确定的,这进一步使数字输入向量可以被提供给ANN计算系统10100的速度复杂化和降低。此外,计算机10102的处理器周期可能被浪费在管理计算机10102和ANN计算系统10100之间的数据传输上。
相反,在一些实施方式中,ANN计算系统10100将整个输入数据集存储在存储单元10120中,存储单元1012是ANN计算系统1010的一部分并且专用于由其使用。专用存储单元10120允许存储单元1012和控制器10110之间的事务被特别地适配为允许存储单元10110和控制器1011之间的数据的平滑和不间断的流动。这种不间断的数据流可以通过允许光学处理器140以其全处理速率执行矩阵乘法而不受诸如计算机10102之类的传统计算机的缓慢存储器操作的限制来显著提高ANN计算系统10100的总体吞吐量。此外,由于执行ANN计算所需的所有数据都是由计算机10102在单个事务中提供给ANN计算系统10100的,因此ANN计算系统10100可以独立于计算机10102以独立的方式执行其ANN计算。ANN计算系统10100的这种自包括操作减轻了计算机10102的计算负担,并消除了ANN计算系统100操作中的外部依赖性,从而提高了系统10100和计算机10102两者的性能。
现在将描述ANN计算系统10100的内部操作。光学处理器140包括激光单元142、调制器阵列144、检测单元146和光学矩阵乘法(OMM)单元150。光学处理器140通过将长度为N的数字输入向量编码到长度为N,并通过OMM单元150传播该光学输入向量来进行操作。OMM单元150接收长度为N的光输入向量,并在光域中对接收到的光输入向量执行N×N矩阵乘法。由OMM单元150执行的N×N由OMM单元150的内部配置决定。OMM单元150的内部配置可以由电信号控制,例如由DAC单元130产生的电信号。
OMM单元150可以以各种方式来实现。图46B示出了OMM单元150的示例的示意图。OMM单元150可以包括用于接收光学输入向量的输入波导152的阵列;与输入波导152的阵列光学通信的光学干涉单元154;以及与光干涉单元154进行光通信的输出波导156的阵列。光学干涉单元154执行光学输入向量到光信号的第二阵列的线性变换。输出波导156的阵列引导由光学干涉单元154输出的光信号的第二阵列。输入波导阵列152中的至少一个输入波导经由光学干涉单元154与输出波导阵列156中的每个输出波导光学通信。例如,对于长度为N的光输入向量,OMM单元150可以包括N个输入波导152和N个输出波导156。
光学干涉单元可以包括多个互连的马赫-曾德尔干涉仪(MZI)。图46C和46D示出了互连MZI的示例配置157和158的示意图。MZI可以以各种方式互连,例如在配置157或158中,以实现通过输入波导152的阵列接收的光学输入向量的线性变换。
图46E示出了MZI 170的示例的示意图。MZI 170包括第一输入波导171、第二输入波导172、第一输出波导178和第二输出波导179。此外,多个互连MZI中的每个MZI 170包括第一移相器174,该第一移相器被配置为改变MZI的分割比;以及第二移相器176,其被配置为移动MZI 170的一个输出的相位,例如通过第二输出波导179离开MZI的光。MZI 170的第一移相器174和第二移相器176耦合到由DAC单元130生成的多个权重控制信号。第一和第二移相器174和176是OMM单元150的可重新配置元件的示例。重新配置元件的示例包括热光移相器或电光移相器。热光移相器通过加热波导来改变波导和包层材料的折射率,这转化为相位的变化。电光移相器通过施加电场(例如,LiNbO3、反向偏置PN结)或电流(例如,正向偏置PIN结)来操作,其改变波导材料的折射率。通过改变权重控制信号,可以改变互连MZI170中的每一个的第一和第二移相器174和176的相位延迟,这重新配置OMM单元150的光干涉单元154以实现由在整个光干涉单元152上设置的相位延迟确定的特定矩阵乘法。OMM单元150和光学干涉单元154的附加实施例公开在题为“用于光学神经网络的装置和方法”的美国专利公开号US 2017/0351293A1中,其通过引用完全并入本文。
光学输入向量是通过激光器单元142和调制器阵列144产生的。长度为N的光输入向量具有N个独立的光信号,每个光信号的强度对应于长度为N数字输入向量的各个元素的值。例如,激光单元142可以产生N个光输出。N个光输出具有相同的波长,并且是光学相干的。此外,激光单元142的光输出可以基本上彼此相同。例如,N个光输出可以在它们的强度上基本均匀(例如,在5%、3%、1%、0.5%、0.1%或0.01%内)和它们的相对相位上基本均匀(例如,10度、5度、3度、1度、0.1度内)。光输出的均匀性可以提高光学输入向量对数字输入向量的忠实性,从而提高光学处理器140的整体精度。在一些实施方式中,激光单元142的光输出可以具有在每次输出0.1mW到50mW的范围内的光功率、在近红外范围内的波长(例如,在900nm和1600nm之间)以及小于1nm的线宽。激光单元142的光输出可以是单横模光输出。
在一些实施方式中,激光单元142包括单个激光源和光功率分配器。所述单个激光源被配置为产生激光。光功率分配器被配置为将由激光源产生的光分成强度和相位基本相等的N个光输出。通过将单个激光输出分成多个输出,可以实现多个光输出的光学相干。单个激光源可以是例如半导体激光二极管、垂直腔表面发射激光器(VCSEL)、分布式反馈(DFB)激光器或分布式布拉格反射器(DBR)激光器。光功率分光器可以是,例如,1:N多模干涉(MMI)分光器,包括多个1:2MMI分光器或定向耦合器的多级分光器,或星形耦合器。在一些其他实施方式中,可以使用主从激光器配置,其中从激光器被主激光器注入锁定,以与主激光器具有稳定的相位关系。
激光器单元142的光输出被耦合到调制器阵列144。调制器阵列144被配置为接收来自激光单元142的光输入,并基于作为电信号的调制器控制信号来调制所接收的光输入的强度。调制器的示例包括马赫-曾德尔干涉仪(MZI)调制器、环形谐振器调制器和电吸收调制器。调制器阵列144具有N个调制器,每个调制器接收激光单元142的N个光输出中的一个。调制器接收与数字输入向量的元素相对应的控制信号,并调制光的强度。控制信号可以由DAC单元130产生。
DAC单元130被配置为在控制器10110的控制下生成多个调制器控制信号并生成多个权重控制信号。例如,DAC单元130从控制器10110接收与要由光学处理器140处理的数字输入向量相对应的第一DAC控制信号。DAC单元130基于第一DAC控制信号生成调制器控制信号,调制器控制信号是适合于驱动调制器阵列144和OMM 150的模拟信号。模拟信号可以是电压或电流,例如,这取决于阵列144和OMM 150的调制器的技术和设计。电压的幅度可以在例如±0.1V到±10V的范围内,电流的幅度可以从例如100μA到100mA的范围内。在一些实施方式中,DAC单元130可以包括调制器驱动器,其被配置为缓冲、放大或调节模拟信号,以使阵列144和OMM 150的调制器可以被充分驱动。例如,一些类型的调制器可以用差分控制信号来驱动。在这种情况下,调制器驱动器可以是基于单端输入信号产生差分电输出的差分驱动器。作为另一示例,一些类型的调制器可以具有小于光学处理器140的期望处理速率的3dB带宽。在这种情况下,调制器驱动器可以包括预加重电路或其他带宽增强电路,这些电路被设计为扩展调制器的操作带宽。例如,对于基于PIN二极管结构的调制器,这种带宽增强是有用的,该调制器被正向偏置以使用载流子注入来调制波导的一部分的折射率,该波导引导被调制的光波。例如,如果调制器是MZI调制器,则PIN二极管结构可用于在MZI调制解调器的一个或两个臂中实现移相器。为正向偏置操作配置移相器有助于更短的调制器长度和更紧凑的整体设计,这对于具有大量调制器的OMM单元150可能是有用的。
例如,在带宽增强的预加重形式中,驱动调制器的模拟电信号(例如,电压或电流)可以被整形为包括瞬态脉冲,该瞬态脉冲过冲模拟信号水平的变化,该模拟信号水平表示一系列数字数据值中的DAC控制信号的给定数字数据值。每个数字数据值可以具有任意数量的比特,包括单个1比特数据值,如本示例的其余部分所假设的。因此,如果比特的值与先前的值相同,则驱动调制器的模拟电信号保持在稳态水平(例如,比特值为0的信号水平X0,以及比特值为1的较高信号水平X1)。然而,如果一个比特从0变为1,则用于驱动调制器的对应模拟电信号可以包括在比特转换开始时峰值为X1+(X1–X0)的瞬态脉冲,然后趋于稳定状态值X1。同样,如果一个比特从1变为0,则用于驱动调制器的对应模拟电信号可以包括在比特转换开始时峰值为X0+(X0–X1)的瞬态脉冲,然后趋于X0的稳态值。可以选择瞬态脉冲的大小和长度来优化带宽增强(例如,最大化不归零(NRZ)调制模式的眼图的开放区域)。
在带宽增强的电荷泵形式中,驱动调制器的模拟电流信号可以被整形为包括移动精确确定的电荷量的瞬态脉冲。图44示出了电荷泵带宽增强电路的示例实现,该电路使用串联连接在电压源和调制器之间的电容器来精确控制电荷流。图44中所示的电路的一部分可以包括在上面讨论的调制器驱动器中。在该示例中,调制器由调制器电路4400表示,该调制器电路4400将调制器的移相器的电特性建模为PIN二极管。调制器电路4400包括理想二极管、具有电容Cd的电容器和具有电阻R的电阻器的并联。泵浦电容器4402具有电容Cp。控制电压波形4404被提供给反相器电路4405以产生驱动电压波形4406,该驱动电压波形的幅度可以被精确校准以经由泵浦电容器4402将预定量的电荷移动到调制器电路4400或从调制器电路4400移动预定量的电荷。通过在端子4408处施加恒定电压VDD_IO来正向偏置由调制器电路4400建模的PIN二极管。在反相器4405的端子4410处施加电荷泵控制电压VCP,以控制在驱动电压波形4406的转变时泵送的电荷量以及由调制器施加的对应光学相移。
电压VCP的值可以在操作之前被调谐,使得存储在电荷泵电容器4402中的标称电荷Q基于电容Cp的测量值被精确校准(例如,由于制造期间的不确定性,电容Cp可能具有一些可变性)。例如,电压VCP可以等于标称电荷Q除以电容Cp。与PIN二极管相交的波导的一部分的折射率的由此产生的变化可以提供被引导的光波的相位偏移,该相位偏移与在PIN二极管(例如,经由内部电容Cd存储)和电荷泵电容器4402之间移动的电荷量Q成线性比例。如果驱动电压从低值变为高值,则从电荷泵电容器4402到PIN二极管的电流流入在短时间内传递预定量的电荷(即,正电流随时间的积分)。如果驱动电压从高值变为低值,则从PIN二极管到电荷泵电容器4402的电流流出在短时间内去除预定量的电荷(即,负电流随时间的积分)。在这个相对较短的开关时间之后,由开关4414控制的电流源4412提供稳态电流,以在保持驱动电压的同时(例如,在特定数字值的保持时间期间)替换由于内部电容器通过内部电阻R损失电流而损失的电荷。由于在短切换时间内移动的电荷量取决于恒定物理参数(Cp)和稳态控制值(VCP),因此使用这种电荷泵配置可以具有比其他技术(包括一些预加重技术)更好的精度等优点,并且因此是精确可控制和可重复的。
在一些实现中,可以通过设计阵列144和/或OMM 150的调制器来实现降低的功耗,使得当操作调制器以生成表示更频繁出现的系数的调制值时消耗更少的功率,并且当操作调制器以产生表示出现频率较低的系数的调制值时消耗更多的功率。例如,对于已知具有某些特性的某些数据集,可以降低功耗。图42示出了对于阵列144和/或OMM 150的调制器的特定设计,叠加在调制器功率图4202(实线)上的调制值概率分布图4200(虚线)的示例。这两个图都是以归一化单位给出的调制值(在横轴上)的函数,以表示-1和1之间的系数。在该示例中,数据集包括用于人工神经网络计算的各种系数(例如,向量系数和/或矩阵系数),使得系数的概率分布函数(PDF)产生小系数(即,具有相对小的绝对值的系数)的更高概率(并因此产生更频繁的实例)。对于这样的数据集(“低系数加权数据集”),可以通过设计调制器来实现降低的功耗,使得调制器在较低功率状态下操作以用于使用较小系数(在数据集中更频繁地出现)的计算,并且在较高功率状态下工作以用于使用较大系数(在在数据集中不经常出现)的运算。
一些光幅度调制器使用相对高的功率来通过小的调制值来调制光信号。例如,对于相干不敏感的光幅度调制器,接近零的调制值可能需要相对高的调制器功率,例如对于电吸收调制器,该电吸收调制器用相对高的电流驱动基于二极管的吸收器以实现光功率的大吸收,从而减小调制的光信号的光幅度。对于相干敏感光学幅度调制器,接近零的调制值可能需要相对高的调制器功率,例如对于MZI调制器,其用相对高的电流驱动基于二极管的移相器,以提供用于相消光学干涉的两个MZI臂之间的相对相移,从而减小调制信号的光学幅度。
光学幅度调制器可以被配置为克服这种功率关系并实现如图42所示的调制器功率,其将低功率调制器状态分配给接近零的调制值。例如,如图43所示,MZI调制器4300可以被配置为具有不对称臂,该不对称臂提供内置的无源相对相移(例如,接近180度的相移),使得对于相消性光学干涉仅需要小的有源相对相移,从而低的调制器功率。调制器4300包括输入分光器4302,其对入射光信号进行分光以向第一臂提供50%的功率,并向第二臂提供50%功率。第一臂中的有源移相器4304提供了一种使用可变相移在可能值的范围内改变调制值的方式(在本例中用于0和1之间的无符号调制值)。可变相移是基于所施加的电信号的幅度来确定的,该电信号需要一定量的所提供的电功率(例如,由在第一臂的波导内或附近的掺杂半导体材料形成的基于二极管的相移器)。第二臂中的无源移相器4306提供第一臂和第二臂之间的相对相移,即使当没有电功率被供应到调制器4300时也是如此。例如,具有高折射率的光学材料可以被配置为在臂之间施加180度的相对相移,使得输出光学组合器4308提供光学干涉,使得没有显著的光功率耦合到其输出。有源移相器和无源移相器可以实现多种替代配置,包括但不限于:有源移相器与无源移相器都可以在一个臂中,而另一个臂没有调制器或移相器;两个臂都可以具有有源移相器和无源移相器(在推挽布置中);或者两个臂都可以具有有源移相器,而一个臂可以具有无源移相器。
可替换地,根据本文所述的对称差分配置配置的MZI调制器可用于仅使用小的有源相对相移(并因此使用低调制器功率)来提供接近零的系数。例如,图22A示出了使用根据对称差分配置配置的MZI构建的光学幅度调制器,其中如图22B所示检测光学输出。低调制功率用于(使用光学幅度调制)与具有低幅度(即绝对值)的调制值相乘。特别地,施加到相位调制器2204的低功率对应于通过低幅度调制值的调制,从而在耦合器2206的输出中产生对应的接近平均(例如,接近50%/50%)的分光,并且在节点2216处产生表示相乘结果的低幅度电流。对称差分配置还具有能够提供-1到+1之间的带符号调制值的优点(如下面更详细描述的)。虽然该实施方式在MZI的单臂中使用相位调制器,但是其他实施方式可以具有其他布置,例如在两个臂中都具有相位调制器的推挽布置,该相位调制器提供相反符号的相移。
图42中所示的示例功率分布示出了用于实现零的调制值的零调制功率,但是在其他示例中,在零的调制数值处可能存在剩余的低但非零的调制功率。对于这些低系数加权数据集,通常可以通过使用调制器来实现降低的功耗,所述调制器被设计为使得它们通过使用相对于调制值的绝对值增加的功率的调制值来调制光信号。调制功率的精确形状作为调制值的函数,随着调制值在幅度上的增加,对于不同的实现方式可能是不同的,并且不一定是线性增加。在光幅度调制器中可能存在有助于总功耗的不同功耗元件。在一些实施方式中,调制器被设计为使得它们使用相对于调制值的绝对值单调增加的功率通过调制值来调制光信号。
在一些情况下,阵列144的调制器和/或OMM 150可以具有非线性传递函数。例如,MZI光调制器在所施加的控制电压与其传输之间可以具有非线性关系(例如,正弦相关性)。在这种情况下,可以基于调制器的非线性传递函数来调整或补偿第一DAC控制信号,使得可以保持数字输入向量和生成的光学输入向量之间的线性关系。在确保到OMM单元150的输入是数字输入向量的精确表示时,保持这种线性通常是重要的。在一些实施方式中,第一DAC控制信号的补偿可以由控制器10110通过查找表来执行,该查找表将数字输入向量的值映射到将由DAC单元130输出的值,使得得到的调制光信号与数字输入向量元素成线性比例。可以通过表征调制器的非线性传递函数并计算非线性传递函数的逆函数来生成查找表。
在一些实施方式中,调制器的非线性和所产生的光学输入向量中的非线性可以通过ANN计算算法来补偿。
由调制器阵列144生成的光输入向量被输入到OMM单元150。光输入向量可以是N个空间分离的光信号,每个光信号具有与数字输入向量的元素相对应的光功率。光信号的光功率通常在例如1μW到10mW的范围内。OMM单元150接收光输入向量,并基于其内部配置执行N x N矩阵乘法。内部配置由DAC单元130产生的电信号控制。例如,DAC单元130从控制器10110接收第二DAC控制信号,该信号对应于将由OMM单元150实现的神经网络权重。DAC单元130基于第二DAC控制信号生成权重控制信号,该权重控制信号是适合于控制OMM单元150内的可重新配置元件的模拟信号。模拟信号可以是电压或电流,例如,取决于OMM单元150的重新配置元件的类型。电压的幅度可以在例如0.1V到10V的范围内,电流的幅度可以从例如100μA到10mA的范围内。
调制器阵列144可以以与可重新配置OMM单元150的重新配置速率不同的调制速率来操作。由调制器阵列144产生的光输入向量以光速的大致比例(例如:光速的80%、50%或25%)传播通过OMM单元,这取决于OMM单元150的光学特性(例如:有效折射率(effectiveindex))。对于典型的OMM单元150,光输入向量的传播时间在1到数10皮秒的范围内,其对应于处理速率的数10到数100GHz。如此一来,光处理器140可以执行矩阵乘法操作的速率部分地受到可以产生光输入向量的速率的限制。具有数10GHz的带宽的调制器是容易获得的,并且具有超过100GHz的带宽的调制器正在开发。如此一来,例如,调制器阵列144的调制速率可以在5GHz、8GHz或数10GHz至数100GHz的范围内。为了以这样的调制速率维持调制器阵列144的操作,控制器10110的集成电路可被配置以大于或等于例如5GHz、8GHz、10GHz、20GHz、25GHz、50GHz或100GHz的速率来输出用于DAC单元130的控制信号。
取决于由OMM单元150实现的可重新配置组件的类型,OMM单元150的重新配置速率可以明显慢于调制速率。例如,OMM单元150的可重新配置组件可以是热光型,其使用微加热器来调整OMM单元150的光波导的温度,其反过来影响OMM单元150内的光信号的相位并且导致矩阵乘法。由于与结构的加热和冷却相关的热时间常数(thermal time constant),重新配置速率可以被限制为数100kHz至数10MHz。如此一来,用于控制调制器阵列144的调制器控制信号和用于重新配置OMM单元150的权重控制信号可能具有显著不同的速度要求。此外,调制器阵列144的电特性可以与OMM单元150的可重新配置组件的电特性显著不同。
为了适应调制器控制信号和权重控制信号的不同特性,在一些实施例中,DAC单元130可包括第一DAC子单元132和第二DAC子单元134。第一DAC子单元132可被具体布置以产生调制器控制信号,第二DAC子单元134可被具体布置以产生权重控制信号。例如,调制器阵列144的调制速率可以是25GHz,并且第一DAC子单元132可具有每秒25千兆采样(giga-samples per second;GSPS)的每信道输出更新速率(per-channel output update rate)和8位或更高的分辨率。OMM单元150的重新配置速率可以是1MHz,并且第二DAC子单元134可具有每秒1兆采样(mega-samples per second;MSPS)的输出更新速率和10位的分辨率。实现分开的第一DAC子单元132和第二DAC子单元134允许针对相应信号独立优化DAC子单元,这可以降低DAC单元130的总功率消耗、复杂性、成本或其组合。值得注意的是,虽然第一DAC子单元132和第二DAC子单元134被描述为DAC单元130的子组件,但是通常来说,第一DAC子单元132和第二DAC子单元134可以集成成在公共芯片(common chip)上,或者可以实现为分开的芯片。
基于第一DAC子单元132和第二DAC子单元134的不同特性,在一些实施例中,存储单元10120可包括第一存储子单元和第二存储子单元。第一存储子单元可以是专用于储存输入数据集和数字输入向量的存储器,并且可具有足以支持调制速率的操作速度。第二存储子单元可以是专用于储存神经网络权重的存储器,并且可以具有足以支持OMM单元150的重配置速率的操作速度。在一些实施例中,第一存储子单元可使用SRAM来实施,并且第二存储子单元可使用DRAM来实施。在一些实施例中,第一存储子单元和第二存储子单元可使用DRAM来实施。在一些实施例中,第一存储单元可实施作为控制器10110的一部分或作为控制器110的缓存(cache)。在一些实施例中,第一和第二存储子单元可以由单一物理存储装置作为不同的地址空间来实施。
OMM单元150输出长度N的光输出向量,其对应于光输入向量和神经网络权重的N×N矩阵乘法的结果。OMM单元150耦合至检测单元146,检测单元146被配置以产生对应光输出向量的N个光信号的N个输出电压。例如,检测单元146可包括N个光电检测器的阵列(其被配置以吸收光信号并产生光电流)以及N个跨阻放大器的阵列(其被配置以将光电流转换成输出电压)。可以基于调制器阵列144的调制速率来布置光电检测器和跨阻放大器的带宽。光电检测器可以基于所检测的光输出向量的波长由各种材料形成。用于光电检测器的材料的示例包括锗、硅锗合金和铟镓砷(InGaAs)。
检测单元146耦合到ADC单元160。ADC单元160被配置为将N个输出电压转换为N个数字化的光学输出,其是输出电压的量化数字表示。例如,ADC单元160可以是N通道ADC。控制器10110可以从ADC单元160获得与光学矩阵乘法单元150的光学输出向量相对应的N个数字化光学输出。控制器10110可以从N个数字化的光学输出中形成长度为N的数字输出向量,该数字输出向量对应于长度N的输入数字向量的N×N矩阵相乘的结果。
可以以各种方式集成ANN计算系统10100的各种电气组件。例如,控制器10110可以是在半导体晶粒上制造的专用集成电路。诸如存储单元10120、DAC单元10130、ADC单元160或其组合的其它电气组件可以单片集成在其上制造控制器10110的半导体晶粒上。作为另一示例,两个或多个电气组件可以集成为片上系统(SoC)。在SoC实现中,控制器10110、存储单元10120、DAC单元10130和ADC单元160可以被制造在对应的晶粒上,并且对应的管脚可以被集成在提供集成组件之间的电连接的公共平台(例如,中介层)上。这样的SoC方法可以允许在ANN计算系统10100的电子组件之间的数据传输相对于组件被单独放置并路由在印刷电路板(PCB)上的方法更快,从而提高ANN计算系统10100的操作速度。此外,SoC方法可以允许使用针对不同电气组件优化的不同制造技术,这可以提高不同组件的性能,并且与单片集成方法相比降低总体成本。虽然已经描述了控制器10110、存储单元10120、DAC单元10130和ADC单元160的集成,但是通常,由于各种原因,例如性能或成本,可以集成组件的子集,而将其他组件实现为分立组件。例如,在一些实现中,存储单元10120可以作为控制器10110内的功能块与控制器10110集成。
ANN计算系统10100的各种光学元件也可以以各种方式集成。ANN计算系统10100的光学元件的示例包括激光器单元142、调制器阵列144、OMM单元150和检测单元146的光电探测器。这些光学组件可以以各种方式集成以提高性能和/或降低成本。在基于化合物半导体材料系统(例如,诸如InP的III-V族化合物半导体)形成的光子集成电路上,激光器、诸如电吸收调制器的调制器、波导和光电探测器可以单片集成在单个晶粒上。这种单片集成方法可以降低对齐各种离散光学组件的输入和输出的复杂性,这可能需要从亚微米到几微米的对齐精度。作为另一示例,激光单元142的激光源可以在化合物半导体晶粒上制造,而激光单元142、调制器阵列144、OMM单元150和检测单元146的光电探测器可以在硅晶粒上制作。在硅晶圆上制造的PIC(可称为硅光子学技术)通常相对于基于III-V族的PICs具有更大的集成密度、更高的光刻分辨率和更低的成本。这种更大的集成密度在OMM单元150的制造中可能是有益的,因为OMM单元50通常包括10到100个光学组件,例如功率分配器和移相器。此外,硅光子学技术的更高光刻分辨率可以减少OMM单元150的制造变化,从而提高OMM单元的精度。
ANN计算系统10100可以以各种形式因子来实现。例如,ANN计算系统10100可以被实现为插入主计算机的协同处理器。这样的系统10100可以具有例如PCI express卡的形状因子,并且通过PCIe总线与主机计算机通信。主计算机可以主控多个协处理器类型的ANN计算系统10100,并且通过网络连接到计算机10102。这种类型的实现可能适合在云数据中心中使用,其中服务器机架可以专用于处理从其他计算机或服务器接收的ANN计算请求。作为另一示例,协处理器类型的ANN计算系统10100可以直接插入到发出ANN计算请求的计算机10102中。
在一些实施方式中,ANN计算系统10100可以集成到需要实时ANN计算能力的物理系统上。例如,严重依赖实时人工智能任务的系统,如自动驾驶车、自主无人机、物体或面部识别安全摄像头以及各种物联网(IoT)设备,可以受益于将ANN计算系统10100与此类系统的其他子系统直接集成。直接集成ANN计算系统10100可以在互联网连接较差或没有互联网连接的设备中实现实时人工智能,并提高任务关键型人工智能系统的可靠性和可用性。
虽然DAC单元10130和ADC单元160被示出为耦合到控制器10110,但是在一些实施方式中,DAC单元10130、ADC单元160或两者可以替代地或附加地耦合到存储单元10120。例如,DAC单元10130或ADC单元160的直接存储器存取(DMA)操作可以减少控制器10110的计算负担,并减少从存储单元10120读取和写入存储单元1012的延迟,从而进一步提高ANN计算单元10100的操作速度。
图47A示出了用于执行ANN计算的过程10200的示例的流程图。过程10200的步骤可以由控制器10110来执行。在一些实现中,过程10200的各个步骤可以并行、组合、循环或以任何顺序运行。
在10210,接收包括输入数据集和第一多个神经网络权重的人工神经网络(ANN)计算请求。输入数据集包括第一数字输入向量。第一数字输入向量是输入数据集的子集。例如,它可以是图像的子区域。ANN计算请求可以由诸如计算机10102之类的各种实体生成。计算机可以包括各种类型的计算设备中的一个或多个,例如个人计算机、服务器计算机、车辆计算机和飞行计算机。ANN计算请求通常是指向ANN计算系统10100通知或通知要执行的ANN计算的电信号。在一些实施方式中,ANN计算请求可以被划分为两个或多个信号。例如,第一信号可以查询ANN计算系统10100以检查系统10100是否准备好接收输入数据集和第一多个神经网络权重。响应于系统10100的肯定确认,计算机可以发送包括输入数据集和第一多个神经网络权重的第二信号。
在10220,存储输入数据集和第一多个神经网络权重。控制器10110可以将输入数据集和第一多个神经网络权重存储在存储单元10120中。将输入数据集和第一多个神经网络权重存储在存储单元10120中可以允许在ANN计算系统10100的操作中的灵活性,例如,这可以提高系统的整体性能。例如,通过从存储单元10120检索输入数据集的期望部分,可以将输入数据集划分为具有设置大小和格式的数字输入向量。输入数据集的不同部分可以按各种顺序进行处理,或者被打乱,以允许执行各种类型的ANN计算。例如,在输入和输出矩阵大小不同的情况下,混洗可以允许通过块矩阵乘法技术进行矩阵乘法。作为另一示例,将输入数据集和第一多个神经网络权重存储在存储单元10120中可以允许由ANN计算系统10100对多个ANN计算请求进行排队,这可以允许系统10100在没有不活动周期的情况下以其全速维持操作。
在一些实现中,输入数据集可以存储在第一存储器子单元中,并且第一多个神经网络权重可以存储在第二存储器子单元。
在10230,基于第一数字输入向量生成第一多个调制器控制信号,并且基于第一多个神经网络权重生成第一多多个权重控制信号。控制器10110可以向DAC单元10130发送第一DAC控制信号,用于生成第一多个调制器控制信号。DAC单元10130基于第一DAC控制信号生成第一多个调制器控制信号,并且调制器阵列144生成表示第一数字输入向量的光输入向量。
第一DAC控制信号可以包括要由DAC单元10130转换成第一多个调制器控制信号的多个数字值。多个数字值通常与第一数字输入向量相对应,并且可以通过各种数学关系或查找表进行关联。例如,多个数字值可以与第一数字输入向量的元素的值成线性比例。作为另一示例,多个数字值可以通过查找表与第一数字输入向量的元素相关,该查找表被配置为保持数字输入向量与调制器阵列144生成的光输入向量之间的线性关系。
控制器10110可以向DAC单元10130发送第二DAC控制信号,用于生成第一多个权重控制信号。DAC单元10130基于第二DAC控制信号产生第一多个权重控制信号,OMM单元150根据第一多个权值控制信号重新配置,实现与第一多个神经网络权值相对应的矩阵。
第二DAC控制信号可以包括要由DAC单元10130转换成第一多个权重控制信号的多个数字值。多个数字值通常与第一多个神经网络权重相对应,并且可以通过各种数学关系或查找表进行关联。例如,多个数字值可以与第一多个神经网络权重成线性比例。作为另一示例,可以通过对第一多个神经网络权重执行各种数学操作来计算多个数字值,以生成权重控制信号,该权重控制信号可以配置OMM单元150执行与第一多个神经元网络权重相对应的矩阵乘法。
在一些实现中,表示矩阵M的第一多个神经网络权重可以通过奇异值分解(SVD)方法分解为M=USV*,其中U是MxM酉矩阵,S是对角线上具有非负实数的MxN对角矩阵,并且V*是NxN酉矩阵V的复共轭。在这种情况下,第一多个权重控制信号可以包括与矩阵V相对应的第一多个OMM单元控制信号和与矩阵S相对应的第二多个OMM单元控制信号。此外,OMM单元150可以被配置为具有被配置为实现矩阵V的第一OMM子单元、被配置为实施矩阵S的第二OMM子单元和被配置为实现矩阵U的第三OMM子模块,使得OMM单元150整体实现矩阵M。标题为“用于光学神经网络的装置和方法”的美国专利公开US2017/035293 A1中进一步描述了SVD方法,其通过引用完全并入本文。
在10240,获得与光学矩阵乘法单元的光学输出向量相对应的第一多个数字化光学输出。由调制器阵列144产生的光输入向量由OMM单元150处理并变换为光输出向量。光学输出向量由检测单元146检测并转换成电信号,该电信号可由ADC单元160转换成数字化值。例如,控制器10110可以向ADC单元160发送转换请求,以开始将检测单元146输出的电压转换为数字化的光学输出。一旦转换完成,ADC单元160就可以将转换结果发送到控制器10110。或者,控制器10110可以从ADC单元160检索转换结果。控制器10110可以从数字化的光学输出形成与输入数字向量的矩阵相乘的结果相对应的数字输出向量。例如,数字化的光学输出可以被组织或级联为具有向量格式。
在一些实施方式中,ADC单元160可以被设置或控制为基于控制器10110向DAC单元10130发出的DAC控制信号来执行ADC转换。例如,ADC转换可以被设置为在DAC单元10130生成调制控制信号之后的预设时间开始。ADC转换的这种控制可以简化控制器10110的操作并减少必要的控制操作的数量。
在10250,对第一数字输出向量执行非线性变换以生成第一变换后的数字输出向量。神经网络的一个节点或人工神经元通过首先对从前一层的节点接收到的信号进行加权和,然后对加权和进行非线性变换(“激活”)来产生输出。各种类型的ANN可以实现各种类型的可微分非线性变换。非线性变换函数的例子包括整流线性单元(RELU)函数、Sigmoid函数、双曲正切函数、X^2函数和|X|函数。控制器10110对第一数字输出执行这种非线性变换,以生成第一变换后的数字输出向量。在一些实施方式中,非线性变换可以由控制器10110内的专用数字集成电路来执行。例如,控制器10110可以包括一个或多个模块或电路块,其特别适于加速一种或多种类型的非线性变换的计算。
在10260,存储第一变换后的数字输出向量。控制器10110可以将第一变换后的数字输出向量存储在存储单元10120中。在输入数据集被划分为多个数字输入向量的情况下,第一变换后的数字输出向量对应于输入数据集的一部分(例如第一数字输入向量)的ANN计算的结果。因此,存储第一变换后的数字输出向量允许ANN计算系统10100对输入数据集的其他数字输入向量执行并存储附加计算,以稍后聚合为单个ANN输出。
在10270,输出基于第一变换后的数字输出向量生成的人工神经网络输出。控制器10110生成ANN输出,其是通过由第一多个神经网络权重限定的ANN处理输入数据集的结果。在输入数据集被划分为多个数字输入向量的情况下,所生成的ANN输出是包括第一变换后的数字输出的聚合输出,但是可以进一步包括与输入数据集的其他部分相对应的附加变换后的数字输出。一旦产生了ANN输出,所产生的输出就被发送到发起ANN计算请求的计算机,例如计算机10102。
可以为实现过程10200的ANN计算系统10100限定各种性能指标。限定性能指标可以允许将实现光学处理器140的ANN计算系统10100的性能与替代地实现电子矩阵乘法单元的用于ANN计算的其他系统进行比较。在一个方面,可以部分地通过第一循环周期来指示可以执行ANN计算的速率,该第一循环周期被限定为在将输入数据集和第一多个神经网络权重存储在存储单元中的步骤10220与将第一变换后的数字输出向量存储在存储器单位中的步骤10260之间经过的时间。因此,该第一循环周期包括将电信号转换为光信号(例如,步骤10230)、在光域中执行矩阵乘法以及将结果转换回电域(例如,步骤10240)所花费的时间。步骤10220和10260都涉及将数据存储到存储单元10120中,这是在ANN计算系统10100和没有光学处理器140的常规ANN计算系统系统之间共享的步骤。这样,测量存储器到存储器事务时间的第一循环周期可以允许在ANN计算系统10100和没有光学处理器140的ANN计算系统(例如实现电子矩阵乘法单元的体系)之间进行ANN计算吞吐量的真实或公平的比较。
由于调制器阵列144可以产生光输入向量的速率(例如,25GHz)和OMM单元150的处理速率(例如>100GHz),用于执行单个数字输入向量的单个ANN计算的ANN计算系统10100的第一循环周期可以接近调制器阵列144的速度的倒数,例如。40ps,在考虑了与DAC单元10130的信号生成和ADC单元160的ADC转换相关联的延迟之后,第一循环周期可以例如小于或等于100ps、小于或等于200ps、小于等于500ps、小于或者等于1ns、小于或者相等2ns、小于或相等5ns、或者小于或等于10ns。
作为比较,通过电子矩阵乘法单元对Mx1向量和MxM矩阵进行乘法操作的执行时间通常与M^2-1处理器时钟周期成比例。对于M=32,这样的乘法将花费大约1024个周期,这在3GHz时钟速度下导致执行时间超过300ns,这比ANN计算系统100的第一循环周期慢几个数量级。
在一些实现中,过程10200还包括基于第一变换后的数字输出向量生成第二多个调制器控制信号的步骤。在某些类型的ANN计算中,单个数字输入向量可以通过同一个ANN重复传播或由同一个ANN处理。实现多遍处理的ANN可以称为递归神经网络(RNN)。RNN是一种神经网络,其中网络在第(k)次通过神经网络期间的输出被再循环回神经网络的输入,并在第(k+1)次通过期间用作输入。RNN可以在模式识别任务中具有各种应用,例如语音或手写识别。一旦生成第二多个调制器控制信号,过程10200可以从步骤10240进行到步骤10260,以完成第一数字输入向量通过ANN的第二次通过,根据在ANN计算请求中接收到的RNN的特性,变换后的数字输出作为数字输入向量的再循环可以重复预设数量的循环。
在一些实施方式中,过程10200还包括基于第二多个神经网络权重生成第二多组权重控制信号的步骤。在一些情况下,人工神经网络计算请求还包括第二多个神经网络权重。通常,除了输入层和输出层之外,ANN还具有一个或多个隐藏层。对于具有两个隐藏层的ANN,第二多个神经网络权重可以对应于例如ANN的第一层和ANN的第二层之间的连接性。为了通过ANN的两个隐藏层次处理第一数字输入向量,可以首先根据过程10200处理第一数字输入向量,直到步骤10260,在该处,通过ANN的第一隐藏层处理第一数字输入向量的结果被存储在存储单元10120中。然后,控制器10110重新配置OMM单元150,以执行对应于与ANN的第二隐藏层相关联的第二多个神经网络权重的矩阵乘法。一旦重新配置了OMM单元,过程10200可以基于第一变换后的数字输出向量生成多个调制器控制信号,其生成与第一隐藏层的输出相对应的更新的光学输入向量。更新后的光学输入向量随后由重新配置的OMM单元150处理,该单元对应于ANN的第二隐藏层。通常,可以重复所述步骤,直到数字输入向量已经通过ANN的所有隐藏层处理为止。
如前所述,在OMM单元150的一些实施方式中,OMM单元的重新配置速率可以明显慢于调制器阵列144的调制速率。在这种情况下,ANN计算系统10100的吞吐量可能受到在重新配置OMM单元150中花费的时间量的不利影响,在该时间量期间不能执行ANN计算。为了减轻OMM单元150的相对较慢的重新配置时间的影响,可以使用批处理技术,其中两个或多个数字输入向量在没有配置改变的情况下通过OMM单元传播,以在更大数量的数字输入向量上摊销重新配置时间。
图47B示出说明图47A的过程10200的一方面的图290。对于具有两个隐藏层的ANN,不是通过第一隐藏层处理第一数字输入向量,而是为第二隐藏层重新配置OMM单元150,通过重新配置的OMM单元处理第一数字输出向量,并对剩余的数字输入向量重复相同的操作,输入数据集的所有数字输入向量可以首先通过为第一隐藏层配置的OMM单元150(配置#1)进行处理,如图290的上部所示。一旦具有配置#1的OMM单元150处理了所有数字输入向量,则将OMM单元重新配置为配置#2,其对应于ANN的第二隐藏层。这种重新配置可能明显慢于OMM单元处理输入向量的速率。一旦OMM单元150被重新配置用于第二隐藏层,则来自前一隐藏层的输出向量可以由OMM单元150批处理。对于具有数万或数十万个数字输入向量的大型输入数据集,重新配置时间的影响可以减少大约相同的因子,这可以显著减少ANN计算系统100在重新配置中花费的时间部分。
为了实现批处理,在一些实现中,过程10200还包括以下步骤:通过DAC单元,基于第二数字输入向量生成第二多个调制器控制信号;从所述ADC单元获得与所述光学矩阵乘法单元的所述光学输出向量相对应的第二多个数字化光学输出,所述第二多个数字化光学输出形成第二数字输出向量;对所述第二数字输出向量执行非线性变换以生成第二变换后的数字输出向量;以及在存储单元中存储第二变换后的数字输出向量。例如,第二多个调制器控制信号的生成可以跟随步骤10260。此外,在这种情况下,步骤10270的ANN输出现在基于第一变换数字输出向量和第二变换数字输出向量。获取、执行和存储步骤类似于步骤10240到10260。
批处理技术是用于提高ANN计算系统10100的吞吐量的几种技术之一。用于提高ANN计算系统10100的吞吐量的另一技术是通过利用波分复用(WDM)并行处理多个数字输入向量。WDM是一种通过公共传播信道(例如OMM单元150的波导)同时传播不同波长的多个光信号的技术。与电信号不同,不同波长的光信号可以通过公共信道传播,而不会影响同一信道上不同波长的其他光信号。此外,可以使用诸如光复用器和解复用器之类的公知结构从公共传播信道添加(复用)或丢弃(解复用)光信号。
在ANN计算系统10100的情境中,可以独立地生成不同波长的多个光学输入向量,同时通过OMM单元150传播,并且独立地检测,以增强ANN计算系统10100的吞吐量。参照图46F,示出了波分复用(WDM)人工神经网络(ANN)计算系统10104的示例的示意图。除非另有说明,否则WDM ANN计算系统10104类似于ANN计算系统1010。为了实现WDM技术,在ANN计算系统10104的一些实现中,激光器单元142被配置为生成多个波长,例如λ1、λ2和λ3。多个波长可以优选地由足够大的波长间隔分开,以允许在公共传播信道上容易地复用和解复用。例如,大于0.5nm、1.0nm、2.0nm、3.0nm或5.0nm的波长间隔可以允许简单的复用和解复用。另一方面,多个波长中的最短波长和最长波长之间的范围(“WDM带宽”)可以优选地足够小,使得OMM单元150的特性或性能在多个波长上保持基本相同。光学元件通常是色散的,这意味着它们的光学特性随着波长的变化而变化。例如,MZI的功率分配比可以随波长变化。然而,通过将OMM单元150设计为具有足够大的操作波长窗口,并且通过将波长限制在该操作波长窗口内,由OMM单元在每个波长处输出的光输出向量可以是由OMM单元150实现的矩阵乘法的足够精确的结果。工作波长窗口可以是例如1nm、2nm、3nm、4nm、5nm、10nm或20nm。
图39A示出了可用于调制光信号的幅度的马赫-曾德尔调制器3900的示例的图。马赫-曾德尔调制器3900包括两个1x2端口多模干扰耦合器(MMI_1x2)3902a和3902b、两个平衡臂3904a和3904b以及一个臂中的移相器3906(或每个臂中的一个移相器)。当电压通过信号线3908施加到一个臂中的移相器时,在两个臂3904a和3904b之间将存在将转换为幅度调制的相位差。1x2端口多模干涉耦合器3902a和3902b以及移相器3906被配置为宽带光子组件,并且两个臂3904a和3904b的光路长度被配置为相等。这使得马赫-曾德尔调制器3900能够在宽波长范围内工作。
图39B是曲线图3910,其示出了对于波长1530nm、1550nm和1570nm使用图39A中所示配置的马赫-曾德尔调制器3900的强度-电压曲线。曲线3910显示马赫-曾德尔调制器3900对于1530nm至1570nm范围内的不同波长具有相似的强度-电压特性。
返回参考图46F,WDM ANN计算系统104的调制器阵列144包括被配置为生成多个光输入向量的光调制器组,每个组对应于多个波长中的一个,并且生成具有对应波长的对应光输入向量。例如,对于具有长度为32和3个波长(例如,λ1、λ2和λ3)的光学输入向量的系统,调制器阵列144可以具有3组,每组32个调制器。此外,调制器阵列144还包括光复用器,该光复用器被配置为将多个光输入向量组合成包括多个波长的组合光输入向量。例如,对于光输入向量的每个元件,光复用器可以将三个不同波长的三组调制器的输出组合成单个传播信道,例如波导。因此,返回到上面的示例,组合的光输入向量将具有32个光信号,每个信号包括3个波长。
此外,WDM ANN计算系统10104的检测单元146还被配置为对多个波长进行解复用并生成多个解复用的输出电压。例如,检测单元146可以包括解复用器,该解复用器被配置为解复用包括在多波长光学输出向量的32个信号中的每一个信号内的三个波长,并且将3个单波长光学输出向量路由到耦合到三组跨阻放大器的三组光电探测器。
此外,WDM ANN计算系统104的ADC单元160包括被配置为转换检测单元146的多个解复用输出电压的ADC组。每个组对应于多个波长中的一个,并产生各自的数字化解复用光学输出。例如,ADC组可以耦合到检测单元146的跨阻放大器组。
控制器10110可以实现类似于过程10200的方法,但是扩展为支持多波长操作。例如,该方法可以包括从ADC单元160获得多个数字化解复用的光学输出的步骤,该多个数字化的解复用的光输出形成多个第一数字输出向量,其中多个第一数字化输出向量中的每一个对应于多个波长中的一个;对所述多个第一数字输出向量中的每一个执行非线性变换以产生多个经变换的第一数字输出向量;以及在存储单元中存储多个变换后的第一数字输出向量。
在一些情况下,可以专门设计ANN,并且可以专门形成数字输入向量,使得可以在不进行解复用的情况下检测多波长光学输出向量。在这种情况下,检测单元146可以是不对多波长光学输出向量的多个波长进行解复用的波长不敏感的检测单元。这样,检测单元146的每个光电探测器有效地将光信号的多个波长求和为单个光电流,并且由检测单元146输出的每个电压对应于多个数字输入向量的矩阵乘法结果的逐元素加和。
到目前为止,作为ANN计算的一部分执行的加权和的非线性变换是由控制器10110在数字域中执行的。在一些情况下,非线性变换可能是计算密集型或耗电型的,显著增加了控制器10110的复杂性,或者以其他方式限制了ANN计算系统10100在吞吐量或功率效率方面的性能。因此,在ANN计算系统的一些实现中,可以通过模拟电子器件在模拟域中执行非线性变换。
图48A示出了ANN计算系统300的示例的示意图。模拟非线性单元310被布置在检测单元146和ADC单元160之间。模拟非线性单元310被配置为接收来自检测单元146的输出电压,应用非线性传递函数,并将变换后的输出电压输出到ADC单元160。
当ADC单元160接收已经由模拟非线性单元310非线性变换的电压时,控制器10110可以从ADC单元160获得与变换后的输出电压相对应的变换后的数字化输出电压。因为从ADC单元160获得的数字化输出电压已经被非线性变换(“激活”),所以可以省略控制器10110的非线性变换步骤,从而减少控制器10110所承担的计算负担。直接从ADC单元160获得的第一变换电压然后可以作为第一变换数字输出向量存储在存储单元10120中。
模拟非线性单元310可以以各种方式来实现。例如,反馈配置中的高增益放大器、具有可调参考电压的比较器、二极管的非线性IV特性、二极管的击穿行为、可变电容器的非线性CV特性或可变电阻器的非线性IV特性可以用于实现模拟非线性单元310。
模拟非线性单元310的使用可以通过减少要在数字域中执行的步骤来提高ANN计算系统300的性能,例如吞吐量或功率效率。将非线性变换步骤移出数字域可以允许ANN计算系统的操作中的额外灵活性和改进。例如,在递归神经网络中,OMM单元150的输出被激活,并且再循环回到OMM单元的输入。激活由ANN计算系统10100中的控制器10110执行,这需要在每次通过OMM单元150时对检测单元146的输出电压进行数字化。然而,因为激活现在是在ADC单元160数字化之前执行的,所以可以减少执行递归神经网络计算所需的ADC转换的数量。
在一些实施方式中,模拟非线性单元310可以作为非线性ADC单元集成到ADC单元160中。例如,非线性ADC单元可以是具有非线性查找表的线性ADC单元,该非线性查找表将线性ADC单元的线性数字化输出映射为期望的非线性变换的数字化输出。
图48B示出了ANN计算系统302的示例的示意图。ANN计算系统302类似于图48A的系统300,但不同之处在于它还包括模拟存储单元320。模拟存储单元320耦合到DAC单元10130(例如,通过第一DAC子单元132)、调制器阵列144和模拟非线性单元310。模拟存储单元320包括复用器,复用器具有耦合到DAC单元10130的第一输入和耦合到模拟非线性单元310的第二输入。这允许模拟存储单元320从DAC单元10130或模拟非线性单元310接收信号。模拟存储单元320被配置为存储模拟电压并输出所存储的模拟电压。
模拟存储单元320可以以各种方式来实现。例如,电容器阵列可以用作模拟电压存储元件。模拟存储单元320的电容器可以通过充电电路充电到输入电压。可以基于从控制器10110接收的控制信号来控制输入电压的存储。电容器可以与周围环境电隔离,以减少导致电容器不希望的放电的电荷泄漏。附加地或可替换地,反馈放大器可以用于维持存储在电容器上的电压。电容器的存储电压可以由缓冲放大器读出,这允许在输出存储电压的同时保留电容器存储的电荷。模拟存储单元320的这些方面可以类似于采样保持电路的操作。缓冲放大器可以实现用于驱动调制器阵列144的调制器驱动器的功能。
现在将描述ANN计算系统302的操作。由DAC单元10130(例如,由第一DAC子单元132)输出的第一多个调制器控制信号首先通过模拟存储单元320输入到调制器阵列144。在该步骤中,模拟存储单元320可以简单地传递或缓冲第一多个调制器控制信号。调制器阵列144基于第一多个调制器控制信号生成光输入向量,该光输入向量通过OMM单元150传播并且由检测单元146检测。检测单元146的输出电压通过模拟非线性单元310进行非线性变换。在这一点上,检测单元146的输出电压不是由ADC单元160数字化,而是由模拟存储单元320存储,然后将其输出到调制器阵列144以被转换成下一个光输入向量以通过OMM单元150传播。在控制器10110的控制下,可以在预设的时间量或预设的周期数内执行该循环处理。一旦对给定的数字输入向量完成了递归处理,模拟非线性单元310的变换输出电压就由ADC单元160转换。
模拟存储单元320的使用可以显著地减少在递归神经网络计算期间的ADC转换的数量,例如减少到给定数字输入向量的每个RNN计算的单个ADC转换。每个ADC转换需要一定的时间段,并且消耗一定的能量。这样,由ANN计算系统302进行的RNN计算的吞吐量可以高于由ANN计算系统100进行的RNN-计算的吞吐量。
递归神经网络计算的执行可以例如通过控制模拟存储单元320来控制。例如,控制器可以控制模拟存储单元320在特定时间存储电压,并在不同时间输出存储的电压。这样,控制器10110可以通过控制模拟存储单元320的存储和读出来控制信号从模拟存储单元310到调制器阵列144通过模拟非线性单元310并返回到模拟存储单元的循环。
因此,在一些实施方式中,ANN计算系统302的控制器10110可以执行以下步骤:基于生成第一多个调制器控制信号和第一多个权重控制信号,通过模拟存储单元存储模拟非线性单元的多个变换输出电压;通过模拟存储单元输出存储的变换后的输出电压;从所述ADC单元获得第二多个经变换的数字化输出电压,所述第二多种经变换的量化输出电压形成第二经变换后的数字输出向量;以及在存储单元中存储第二变换后的数字输出向量。
要由ANN计算系统处理的输入数据集通常包括分辨率大于1比特的数据。例如,灰度数字图像的典型像素可以具有8比特的分辨率,即256个不同级别。在光域中表示和处理该数据的一种方式是将像素的256个不同强度级别编码为输入到OMM单元150的光信号的256个不相同功率级别。光信号本质上是模拟信号,因此容易受到噪声和检测误差的影响。返回参考图46A,为了在整个ANN计算系统10100中保持数字输入向量的8比特分辨率,并且在ADC单元160的输出处生成真正的8比特数字化光学输出,信号链的每个部分可以优选地被设计为再现并保持8比特分辨率。
例如,DAC单元10130可以优选地被设计为支持将8比特数字输入向量转换为至少8比特分辨率的调制器控制信号,使得调制器阵列144可以生成忠实地表示数字输入向量的8比特的光学输入向量。通常,调制器控制信号可能需要具有超过数字输入向量的8比特的附加分辨率,以补偿调制器阵列144的非线性响应。此外,OMM单元150的内部配置可以优选地充分稳定,以确保光学输出向量的值不被OMM单元的配置中的任何波动破坏。例如,OMM单元150的温度可能需要稳定在例如5度、2度、1度或0.1度内。此外,检测单元146可以优选地具有足够低的噪声以不破坏光学输出向量的8比特分辨率,并且ADC单元160可以优选地被设计为支持具有至少8比特分辨率的模拟电压的数字化。
各种电子元件的功耗和设计复杂性通常随着比特分辨率、操作速度和带宽而增加。例如,作为一阶近似,ADC单元160的功耗可以随采样率线性地缩放,并且按2^N的因子缩放,其中N是转换结果的比特分辨率。此外,DAC单元10130和ADC单元160的设计考虑通常导致采样率和比特分辨率之间的折衷。因此,在一些情况下,可能需要在保持ANN计算输出的分辨率的同时以低于输入数据集的分辨率的比特分辨率内部操作的ANN计算系统。
参照图49A,示出了具有1比特内部分辨率的人工神经网络(ANN)计算系统400的示例的示意图。ANN计算系统400类似于ANN计算系统10100,但不同之处在于DAC单元10130现在由驱动器单元430代替,ADC单元160现在由比较器单元460代替。
驱动器单元430被配置为生成1比特调制器控制信号和多位权重控制信号。例如,驱动器单元430的驱动器电路可以直接接收来自控制器10110的二进制数字输出,并将二进制信号调节为适于驱动调制器阵列144的两水平电压或电流输出。
比较器单元460被配置为将检测单元146的输出电压转换为数字化的1比特光学输出。例如,比较器单元460的比较器电路可以从检测单元146接收电压,将电压与预设阈值电压进行比较,并且当接收到的电压分别小于或大于预设阈值电压时输出数字0或1。
参照图49B,示出了ANN计算系统400的操作的数学表示。现在将参照图49B描述ANN计算系统400的操作。对于要由ANN计算系统400执行的给定ANN计算,存在对应的数字输入向量V和神经网络权重矩阵U。在该示例中,输入向量V是具有元素V0到V3的长度为4的向量,并且矩阵U是具有权重U00到U33的4x4矩阵。向量V的每个元素具有4比特的分辨率。每个4比特向量元素具有分别对应于2^0到2^3位置的第0位(bit0)到第3位(bit3)。因此,通过2^0*bit0+2^1*bit1+2^2*bit2+2^3*bit3的总和来计算4比特向量元素的十进制(以10为基数)值。因此,如图所示,控制器10110可以模拟地将输入向量V分解为Vbit0到Vbit3。
然后可以通过执行1比特向量的一系列矩阵乘法,然后对单个矩阵乘法结果求和来执行某些ANN计算。例如,通过驱动器单元430生成与4个1比特输入向量相对应的4个1比特调制器控制信号的序列,可以将分解后的输入向量Vbit0至Vbit3中的每一个与矩阵U相乘。这又产生4个1比特光学输入向量的序列,该序列通过OMM单元150传播,OMM单元被配置为通过驱动器单元430来实现矩阵U的矩阵乘法。然后,控制器10110可以从比较器单元460获得与4个1比特调制器控制信号的序列相对应的4个数字化1比特光学输出的序列。
在将4比特向量分解为4个1比特向量的情况下,每个向量应由ANN计算系统400以四倍于单个4比特向量可由其他ANN计算系统(例如系统100)处理的速度进行处理,以保持相同的有效ANN计算吞吐量。这种增加的内部处理速度可以被视为将4个1比特向量时分复用到用于处理4比特向量的单个时隙中。所需的处理速度的增加可以至少部分地通过驱动器单元430和比较器单元460相对于DAC单元10130和ADC单元160的操作速度的增加来实现,因为信号转换过程的分辨率的降低通常导致可以实现的信号转换率的增加。
虽然在1比特操作中信号转换率增加了4倍,但是相对于4比特操作,所产生的功耗可以显著降低。如前所述,信号转换过程的功耗通常随比特分辨率呈指数缩放,而随转换率呈线性缩放。因此,每次转换的功率降低16倍可能是由于比特分辨率降低4倍,然后是由于提高的转换率而导致功率增加4倍。总体而言,在保持相同的有效ANN计算吞吐量的同时,通过ANN计算系统400可以实现操作功率的4倍降低,例如,相比ANN计算系统10100。
控制器10110然后可以通过将数字化的1比特光学输出中的每一个与2^0到2^3的对应权重相乘,从4个数字化的1比特光学输出构造4比特数字输出向量。一旦构造了4比特数字输出向量,则可以通过对构造的4比特数字输向量执行非线性变换来进行ANN计算,以生成变换的4比特的数字输出向量;以及将变换后的4比特数字输出向量存储在存储单元10120中。
可替换地或附加地,在一些实施方式中,4个数字化的1比特光学输出中的每一个可以被非线性地变换。例如,阶跃函数非线性函数可以用于非线性变换。变换后的4比特数字输出向量然后可以由非线性变换后的数字化1比特光学输出构造。
虽然已经示出和描述了单独的ANN计算系统400,但是一般来说,图46A的ANN操作系统10100可以被设计为实现与ANN计算系统400的功能类似的功能。例如,DAC单元10130可以包括被配置为生成1比特调制器控制信号的1比特DAC子单元,并且ADC单元160可以被设计为具有1比特的分辨率。这样的1比特ADC可以类似于比较器,或者实际上等效于比较器。
此外,虽然已经描述了具有1比特内部分辨率的ANN计算系统的操作,但是通常,ANN计算系统的内部分辨率可以降低到低于输入数据集的N比特分辨率的中间水平。例如,内部分辨率可以减少到2^Y比特,其中Y是大于或等于0的整数。
例如,图1的光子集成电路110,图2A至2G、3、4、5A-5E的光子集成电路224,图7的光子集成电路706,图8A、8B的光子集成电路802,图9A、9B的光子集成电路902,图10A-10C的光子集成电路1012,以及图11A、11B的光子集成电路224可以包括图18至24E中所示的一个或多个组件,图26的调制器阵列144a、OMM单元1 2604、调制器阵列144b和OMM单元22606,图27的调制器阵列1706a、OMM单元1 2704、调制器阵列1706b、OMM单元2 2706,图28的调制器阵列1706和OMM单元2804,图29的调制器阵列144和OMM单元2904,图30的调制器阵列144和OMM单元3004,图31的调制器阵列1706和OMM单元3104,图32A、32B的调制器阵列144和OMM单元3220,图35A、35B的调制器阵列144和OMM单元3520,图35C中所示的组件,图36、37、38的调制器阵列144和OMM单元3220,图41的系统4100的组件,以及图46A、46F、48A至49A的调制器阵列144和OMM单元150。例如,图2A、2B、2D-2G、3、7的数字存储模块234、图8A、8B的数字存储模件804、图9A、9C的数字存储模块906以及图11A、11B的数字存储组件234可以包括图26至32A、35A、36至38、46A、46F以及48A至49A的存储器单元10120中的一个或多个。例如,图2A至2G、3的模拟集成电路236和数字电子集成电路232、图7的混合数字/模拟芯片708、图8A、8B的混合数字/模拟芯片806、图9A、9B的混合数字或模拟芯片908以及图11A、11B的数字电子集成电路232可以包括图26至32A、35A、36至38、46A、46F和48A至49A的控制器10110中的一个或多个,一个或多个图26的DAC单元506,图27中的DAC单元1712、图28、29中的DAC单元132、图30、31中的DAC单元430、图32A中的DAC单元130、图32B中的DAC单元134、图35A中的DAC单元130和图35B中的DAC单元134、图36中的DAC单元130,图37中的DAC单元134,图38中的DAC单元430、图46A,46F,48A中的DAC单元130,图48B中的DAC单元134,图49A中的DAC单元430,以及图26-29中的ADC单元160中的一个或多个,图30,31的ADC单元460,图32A的ADC单元160,图35A,36,37的ADC单元160,图38的ADC单元460,图46A,46F,48A,48B的ADC单元160,以及图49A的ADC单元460。
本说明书中描述的主题和功能操作的实施例可以在数字电子电路中实现,或者在计算机软件、固件或硬件中实现,包括本说明书中公开的结构及其结构等价物,或者在它们中的一个或多个的组合中实现。本说明书中描述的主题的实施例可以使用编码在计算机可读介质上的计算机程序指令的一个或多个模块来实现,用于由数据处理设备执行或控制数据处理设备的操作。计算机可读介质可以是制造的产品,例如计算机系统中的硬盘驱动器或通过零售渠道销售的光盘,或者嵌入式系统。计算机可读介质可以被单独地获取,并且随后用计算机程序指令的一个或多个模块来编码,例如通过在有线或无线网络上递送计算机程序指令中的一个或者多个模块。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备或它中的一个或多个的组合。
计算机程序(也称为程序、软件、软件应用程序、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明性或过程性语言,并且可以以任何形式部署,包括作为独立程序或作为适合在计算环境中使用的模块、组件、子例程或其他单元。计算机程序不一定与文件系统中的文件相对应。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),可以存储在专用于所讨论程序的单个文件中,也可以存储在多个协调文件中(例如,存储一个或更多模块、子程序或代码部分的文件)。计算机程序可以被部署为在位于一个站点或分布在多个站点并通过通信网络互连的一台计算机或多台计算机上执行。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,该可编程处理器通过对输入数据进行操作并产生输出来执行一个或更多个计算机程序以执行功能。过程和逻辑流程也可以由专用逻辑电路执行,并且设备也可以实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
虽然本说明书包括许多实施细节,但这些不应被解释为对本发明的范围或可能要求保护的内容的限制,而是对本发明特定实施例的特征的描述。本说明书中在单独实施例的情境中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的情境中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管特征可以在上面被描述为以某些组合起作用,甚至最初被要求保护,但是在一些情况下,来自所要求保护的组合的一个或多个特征可以从该组合中切除,并且所要求的组合可以指向子组合或子组合的变体。
类似地,虽然在附图中以特定顺序描述了操作,但这不应被理解为要求以所示的特定顺序或顺序执行这样的操作,或者要求执行所有所示的操作,以获得期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。此外,不应将上述实施例中的各种系统组件的分离理解为在所有实施例中都需要这样的分离,并且应理解,所描述的程序组件和系统通常可以集成在单个软件产品中或封装到多个软件产品中。
图25示出了使用ANN计算系统500、700或900(在PCT申请PCT/US2020/023674中描述)执行ANN计算的方法2500的示例的流程图,ANN计算单元500、700和900包括一个或多个光学矩阵乘法单元或具有无源衍射元件的光学乘法单元,例如2D OMM单元、3D OMM单元或1D OM单元。过程2500的步骤可以至少部分地由控制器10110来执行。在一些实现中,方法2500的各种步骤可以并行、组合、循环或以任何顺序运行。
在2510,接收包括输入数据集的人工神经网络(ANN)计算请求。输入数据集包括第一数字输入向量。第一数字输入向量是输入数据集的子集。例如,它可以是图像的子区域。ANN计算请求可以由诸如计算机10102之类的各种实体生成。计算机可以包括各种类型的计算设备中的一个或多个,例如个人计算机、服务器计算机、车辆计算机和飞行计算机。ANN计算请求通常是指向ANN计算系统通知或通知要执行的ANN计算的电信号。在一些实施方式中,ANN计算请求可以被划分为两个或多个信号。例如,第一信号可以查询ANN计算系统以检查该系统是否准备好接收输入数据集。响应于系统的肯定确认,计算机可以发送包括输入数据集的第二信号。
在2520处,存储输入数据集。控制器10110可以将输入数据集存储在存储单元10120中。将输入数据集存储在存储单元10120中可以允许在ANN计算系统的操作中的灵活性,例如可以提高系统的整体性能。例如,通过从存储单元10120检索输入数据集的期望部分,可以将输入数据集划分为具有设置大小和格式的数字输入向量。输入数据集的不同部分可以按各种顺序进行处理,或者被打乱,以允许执行各种类型的ANN计算。例如,在输入和输出矩阵大小不同的情况下,混洗可以允许通过块矩阵乘法技术进行矩阵乘法。作为另一示例,将输入数据集存储在存储单元10120中可以允许由ANN计算系统对多个ANN计算请求进行排队,这可以允许系统在没有不活动周期的情况下以其全速维持操作。
在2530,基于第一数字输入向量生成第一多个调制器控制信号。控制器10110可以向DAC单元发送第一DAC控制信号,用于生成第一多个调制器控制信号。DAC单元基于第一DAC控制信号生成第一多个调制器控制信号,并且调制器阵列144生成表示第一数字输入向量的光输入向量。
第一DAC控制信号可以包括要由DAC单元转换成第一多个调制器控制信号的多个数字值。多个数字值通常与第一数字输入向量相对应,并且可以通过各种数学关系或查找表进行关联。例如,多个数字值可以与第一数字输入向量的元素的值成线性比例。作为另一示例,多个数字值可以通过查找表与第一数字输入向量的元素相关,该查找表被配置为保持数字输入向量与调制器阵列144生成的光输入向量之间的线性关系。
在一些实现中,2D OMM单元、3D OMM单元或1D OM单元被配置为基于光学输入向量和使用无源衍射元件实现的多个神经网络权重来执行光学矩阵处理或光学乘法。表示矩阵M的多个神经网络权重可以通过奇异值分解(SVD)方法分解为M=USV*,其中U是MxM酉矩阵,S是对角线上具有非负实数的MxN对角矩阵,并且V*是NxN酉矩阵V的复共轭。在这种情况下,无源衍射元件可以被配置为实现矩阵V、矩阵S和矩阵U,使得OMM单元502或708整体实现矩阵M。
在2540,获得与光学矩阵乘法单元或光学乘法的光学输出向量相对应的第一多个数字化光学输出。由调制器阵列144生成的光输入向量由2D OMM单元、3D OMM单元或1D OM单元处理,并被转换为光输出向量。光学输出向量由检测单元146检测并转换成电信号,该电信号可由ADC单元160转换成数字化值。例如,控制器10110可以向ADC单元160发送转换请求,以开始将检测单元146输出的电压转换为数字化的光学输出。一旦转换完成,ADC单元160就可以将转换结果发送到控制器10110。或者,控制器10110可以从ADC单元160检索转换结果。控制器10110可以从数字化的光学输出形成数字输出向量,该数字输出向量对应于输入数字向量的矩阵乘法或向量乘法的结果。例如,数字化的光学输出可以被组织或级联为具有向量格式。
在一些实施方式中,ADC单元160可以被设置或控制为基于控制器10110向DAC单元发出的DAC控制信号来执行ADC转换。例如,ADC转换可以被设置为在DAC单元生成调制控制信号之后的预设时间开始。ADC转换的这种控制可以简化控制器10110的操作并减少必要的控制操作的数量。
在2550,对第一数字输出向量执行非线性变换以生成第一变换后的数字输出向量。神经网络的一个节点或人工神经元通过首先对从前一层的节点接收到的信号进行加权和,然后对加权和进行非线性变换(“激活”)来产生输出。各种类型的ANN可以实现各种类型的可微分非线性变换。非线性变换函数的例子包括整流线性单元(RELU)函数、Sigmoid函数、双曲正切函数、X^2函数和|X|函数。控制器10110对第一数字输出执行这种非线性变换,以生成第一变换后的数字输出向量。在一些实施方式中,非线性变换可以由控制器10110内的专用数字集成电路来执行。例如,控制器10110可以包括一个或多个模块或电路块,其特别适于加速一种或多种类型的非线性变换的计算。
在2560,存储第一变换后的数字输出向量。控制器10110可以将第一变换后的数字输出向量存储在存储单元10120中。在输入数据集被划分为多个数字输入向量的情况下,第一变换后的数字输出向量对应于输入数据集的一部分(例如第一数字输入向量)的ANN计算的结果。因此,存储第一变换后的数字输出向量允许ANN计算系统对输入数据集的其他数字输入向量执行并存储附加计算,以稍后聚合为单个ANN输出。
在2570,输出基于第一变换后的数字输出向量生成的人工神经网络输出。控制器10110生成ANN输出,其是通过由第一多个神经网络权重限定的ANN处理输入数据集的结果。在输入数据集被划分为多个数字输入向量的情况下,所生成的ANN输出是包括第一变换后的数字输出的聚合输出,但是可以进一步包括与输入数据集的其他部分相对应的附加变换后的数字输出。一旦产生了ANN输出,所产生的输出就被发送到发起ANN计算请求的计算机,例如计算机10102。
2D OMM单元、3D OMM单元或1D OM单元可以表示神经网络的一个隐藏层的权重系数。如果神经网络具有多个隐藏层,则可以串联耦合额外的2D OMM单元、3D OMM单元或1DOM单元。图26示出了用于实现具有两个隐藏层的神经网络的ANN计算系统2600的示例。第一2D光学矩阵乘法单元2604表示第一隐藏层的权重系数,第二2D光学矩阵相乘单元2606表示第二隐藏层的权重系数。ANN计算系统2600包括控制器10110、存储单元10120、DAC单元506和光电处理器2602。光电处理器2602被配置为使用光学和电子组件来执行矩阵计算。
光电处理器2602包括第一激光器单元142a、第一调制器阵列144a、第一2D光学矩阵乘法单元2604、第一检测单元146a、第一模拟非线性单元310a、模拟存储单元320、第二激光器单元142b、第二调制器阵列144b、第二2D光学矩阵相乘单元2606、第二检测单元146b、第二模拟非线性单元310b和ADC单元160。第一激光器单元142、第一调制器阵列144a、第一检测单元146a、第一模拟非线性单元310a和模拟存储单元320的操作类似于图48B中所示的对应组件。模拟存储单元320的输出驱动第二调制器阵列144b,其调制来自第二激光器单元142b的激光以产生光学向量。来自第二调制器阵列144b的光学向量由第二2D OMM单元2606处理,第二2D OM单元2606执行矩阵乘法并生成由第二检测单元246b检测的光学输出向量。第二检测单元246b被配置为生成与来自第二2D OMM单元2606的光输出向量的光信号相对应的输出电压。ADC单元160被配置为将输出电压转换为数字化的输出电压。控制器10110可以从ADC单元160获得与第二2D OMM单元2606的光学输出向量相对应的数字化输出。控制器10110可以从数字化的输出形成数字输出向量,该数字输出向量对应于输入数字向量的第一矩阵乘法的结果的非线性变换的第二矩阵乘法结果。第二激光单元142b可以通过使用分光器与第一激光单元142a组合,以将来自第一激光单元142的一些光转向第二调制器阵列144b。
上述原理可以应用于实现具有三个或更多个隐藏层的神经网络,其中每个隐藏层的权重系数由对应的2D OMM单元表示。
图27示出了用于实现具有两个隐藏层的神经网络的ANN计算系统2700的示例。第一3D光学矩阵乘法单元2704表示第一隐藏层的权重系数,第二3D光学矩阵相乘单元2706表示第二隐藏层的权重系数。ANN计算系统2700包括控制器10110、存储单元10120、DAC单元10712和光电处理器2702。光电处理器2702被配置为使用光学和电子组件来执行矩阵计算。
光电处理器2702包括第一激光器单元10704a、第一调制器阵列10706a、第一3D光学矩阵乘法单元2704、第一检测单元10710a、第一模拟非线性单元310a、模拟存储单元320、第二激光器单元10704b、第二调制器阵列10706、第二模拟非线性单元310b和ADC单元160。第一激光器单元10704a、第一调制器阵列10706a、第一检测单元10710a、第一模拟非线性单元310a和模拟存储单元320的操作类似于图48B中所示的对应组件。模拟存储单元320的输出驱动第二调制器阵列10706b,其调制来自第二激光器单元10704b的激光以产生光学向量。第二3D OMM单元2706对来自第二调制器阵列10706b的光学向量进行处理,第二3D OMM单元2706执行矩阵乘法并生成由第二检测单元10710b检测到的光学输出向量。第二检测单元10710b被配置为生成与来自3D OMM单元2706的光学输出向量的光信号相对应的输出电压。ADC单元160被配置为将输出电压转换为数字化的输出电压。控制器10110可以从ADC单元160获得与第二3D OMM单元2706的光学输出向量相对应的数字化输出。控制器10110可以从数字化的输出形成数字输出向量,该数字输出向量对应于输入数字向量的第一矩阵乘法的结果的非线性变换的第二矩阵乘法结果。
上述原理可以应用于实现具有三个或更多个隐藏层的神经网络,其中每个隐藏层的权重系数由对应的3D OMM单元表示。
具有无源衍射光学元件的2D OMM单元502和3D OMM单元10708适合用于递归神经网络(RNN),其中网络在通过神经网络的第(k)次期间的输出被再循环回神经网络的输入并在第k+1次期间用作输入,使得神经网络的权重系数在多次传递期间保持相同。
图28示出了可以用于实现递归神经网络的神经网络计算系统2800的示例。系统2800包括光学处理器2802,其以类似于图48B的光学处理器140的方式操作,不同之处在于OMM单元150由2D OMM单元2804代替。2DOMM单元2804的神经网络权重是固定的,因此系统2800不需要在图48B的系统302中使用的第二DAC子单元134。
图29示出了可以用于实现递归神经网络的神经网络计算系统2900的示例。系统2900包括以与图48B的光学处理器140类似的方式操作的光学处理器2902。3D OMM单元2904的神经网络权重是固定的,因此系统2900不需要图48B的系统302中使用的第二DAC子单元134。
图30示出了具有1比特内部分辨率的人工神经网络计算系统3000的示例的示意图。ANN计算系统3000类似于图49A的ANN计算系统400,不同之处在于OMM单元150由2D OMM单元3004代替,并且省略了第二驱动器子单元434。ANN计算系统3000以类似于ANN计算系统400的方式操作,其中输入向量被分解成若干个1比特向量,然后可以通过执行1比特向量的一系列矩阵乘法,然后对各个矩阵乘法结果求和来执行特定的ANN计算。
图31示出了具有1比特内部分辨率的人工神经网络计算系统3100的示例的示意图。ANN计算系统3100类似于图49A的ANN计算系统400,不同之处在于OMM单元150由3D OMM单元3104代替,并且省略了第二驱动器子单元434。ANN计算系统3100以类似于ANN计算系统400的方式操作,其中输入向量被分解成若干个1比特向量,然后可以通过执行1比特向量的一系列矩阵乘法,然后对各个矩阵乘法结果求和来执行特定的ANN计算。
本说明书中描述的各种系统的一些背景信息在2018年6月5日提交的美国临时申请62/680,944、2018年10月12日提交的美国临时申请62/744,706和2019年6月4日提交的美国申请16/431,167中公开。上述提交的全部公开内容通过引用结合于此。
例如,光学复制分发网络可以包括多个分光器、多个定向耦合器或两者。例如,光学复制分发网络可以包括具有N个输出端口的级联定向耦合器,其中每个输出端口向光学复制分发网输出1/N的输入功率。
本说明书中描述的一些系统、组件和/或功能操作可以在数字电子电路中实现,或者在计算机软件、固件或硬件中实现,包括本说明书中公开的结构及其结构等价物,或者在它们中的一个或多个的组合中实现。本说明书中描述的主题的实施例可以使用编码在计算机可读介质上的计算机程序指令的一个或多个模块来实现,用于由数据处理设备执行或控制数据处理设备的操作。计算机可读介质可以是制造的产品,例如计算机系统中的硬盘驱动器或通过零售渠道销售的光盘,或者嵌入式系统。计算机可读介质可以被单独地获取,并且随后用计算机程序指令的一个或多个模块来编码,例如通过在有线或无线网络上递送计算机程序指令中的一个或者多个模块。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备或它们中的一个或多个的组合。
计算机程序(也称为程序、软件、软件应用程序、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明性或过程性语言,并且可以以任何形式部署,包括作为独立程序或作为适合在计算环境中使用的模块、组件、子例程或其他单元。计算机程序不一定与文件系统中的文件相对应。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),可以存储在专用于所讨论程序的单个文件中,也可以存储在多个协调文件中(例如,存储一个或更多模块、子程序或代码部分的文件)。计算机程序可以被部署为在位于一个站点或分布在多个站点并通过通信网络互连的一台计算机或多台计算机上执行。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,该可编程处理器通过对输入数据进行操作并产生输出来执行一个或更多个计算机程序以执行功能。过程和逻辑流程也可以由专用逻辑电路执行,并且设备也可以实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
虽然已经结合某些实施例描述了本公开,但是应当理解的是,本公开不限于所公开的实施例,相反,旨在覆盖包括在所附权利要求的范围内的各种修改和等效布置,该范围应给予最广泛的解释,以涵盖法律允许的所有此类修改和等效结构。
尽管本发明在所附权利要求中进行了限定,但是应当理解,本发明也可以根据以下实施例进行限定:
实施例1:一种组装光子计算系统的方法,所述方法包括:
将光子源附接到支撑结构,所述光子源包括:
第一激光晶粒,其在基板上且被配置以提供第一光束,以及
第二激光晶粒,其在所述基板上且被配置以提供第二光束;
将光子集成电路附接到所述支撑结构,所述光子集成电路包括:
第一波导以及耦合到所述第一波导的第一耦合器;以及
第二波导以及耦合到所述第二波导的第二耦合器;
以及
将多个波束成形光学元件附接到所述支撑结构、所述基板或所述光子集成电路,所述附接包括:
利用所述第一激光晶粒提供所述第一光束,
在附接期间对齐第一波束成形光学元件,使所述第一光束被耦合到所述第一耦合器,以及
利用所述第二激光晶粒提供所述第二光束,
在附接期间对齐第二波束成形光学元件,使所述第二光束被耦合到所述第二耦合器。
实施例2:根据实施例1所述的方法,其中在所述第一波束成形光学元件的附接期间对齐所述第一波束成形光学元件包括:相对于所述支撑结构、所述基板或所述光子集成电路平移所述第一波束成形光学元件。
实施例3:根据实施例2所述的方法,其中所述移动基本上是在平行于共用平面的平面上。
实施例4:根据实施例1至3中任一项所述的方法,其中在所述第一波束成形光学元件的附接期间对齐所述第一波束成形光学元件包括:监测反馈,所述反馈指示所述第一光束通过所述第一耦合器进入所述第一波导的耦合效率。
实施例5:根据实施例1至4中任一项所述的方法,其中在所述第二波束成形光学元件的附接期间对齐所述第二波束成形光学元件发生在所述第一波束成形光学元件的附接被完成之后。
实施例6:根据实施例1所述的方法,其中所述光子源包括在所述基板上的第三激光晶粒,其被配置以提供第三光束,所述第一激光晶粒被配置以从第一发射位置提供所述第一光束,所述第二激光晶粒被配置以从第二发射位置提供所述第二光束,所述第三激光晶粒被配置以从第三发射位置提供所述第三光束,
其中所述第一发射位置、所述第二发射位置以及所述第三发射位置基本上沿着直线对齐。
实施例7:根据实施例6所述的方法,其中所述光子源包括在所述基板上的第四激光晶粒,其被配置以从第四发射位置提供第四光束,
其中所述第一发射位置、所述第二发射位置、所述第三发射位置以及所述第四发射位置基本上沿着平面对齐。
实施例8:根据实施例1至7中任一项所述的方法,其中所述第一激光晶粒以及所述第二激光晶粒被导向,使所述第一光束以及所述第二光束基本上沿着平面对齐。
实施例9:根据实施例6至8中任一项所述的方法,其中所述第一激光晶粒、所述第二激光晶以及所述第三激光晶粒被导向,使所述第一光束、第二光束以及所述第三光束基本上沿着平面对齐。
实施例10:根据实施例1至9中任一项所述的方法,其中所述光子源包括片上基座结构,其包括激光二极管条,所述激光二极管条包括被附接到包括至少一个散热器或热电冷却器的结构的多个激光晶粒,所述多个激光晶粒包括所述第一激光晶粒以及所述第二激光晶粒。
实施例11:根据实施例10所述的方法,其中所述片上基座被附接到包括所述热电冷却器的结构,且所述方法包括提供热电冷却器控制器,其被配置以控制所述热电冷却器的温度。
实施例12:根据实施例1至11中任一项所述的方法,其中所述第一波束成形光学元件以及所述第二波束成形光学元件包括透镜。
实施例13:根据实施例1至12中任一项所述的方法,其中所述第一耦合器以及所述第二耦合器包括被耦合到各个所述第一波导以及所述第二波导的波导光栅耦合器。
实施例14:根据实施例1至12中任一项所述的方法,其中所述第一耦合器以及所述第二耦合器包括被耦合到各个所述第一波导以及所述第二波导的边缘耦合器。
实施例15:根据实施例1至14中任一项所述的方法,其中所述支撑结构包括中介层,其为来自所述光子集成电路的电信号提供电信号路径。
实施例16:根据实施例15所述的方法,其中所述中介层包括光电中介层,其为来自所述光子集成电路的光信号提供光信号路径。
实施例17:根据实施例15或16所述的方法,包括将所述中介层附接到平面网格阵列LGA基板。
实施例18:根据实施例16所述的方法,其中所述光子集成电路在受控塌陷芯片连接中被附接到所述光电中介层。
实施例19:根据实施例1至14中任一项所述的方法,其中所述支撑结构包括平面网格阵列LGA基板。
实施例20:根据实施例1至19中任一项所述的方法,包括将第一电子集成电路电性耦合到所述光子集成电路的顶面,并将第二电子集成电路电性耦合到所述光子集成电路的底面。
实施例21:根据实施例20所述的方法,其中所述第二电子集成电路包括数字储存模块,且所述第一电子集成电路包括混合数字/模拟集成电路,其被配置以提供用以控制在所述光子集成电路中的光子计算元件的模拟控制信号,并向所述数字储存模块发送数字数据或从所述数字储存模块接收数字数据。
实施例22:根据实施例20或21所述的方法,其中所述光子集成电路包括基板,且所述方法包括提供导电通孔,所述导电通孔通过所述光子集成电路的所述基板以允许电信号通过所述导电通孔在所述第一电子集成电路以及所述第二电子集成电路之间被发送。
实施例23:一种装置,包括:
光子源,其被附接到支撑结构,所述光子源包括:
第一激光晶粒,在第一基板上,其中所述第一激光晶粒被配置以提供第一光束,以及
第二激光晶粒,在所述第一基板或第二基板上,其中所述第二激光晶粒被配置以提供第二光束;
光子集成电路,其被附接到所述支撑结构,所述光子集成电路包括:
第一波导以及耦合到所述第一波导的第一耦合器;以及
第二波导以及耦合到所述第二波导的第二耦合器;
以及
多个波束成形光学元件,其被附接到所述支撑结构、所述第一基板、各个所述第一基板以及所述第二基板或所述光子集成电路中的至少一个,其中所述波束成形光学元件包括:
第一波束成形光学元件,其被配置以将所述第一光束耦合到所述光子集成电路上的所述第一耦合器;以及
第二波束成形光学元件,其被配置以将所述第二光束耦合到所述光子集成电路上的所述第二耦合器。
实施例24:根据实施例23所述的装置,还包括被附接到所述光子集成电路的波束重定向光学元件,所述波束重定向元件被配置以重定向所述第一光束进入所述第一耦合器以及重定向所述第二光束进入所述第二耦合器。
实施例25:根据实施例24所述的装置,其中所述波束重定向元件包括被配置以反射所述第一光束进入所述第一耦合器的第一表面,以及被配置以反射所述第二光束进入所述第二耦合器的第二表面。
实施例26:根据实施例25所述的装置,其中所述波束重定向元件的所述第一表面与所述波束重定向元件的所述第二表面重叠。
实施例27:根据实施例24至26中任一项所述的装置,其中所述波束重定向光学元件包括棱镜。
实施例28:根据实施例24至26中任一项所述的装置,其中所述波束重定向光学元件包括镜子。
实施例29:根据实施例23至28中任一项所述的装置,其中所述光子源包括第三激光晶粒,其被布置在所述基板上且被配置以提供第三光束,所述第一激光晶粒被配置以从第一发射位置提供所述第一光束,所述第二激光晶粒被配置以从第二发射位置提供所述第二光束,所述第三激光晶粒被配置以从第三发射位置提供所述第三光束,
其中所述第一发射位置、所述第二发射位置以及所述第三发射位置基本上沿着直线对齐,且所述第一发射位置、所述第二发射位置以及所述第三发射位置的任一个与所述直线之间的距离小于特定距离。
实施例30:根据实施例29所述的装置,其中所述光子源包括在所述基板上的第四激光晶粒,所述第四激光晶粒被配置以从第四发射位置提供第四光束,
其中所述第一发射位置、所述第二发射位置、所述第三发射位置以及所述第四发射位置基本上沿着平面对齐,且所述第一发射位置、所述第二发射位置、所述第三发射位置以及所述第四发射位置的任一个与所述平面之间的距离小于特定距离。
实施例31:根据实施例23至30中任一项所述的装置,其中所述光子源包括在所述第一基板或各个基板上的至少八个激光晶粒,所述至少八个激光晶粒包括所述第一激光晶粒以及所述第二激光晶粒,且所述第一基板或各个基板被附接到一个或多个散热器结构。
实施例32:根据实施例31所述的装置,其中所述激光晶粒被配置以从基本上沿着平面对齐的对应的发射位置提供光束,且任一发射位置与所述平面之间的距离小于特定距离。
实施例33:根据实施例23至32中任一项所述的装置,其中所述第一波束成形光学元件以及所述第二波束成形光学元件包括透镜。
实施例34:根据实施例23至33中任一项所述的装置,其中所述第一耦合器以及所述第二耦合器包括被耦合到各个所述第一波导以及所述第二波导的波导光栅耦合器。
实施例35:根据实施例23至33中任一项所述的装置,其中所述第一耦合器以及所述第二耦合器包括被耦合到各个所述第一波导以及所述第二波导的边缘耦合器。
实施例36:根据实施例23至35中任一项所述的装置,其中所述支撑结构包括光电中介层,其为来自所述光子集成电路的电信号提供电信号路径,并为来自所述光子集成电路的光信号提供光信号路径。
实施例37:根据实施例36所述的装置,其中所述光子集成电路在受控塌陷芯片连接中被附接到所述光电中介层。
实施例38:根据实施例37所述的装置,还包括电子集成电路。
实施例39:根据实施例38所述的装置,其中所述光子集成电路包括光电计算元件,且所述电子集成电路包括控制电路,其被配置以提供用以控制所述光电计算元件的电子控制信号。
实施例40:根据实施例39所述的装置,其中所述光电计算元件包括至少一个光调制器,其基于所述电子控制信号中的至少一个调制光信号。
实施例41:根据实施例38至40中任一项所述的装置,其中所述电子集成电路在受控塌陷芯片连接中被附接到所述光电中介层。
实施例42:根据实施例38至40中任一项所述的装置,其中所述电子集成电路在受控塌陷芯片连接中被附接到所述光子集成电路。
实施例43:根据实施例36至42中任一项所述的装置,还包括被附接到所述光电中介层的两个或更多个动态随机存取存储器(DRAM)集成电路的高带宽存储器(HBM)堆叠。
实施例44:根据实施例23至43中任一项所述的装置,其中所述第一激光晶粒被配置以使所述第一光束具有第一波长,所述第二激光晶粒被配置以使所述第二光束具有第二波长,所述第一波长与所述第二波长不同,且所述光子集成电路包括波分复用计算模块,其同时处理源自所述第一光束的第一光信号以及源自所述第二光束的第二光信号。
实施例45:一种装置,包括:
光子源,其被附接到支撑结构,所述光子源包括:
激光器模块,其被配置以提供光束;
光子集成电路,其被附接到所述支撑结构,所述光子集成电路包括:
第一波导以及耦合到所述第一波导的耦合器;以及
光电电路,其与所述第一波导光通信并被配置以从一个或多个控制电极接收一个或多个电信号;
至少一个波束成形光学元件,其被附接到所述支撑结构、所述光子源或所述光子集成电路,其中所述波束成形光学元件被配置以将所述光束耦合到所述光子集成电路上的所述耦合器;
数字电子模块,其与所述光子集成电路电性接触;
以及
电子集成电路,其与所述光子集成电路电性接触,并包括模拟电路与数字电路,其中所述模拟电路与所述一个或多个控制电极中的至少一个电性接触;
其中所述光子集成电路还包括多个金属路径,其穿过所述光子集成电路的至少一部分,被配置以在所述电子集成电路中的所述数字电路与所述数字电子模块之间提供电性接触点。
实施例46:根据实施例45所述的装置,其中所述数字电子模块与所述光子集成电路在和所述电子集成电路相同的平面上电性接触。
实施例47:根据实施例45所述的装置,其中所述数字电子模块与所述光子集成电路的第一表面电性接触,所述电子集成电路与所述光子集成电路的第二表面电性接触,所述第二表面与所述第一表面相对。
实施例48:根据实施例45至47中任一项所述的装置,其中所述数字电子模块包括两个或更多个动态随机存取存储器(DRAM)晶粒的堆叠。
实施例49:根据实施例45至48中任一项所述的装置,其中所述支撑结构包括基板,其包括表面贴装电性接触点的阵列,其与所述光子集成电路的电性接触点通信。
实施例50:一种用于组装光子计算系统的方法,所述方法包括:
将多个激光晶粒附接到第一支撑结构,其中每个激光晶粒被配置以产生光束;
将光子集成电路附接到所述第一支撑结构,其中所述光子集成电路包括:
多个光波导,其被配置以承载光信号,其中一组多个输入值被编码在由所述光波导承载的各个光信号上;
多个耦合器,每个耦合器被耦合到对应的波导;
光网络,其包括多个分光器或定向耦合器;以及
光电电路区段的阵列,其中每个光电电路区段被配置以接收来自所述光网络的输出端口中的一个输出端口的光波,且每个光电电路区段包括:
至少一个光探测器,其被配置以探测来自操作的至少一个光波;以及
至少一个导电路径,其被整合在被电性耦合到所述光探测器且被电性耦合到电性输出端口的所述光子集成电路中;以及
将多个波束成形光学元件附接到所述第一支撑结构或所述光子集成电路,其中每个波束成形光学元件与激光晶粒以及耦合器关联,且所述附接包括对齐每个波束成形光学元件以致使由所述对应的激光晶粒产生的所述光束通过所述对应的耦合器被耦合到所述对应的波导。
实施例51:根据实施例50所述的方法,其中将所述多个激光晶粒附接到所述支撑结构包括将所述多个激光晶粒附接到包括至少一个散热器或热电冷却器的第二支撑结构,并将所述第二支撑结构附接到所述第一支撑结构。
实施例52:根据实施例50或51所述的方法,其中在所述波束成形光学元件的附接期间对齐每个波束成形光学元件包括监测反馈,所述反馈指示所述对应的光束通过所述对应的耦合器进入所述对应的波导的耦合效率。
实施例53:根据实施例52所述的方法,包括顺序地对齐所述波束成形光学元件,其中在第一波束成形光学元件基于监测指示所述耦合效率的所述反馈的对齐完成后,基于监测指示所述耦合效率的所述反馈对齐第二波束成形光学元件,且在所述第二波束成形光学元件基于监测指示所述耦合效率的所述反馈的对齐完成后,基于监测指示所述耦合效率的所述反馈对齐第三波束成形光学元件。
实施例54:根据实施例50至53中任一项所述的方法,包括将第一电子集成电路电性耦合到所述光子集成电路的顶面,并将第二电子集成电路电性耦合到所述光子集成电路的底面。
实施例55:根据实施例54所述的方法,其中所述第二电子集成电路包括数字储存模块,且所述第一电子集成电路包括混合数字/模拟集成电路,其被配置以提供用以控制在所述光子集成电路中的光子计算元件的模拟控制信号,并向所述数字储存模块发送数字数据或从所述数字储存模块接收数字数据。
实施例56:根据实施例54或55所述的方法,其中,所述光子集成电路包括基板,且所述方法包括提供导电通孔,所述导电通孔通过所述光子集成电路的所述基板以允许电信号通过所述导电通孔在所述第一电子集成电路以及所述第二电子集成电路之间被发送。
实施例57:根据实施例55所述的方法,其中每个光电电路区段包括马赫-曾德尔干涉仪,其被配置以在以下两者之间执行乘法操作:(1)基于被所述光网络缩放的所述多个输入值中的一个的值,以及(2)由被电性耦合到所述混合数字/模拟集成电路的电性输入端口提供的电性数值,且
其中所述混合数字/模拟集成电路被配置以提供所述电性数值给所述光电电路区段的所述电性输入端口。
实施例58:根据实施例50至57中任一项所述的方法,包括:
将所述第一支撑结构附接到平面网格阵列(LGA)基板;
其中将所述多个激光晶粒附接到所述第一支撑结构在所述第一支撑结构被附接到所述LGA基板后被执行。
实施例59:一种装置,包括:
第一支撑结构;
多个激光晶粒,其被附接到所述第一支撑结构,其中每个激光晶粒被配置以产生光束;
光子集成电路,其被附接到所述第一支撑结构,其中所述光子集成电路包括:
多个光波导,其被配置以承载光信号,其中一组多个输入值被编码在由所述光波导承载的各个光信号上;
多个耦合器,每个耦合器被耦合到对应的波导;
光网络,其包括多个分光器或定向耦合器;以及
光电电路区段的阵列,其中每个光电电路区段被配置以接收来自所述光网络的输出端口中的一个输出端口的光波,且每个光电电路区段包括:
至少一个光探测器,其被配置以探测来自操作的至少一个光波;以及
至少一个导电路径,其被整合在被电性耦合到所述光探测器且被电性耦合到电性输出端口的所述光子集成电路中;以及
多个波束成形光学元件,其被附接到所述支撑结构或所述光子集成电路,其中每个波束成形光学元件与激光晶粒以及耦合器关联,且被配置以致使由所述对应的激光晶粒产生的所述光束通过所述对应的耦合器被耦合到所述对应的波导。
实施例60:根据实施例59所述的装置,包括第二支撑结构,其包括至少一个散热器或热电冷却器,其中所述多个激光晶粒被附接到所述第二支撑结构,且所述第二支撑结构被附接到所述第一支撑结构。
实施例61:根据实施例59或60所述的装置,其中所述光子集成电路包括反馈光探测器以及与所述光波导中的一个相关联的抽头波导,所述抽头波导被配置以提供耦合到所述对应的光波导的光功率的一部分给所述反馈光探测器;
其中,所述装置包括反馈监测电路,其被配置以监测由所述反馈光探测器产生的反馈信号。
实施例62:根据实施例59至61中任一项所述的装置,包括第一电子集成电路,其被电性耦合到所述光子集成电路的顶面,以及第二电子集成电路,其被电性耦合到所述光子集成电路的底面。
实施例63:根据实施例62所述的装置,其中,所述第二电子集成电路包括数字储存模块,且所述第一电子集成电路包括混合数字/模拟集成电路,其被配置以提供用以控制在所述光子集成电路中的光子计算元件的模拟控制信号,并向所述数字储存模块发送数字数据或从所述数字储存模块接收数字数据。
实施例64:根据实施例62或63所述的装置,其中,所述光子集成电路包括基板以及通过所述基板的导电通孔,所述导电通孔允许电信号通过所述导电通孔在所述第一电子集成电路以及所述第二电子集成电路之间被发送。
实施例65:根据实施例63或64所述的装置,其中,每个光电电路区段包括马赫-曾德尔干涉仪,其被配置以在以下两者之间执行乘法操作:(1)基于被所述光网络缩放的所述多个输入值中的一个的值,以及(2)由被电性耦合到所述混合数字/模拟集成电路的电性输入端口提供的电性数值,且
其中所述混合数字/模拟集成电路被配置以提供所述电性数值给所述光电电路区段的所述电性输入端口。
实施例66:根据实施例59至65中任一项所述的装置,其中所述耦合器包括导模谐振耦合器或边缘耦合器中的至少一个。
实施例67:根据实施例59至66中任一项所述的装置,其中所述多个激光晶粒被配置以产生具有多个波长的多个光束,所述多个光束包括至少两个具有不同波长的光束,且所述光子集成电路包括波分复用计算模块,其同时处理具有第一波长并代表第一值的第一光信号以及具有第二波长并代表第二值的第二光信号。
实施例68:一种用于组装光子计算系统的方法,所述方法包括:
将多个激光晶粒附接到第一支撑结构,其中每个激光晶粒被配置以产生激光束;
将光子集成电路附接到所述第一支撑结构,其中所述光子集成电路包括:
多个输入波导,其被配置以承载输入光信号;
多个耦合器,每个耦合器被耦合到对应的输入波导;
多个操作光探测器,其中每个操作光探测器被配置以探测源自基于至少一个输入光信号的操作的光信号;
多个反馈光探测器,其中每个反馈光探测器与输入波导关联;以及
多个抽头波导,其中每个抽头波导与输入波导关联且被配置以提供耦合到所述输入波导的光功率的一部分给所述反馈光探测器;
将多个波束成形光学元件附接到所述第一支撑结构或所述光子集成电路,其中每个波束成形光学元件与所述多个激光晶粒中的一个以及所述多个耦合器中的一个相关联;
驱动所述激光晶粒以顺序地或平行地产生激光束;
使用每个反馈光探测器以产生反馈信号来指示所述激光束通过所述对应的耦合器进入所述对应的波导的耦合效率;以及
对齐每个波束成形光学元件以致使由所述对应的激光晶粒产生的所述激光束在所述光子集成电路中通过所述对应的耦合器被耦合到所述对应的输入波导,其中对齐所述波束成形光学元件是基于所述对应的反馈光探测器产生的所述反馈信号。
实施例69:根据实施例68所述的方法,其中对齐所述波束成形光学元件包括对齐所述波束成形光学元件以最大化所述激光束进入所述对应的波导的所述耦合。
实施例70:根据实施例68或69所述的方法,其中附接所述多个激光晶粒包括附接至少八个激光晶粒,所述光子集成电路被配置以对输入向量执行操作,每个输入向量具有至少八个平行比特,且每个比特由所述激光晶粒之一产生的所述激光束的调制版本表示。
实施例71:根据实施例68或70所述的方法,其中所述波束成形光学元件包括透镜。
实施例72:一种装置,包括:
光子集成电路,其通过在所述光子集成电路的第一表面上的第一导电结构的阵列被附接到支撑结构,所述光子集成电路包括:
波导以及耦合器,所述耦合器被配置以将光束耦合到所述波导中;以及
电子集成电路,其通过耦合到所述光子集成电路以及所述电子集成电路的第二导电结构的布置而被附接到所述光子集成电路,其中所述第二导电结构的布置提供所述电子集成电路以及所述光子集成电路之间的电通信;
其中所述光子集成电路还包括:
多个导电通孔,其穿过所述光子集成电路的至少一部分从所述第二导电结构的布置延伸到所述光子集成电路的所述第一表面。
实施例73:根据实施例72所述的装置,其中所述耦合器邻近于所述光子集成电路的所述第一表面。
实施例74:根据实施例73所述的装置,其中所述光子集成电路还包括光电计算元件,所述光电计算元件包括被耦合到所述波导的至少一个光电计算元件。
实施例75:根据实施例74所述的装置,其中所述多个光电计算元件在所述光子集成电路的一个或多个层之中,所述一个或多个层相比所述第二导电结构的布置更靠近所述第一表面。
实施例76:根据实施例73至75中任一项所述的装置,其中所述第二导电结构的布置包括邻近于所述光子集成电路的第二表面的多个背面再分布层(RDL)。
实施例77:根据实施例76所述的装置,其中所述第二导电结构的布置包括邻近于所述电子集成电路的表面的多个背面再分布层(RDL)。
实施例78:根据实施例72至77中任一项所述的装置,其中所述光子集成电路还包括光电计算元件,所述光电计算元件包括被耦合到所述波导的至少一个光电计算元件。
实施例79.根据实施例78所述的装置,其中所述电子集成电路包括控制电路,其被配置以提供用于控制所述光电计算元件的电子控制信号。
实施例80:根据实施例79所述的装置,其中所述光电计算元件包括至少一个光调制器,其基于所述电子控制信号中的至少一个调制光信号。
实施例81:根据实施例72至80中任一项所述的装置,其中所述支撑结构包括平面网格阵列基板,其包括在所述平面网格阵列基板的表面上的接触点的阵列,所述接触点的阵列提供通往在所述光子集成电路的所述第一表面上的所述第一导电结构的阵列的电性连接。
实施例82:根据实施例81所述的装置,还包括光子源,其被配置以提供所述光束。
实施例83:据实施例82所述的装置,其中所述光子源被附接到所述平面网格阵列基板的一部分或中介层,所述中介层被附接到所述平面网格阵列基板。
实施例84:根据实施例83所述的装置,其中所述耦合器包括边缘耦合器。
实施例85:根据实施例82至84中任一项所述的装置,其中所述平面网格阵列基板限定开口,且模块的一部分被插入所述开口的一部分中并被附接到所述光子集成电路的所述第一表面。
实施例86:根据实施例85所述的装置,其中所述模块的所述部分包括被耦合到所述光子源的光连接器。
实施例87:根据实施例86所述的装置,其中所述耦合器包括波导光栅耦合器。
实施例88:根据实施例85所述的装置,其中所述模块包括数字储存模块。
实施例89:根据实施例88所述的装置,其中所述数字储存模块包括两个或更多个动态随机存取存储器(DRAM)集成电路的高带宽存储器(HBM)堆叠。
实施例90:根据实施例72至89中任一项所述的装置,其中所述耦合器包括波导光栅耦合器。
实施例91:根据实施例72至89中任一项所述的装置,其中所述耦合器包括边缘耦合器。
实施例92:一种装置,包括:
电子集成电路;以及
光子集成电路,包括:
多个导电通孔,其穿过所述光子集成电路的至少一部分,其中所述导电通孔延伸到所述光子集成电路的背对所述电子集成电路的第一表面,且所述导电通孔被配置以提供所述电子集成电路到所述光子集成电路的所述第一表面上所耦合的元件的导电路径。
实施例93:根据实施例92所述的装置,其中所述多个导电通孔被配置以为所述电子集成电路提供到基板的电性接触点,其中所述光子集成电路被布置在所述电子集成电路以及所述基板之间。
实施例94:根据实施例93所述的装置,其中所述基板包括平面网格阵列基板,其包括在所述平面网格阵列基板的表面上的接触点的阵列,所述接触点的阵列提供通往在所述光子集成电路的所述第一表面上的导电结构的阵列的电性连接。
实施例95:根据实施例94所述的装置,包括所述平面网格阵列基板。
实施例96:根据实施例92至95中任一项所述的装置,其中所述光子集成电路包括:
波导;
耦合器,其被配置以将光束耦合到所述波导中;以及
光电计算元件,其包括被耦合到所述波导的至少一个光电计算元件。
实施例97:根据实施例96所述的装置,其中所述电子集成电路包括控制电路,所述控制电路被配置以提供用于控制所述光子集成电路中的所述光电计算元件的电子控制信号。
实施例98:根据实施例96或97所述的装置,包括光子源,其被配置以提供所述光束。
实施例99:根据实施例92至98中任一项所述的装置,包括被电性耦合到所述光子集成电路的所述第一表面的存储设备,其中所述电子集成电路被电性耦合到所述光子集成电路的第二表面,且所述电子集成电路通过至少一些所述导电通孔被电性耦合到所述存储设备。
实施例100:根据实施例99所述的装置,其中所述存储设备包括两个或更多个动态随机存取存储器(DRAM)集成电路的高带宽存储器(HBM)堆叠。
实施例101:一种用于制造集成光电设备的方法,包括:
形成光子集成电路的多个层,所述形成包括在导电通孔的末端被显露的一层上形成多个再分布层(RDL);
形成电子集成电路的多个层,所述形成包括在电子信号被提供的一层上形成多个再分布层(RDL);以及
将所述光子集成电路的多个RDL与所述电子集成电路的多个RDL结合在一起。
实施例102:根据实施例101所述的方法,其中形成所述光子集成电路的所述多个层还包括:
在一个或多个层中形成波导以及被耦合到所述波导的耦合器;
在一个或多个层中形成光电计算元件,所述光电计算元件包括被耦合到所述波导的至少一个光电计算元件,以及
形成穿过多个层的所述导电通孔,所述多个层包括所述波导、所述耦合器以及所述多个光电计算元件被形成其中的所述一个或多个层。
实施例103.根据实施例102所述的方法,其中形成所述电子集成电路的所述多个层还包括在一个或多个层中形成被配置以提供所述电子信号的电路。
实施例104:根据实施例102或103所述的方法,还包括移除所述光子集成电路的一部分以显露所述导电通孔的末端以及显露所述耦合器。
实施例105:根据实施例104所述的方法,还包括将所述导电通孔的多个被显露的末端通过导电结构的阵列附接到支撑结构。
实施例106:根据实施例105所述的方法,其中所述支撑结构包括平面网格阵列基板,其包括在所述平面网格阵列基板的表面上的接触点的阵列,所述接触点的阵列提供通往所述导电结构的阵列的电性连接。
实施例107:根据实施例106所述的方法,还包括在所述平面网格阵列基板中形成开口,并将模块附接到所述光子集成电路的表面,其中所述模块的一部分被插入所述开口的一部分中。
实施例108:根据实施例107所述的方法,其中所述模块包括光子源,其被定位以提供光束给所述耦合器。
实施例109:根据实施例107所述的方法,其中所述模块包括两个或更多个动态随机存取存储器(DRAM)集成电路的高带宽存储器(HBM)堆叠。
实施例110:根据实施例102至109中任一项所述的方法,其中所述耦合器包括波导光栅耦合器。
实施例111:一种人工神经网络计算系统,包括实施例23至49、59至67和72至100中任一项所述的装置。
实施例112:一种系统,包括机器人、自动驾驶车、自驾无人机、医疗诊断系统、诈欺探测系统、天气预测系统、财务预测系统、面部识别系统、语音识别系统、元宇宙生成器或产品缺陷检测系统中的至少一个,
其中所述机器人、所述自动驾驶车、所述自驾无人机、所述医疗诊断系统、所述诈欺探测系统、所述天气预测系统、所述财务预测系统、所述面部识别系统、所述语音识别系统、所述元宇宙生成器或所述产品缺陷检测系统中的至少一个包括实施例23至49、59至67和72至100中任一项所述的装置。
实施例113:一种系统,包括移动电话或便携式计算机中的至少一个,其中所述移动电话或所述便携式计算机包括实施例23至49、59至67和72至100中任一项所述的装置。
实施例114:一种超级计算机,包括实施例23至49、59至67和72至100中任一项所述的至少10个装置。
实施例115:一种超级计算机,包括实施例23至49、59至67和72至100中任一项所述的至少100个装置。
实施例116:一种超级计算机,包括实施例23至49、59至67和72至100中任一项所述的至少1000个装置。
实施例117:一种超级计算机,包括实施例23至49、59至67和72至100中任一项所述的至少10000个装置。
实施例118:一种数据中心,包括实施例23至49、59至67和72至100中任一项所述的至少10个装置。
实施例119:一种数据中心,包括实施例23至49、59至67和72至100中任一项所述的至少100个装置。
实施例120:一种数据中心,包括实施例23至49、59至67和72至100中任一项所述的至少1000个装置。
实施例121:一种数据中心,包括实施例23至49、59至67和72至100中任一项所述的至少10000个装置。
实施例122:根据实施例114至117中任一项所述的超级计算机,包括23至49、59至67和72至100中的多种两个或多个实施例。
实施例123:实施例118至121中任一项的数据中心,包括23至49、59至67和72至100中的多种两个或多个实施例。
实施例124:一种方法,包括操作实施例23至49、59至67和72至100中任何一个中的装置、实施例114至117和122中任何一个中的超级计算机或实施例118至121和123中任何一个中的数据中心。
实施例125:一种操作光子计算系统的方法,该方法包括:
从第一电子集成电路向光子集成电路发送调制控制信号,其中,所述光子集成电路包括多个调制器、多个波导和多个光电探测器,其中,所述光子集成电路包括穿过所述光子集成电路的至少一部分的多个导电通孔,其中,所述第一电子集成电路电性耦合到所述光子集成电路的第一表面,其中所述导电通孔从所述光子集成电路的所述第一表面延伸到所述光集成电路的第二表面,所述第二表面与所述第一表面相对;
基于输入光信号和由电子集成电路提供的调制控制信号在所述光子集成电路处执行矩阵计算;
将表示所述矩阵计算的结果的数据从所述光子集成电路传输到所述第一电子集成电路;以及
通过所述光子集成电路中的导电通孔将所述数据从所述第一电子集成电路传输到电性耦合到所述光子集成电路的第二表面的第二电子集成电路。
实施例126:根据实施例125所述的方法,其中所述第二电子集成电路包括存储设备。
实施例127:根据实施例126所述的方法,其中所述存储设备包括两个或更多个动态随机存取存储器(DRAM)集成电路的高带宽存储器(HBM)堆叠。
实施例128:一种装置,包括:
第一支撑结构;
光子集成电路,附接到所述第一支撑结构,其中,所述光子集成电路包括多个波导和多个光调制器,其中所述光子集成电路包括第一边缘和第二边缘,其中,所述光子集成电路包括第一组耦合器和第二组耦合器,所述第一组耦合器和所述第二组耦合器中的每一个都光学耦合到对应的波导;
第一组激光晶粒,其定位在所述光子集成电路的所述第一边缘附近;
第二组激光晶粒,其定位在所述光子集成电路的所述第二边缘附近;
第一组波束成形光学元件,其中所述第一组波束成形光学元件中的每个波束成形光学元件与所述第一组激光晶粒中的激光晶粒和所述第一组耦合器中的耦合器相关联,并且被配置为使得由对应的激光晶粒产生的光束通过对应的耦合器耦合到对应的波导,以及
第二组波束成形光学元件,其中所述第二组波束成形光学元件中的每个波束成形光学元件与所述第二组激光晶粒中的激光晶粒和所述第二组耦合器中的耦合器相关联,并且被配置为使得由对应的激光晶粒产生的光束通过对应耦合器耦合到对应的波导。
实施例129:根据实施例128所述的装置,其中所述光子集成电路具有整体矩形形状,所述第一边缘沿长度方向延伸,并且所述第二边缘沿宽度方向延伸。
实施例130:根据实施例128或129所述的装置,其中所述第一组激光晶粒附接到所述第一支撑结构。
实施例131:根据实施例128至130中任一项所述的装置,其中所述第一组波束成形光学元件附接到所述第一支撑结构。
实施例132:根据实施例128至131中任一项所述的装置,其中所述第一组耦合器定位在所述第一边缘附近且所述第二组耦合器位在所述第二边缘附近。

Claims (113)

1.一种组装光子计算系统的方法,所述方法包括:
将光子源附接到支撑结构,所述光子源包括:
第一激光晶粒,其在基板上且被配置以提供第一光束,以及
第二激光晶粒,其在所述基板上且被配置以提供第二光束;
将光子集成电路附接到所述支撑结构,所述光子集成电路包括:
第一波导以及耦合到所述第一波导的第一耦合器;以及
第二波导以及耦合到所述第二波导的第二耦合器;
以及
将多个波束成形光学元件附接到所述支撑结构、所述基板或所述光子集成电路,所述附接包括:
利用所述第一激光晶粒提供所述第一光束,
在附接期间对齐第一波束成形光学元件,使所述第一光束被耦合到所述第一耦合器,以及
利用所述第二激光晶粒提供所述第二光束,
在附接期间对齐第二波束成形光学元件,使所述第二光束被耦合到所述第二耦合器。
2.根据权利要求1所述的方法,其中在所述第一波束成形光学元件的附接期间对齐所述第一波束成形光学元件包括:相对于所述支撑结构、所述基板或所述光子集成电路平移所述第一波束成形光学元件。
3.根据权利要求2所述的方法,其中所述移动基本上是在平行于共用平面的平面上。
4.根据权利要求1所述的方法,其中在所述第一波束成形光学元件的附接期间对齐所述第一波束成形光学元件包括:监测反馈,所述反馈指示所述第一光束通过所述第一耦合器进入所述第一波导的耦合效率。
5.根据权利要求1至4中任一项所述的方法,其中在所述第二波束成形光学元件的附接期间对齐所述第二波束成形光学元件发生在所述第一波束成形光学元件的附接被完成之后。
6.根据权利要求1所述的方法,其中所述光子源包括在所述基板上的第三激光晶粒,其被配置以提供第三光束,所述第一激光晶粒被配置以从第一发射位置提供所述第一光束,所述第二激光晶粒被配置以从第二发射位置提供所述第二光束,所述第三激光晶粒被配置以从第三发射位置提供所述第三光束,
其中所述第一发射位置、所述第二发射位置以及所述第三发射位置基本上沿着直线对齐。
7.根据权利要求6所述的方法,其中所述光子源包括在所述基板上的第四激光晶粒,其被配置以从第四发射位置提供第四光束,
其中所述第一发射位置、所述第二发射位置、所述第三发射位置以及所述第四发射位置基本上沿着平面对齐。
8.根据权利要求1至4中任一项所述的方法,其中所述第一激光晶粒以及所述第二激光晶粒被导向,使所述第一光束以及所述第二光束基本上沿着平面对齐。
9.根据权利要求8所述的方法,其中所述第一激光晶粒、所述第二激光晶以及所述第三激光晶粒被导向,使所述第一光束、第二光束以及所述第三光束基本上沿着平面对齐。
10.根据权利要求1至4中任一项所述的方法,其中所述光子源包括片上基座结构,其包括激光二极管条,所述激光二极管条包括被附接到包括至少一个散热器或热电冷却器的结构的多个激光晶粒,所述多个激光晶粒包括所述第一激光晶粒以及所述第二激光晶粒。
11.根据权利要求10所述的方法,其中所述片上基座被附接到包括所述热电冷却器的结构,且所述方法包括提供热电冷却器控制器,其被配置以控制所述热电冷却器的温度。
12.根据权利要求1至4中任一项所述的方法,其中所述第一波束成形光学元件以及所述第二波束成形光学元件包括透镜。
13.根据权利要求1至4中任一项所述的方法,其中所述第一耦合器以及所述第二耦合器包括被耦合到各个所述第一波导以及所述第二波导的波导光栅耦合器。
14.根据权利要求1至4中任一项所述的方法,其中所述第一耦合器以及所述第二耦合器包括被耦合到各个所述第一波导以及所述第二波导的边缘耦合器。
15.根据权利要求1至4中任一项所述的方法,其中所述支撑结构包括中介层,其为来自所述光子集成电路的电信号提供电信号路径。
16.根据权利要求15所述的方法,其中所述中介层包括光电中介层,其为来自所述光子集成电路的光信号提供光信号路径。
17.根据权利要求15所述的方法,包括将所述中介层附接到平面网格阵列LGA基板。
18.根据权利要求16所述的方法,其中所述光子集成电路在受控塌陷芯片连接中被附接到所述光电中介层。
19.根据权利要求1至4中任一项所述的方法,其中所述支撑结构包括平面网格阵列LGA基板。
20.根据权利要求1至4中任一项所述的方法,包括将第一电子集成电路电性耦合到所述光子集成电路的顶面,并将第二电子集成电路电性耦合到所述光子集成电路的底面。
21.根据权利要求20所述的方法,其中所述第二电子集成电路包括数字储存模块,且所述第一电子集成电路包括混合数字/模拟集成电路,其被配置以提供用以控制在所述光子集成电路中的光子计算元件的模拟控制信号,并向所述数字储存模块发送数字数据或从所述数字储存模块接收数字数据。
22.根据权利要求20所述的方法,其中所述光子集成电路包括基板,且所述方法包括提供导电通孔,所述导电通孔通过所述光子集成电路的所述基板以允许电信号通过所述导电通孔在所述第一电子集成电路以及所述第二电子集成电路之间被发送。
23.一种装置,包括:
光子源,其被附接到支撑结构,所述光子源包括:
第一激光晶粒,在第一基板上,其中所述第一激光晶粒被配置以提供第一光束,以及
第二激光晶粒,在所述第一基板或第二基板上,其中所述第二激光晶粒被配置以提供第二光束;
光子集成电路,其被附接到所述支撑结构,所述光子集成电路包括:
第一波导以及耦合到所述第一波导的第一耦合器;以及
第二波导以及耦合到所述第二波导的第二耦合器;
以及
多个波束成形光学元件,其被附接到所述支撑结构、所述第一基板、各个所述第一基板以及所述第二基板或所述光子集成电路中的至少一个,其中所述波束成形光学元件包括:
第一波束成形光学元件,其被配置以将所述第一光束耦合到所述光子集成电路上的所述第一耦合器;以及
第二波束成形光学元件,其被配置以将所述第二光束耦合到所述光子集成电路上的所述第二耦合器。
24.根据权利要求23所述的装置,还包括被附接到所述光子集成电路的波束重定向光学元件,所述波束重定向元件被配置以重定向所述第一光束进入所述第一耦合器以及重定向所述第二光束进入所述第二耦合器。
25.根据权利要求24所述的装置,其中所述波束重定向元件包括被配置以反射所述第一光束进入所述第一耦合器的第一表面,以及被配置以反射所述第二光束进入所述第二耦合器的第二表面。
26.根据权利要求25所述的装置,其中所述波束重定向元件的所述第一表面与所述波束重定向元件的所述第二表面重叠。
27.根据权利要求24所述的装置,其中所述波束重定向光学元件包括棱镜。
28.根据权利要求24所述的装置,其中所述波束重定向光学元件包括镜子。
29.根据权利要求23至28中任一项所述的装置,其中所述光子源包括第三激光晶粒,其被布置在所述基板上且被配置以提供第三光束,所述第一激光晶粒被配置以从第一发射位置提供所述第一光束,所述第二激光晶粒被配置以从第二发射位置提供所述第二光束,所述第三激光晶粒被配置以从第三发射位置提供所述第三光束,
其中所述第一发射位置、所述第二发射位置以及所述第三发射位置基本上沿着直线对齐,且所述第一发射位置、所述第二发射位置以及所述第三发射位置的任一个与所述直线之间的距离小于特定距离。
30.根据权利要求29所述的装置,其中所述光子源包括在所述基板上的第四激光晶粒,所述第四激光晶粒被配置以从第四发射位置提供第四光束,
其中所述第一发射位置、所述第二发射位置、所述第三发射位置以及所述第四发射位置基本上沿着平面对齐,且所述第一发射位置、所述第二发射位置、所述第三发射位置以及所述第四发射位置的任一个与所述平面之间的距离小于特定距离。
31.根据权利要求23至28中任一项所述的装置,其中所述光子源包括在所述第一基板或各个基板上的至少八个激光晶粒,所述至少八个激光晶粒包括所述第一激光晶粒以及所述第二激光晶粒,且所述第一基板或各个基板被附接到一个或多个散热器结构。
32.根据权利要求31所述的装置,其中所述激光晶粒被配置以从基本上沿着平面对齐的对应的发射位置提供光束,且任一发射位置与所述平面之间的距离小于特定距离。
33.根据权利要求23至28中任一项所述的装置,其中所述第一波束成形光学元件以及所述第二波束成形光学元件包括透镜。
34.根据权利要求23至28中任一项所述的装置,其中所述第一耦合器以及所述第二耦合器包括被耦合到各个所述第一波导以及所述第二波导的波导光栅耦合器。
35.根据权利要求23至28中任一项所述的装置,其中所述第一耦合器以及所述第二耦合器包括被耦合到各个所述第一波导以及所述第二波导的边缘耦合器。
36.根据权利要求23至28中任一项所述的装置,其中所述支撑结构包括光电中介层,其为来自所述光子集成电路的电信号提供电信号路径,并为来自所述光子集成电路的光信号提供光信号路径。
37.根据权利要求36所述的装置,其中所述光子集成电路在受控塌陷芯片连接中被附接到所述光电中介层。
38.根据权利要求37所述的装置,还包括电子集成电路。
39.根据权利要求38所述的装置,其中所述光子集成电路包括光电计算元件,且所述电子集成电路包括控制电路,其被配置以提供用以控制所述光电计算元件的电子控制信号。
40.根据权利要求39所述的装置,其中所述光电计算元件包括至少一个光调制器,其基于所述电子控制信号中的至少一个来调制光信号。
41.根据权利要求38所述的装置,其中所述电子集成电路在受控塌陷芯片连接中被附接到所述光电中介层。
42.根据权利要求38所述的装置,其中所述电子集成电路在受控塌陷芯片连接中被附接到所述光子集成电路。
43.根据权利要求36所述的装置,还包括被附接到所述光电中介层的两个或更多个动态随机存取存储器(DRAM)集成电路的高带宽存储器(HBM)堆叠。
44.根据权利要求23至28中任一项所述的装置,其中所述第一激光晶粒被配置以使所述第一光束具有第一波长,所述第二激光晶粒被配置以使所述第二光束具有第二波长,所述第一波长与所述第二波长不同,且所述光子集成电路包括波分复用计算模块,其同时处理来自所述第一光束的第一光信号以及来自所述第二光束的第二光信号。
45.一种装置,包括:
光子源,其被附接到支撑结构,所述光子源包括:
激光器模块,其被配置以提供光束;
光子集成电路,其被附接到所述支撑结构,所述光子集成电路包括:
第一波导以及耦合到所述第一波导的耦合器;以及
光电电路,其与所述第一波导光通信并被配置以从一个或多个控制电极接收一个或多个电信号;
至少一个波束成形光学元件,其被附接到所述支撑结构、所述光子源或所述光子集成电路,其中所述波束成形光学元件被配置以将所述光束耦合到所述光子集成电路上的所述耦合器;
数字电子模块,其与所述光子集成电路电性接触;
以及
电子集成电路,其与所述光子集成电路电性接触,并包括模拟电路与数字电路,其中所述模拟电路与所述一个或多个控制电极中的至少一个电性接触;
其中所述光子集成电路还包括多个金属路径,其穿过所述光子集成电路的至少一部分,被配置以在所述电子集成电路中的所述数字电路与所述数字电子模块之间提供电性接触点。
46.根据权利要求45所述的装置,其中所述数字电子模块与所述光子集成电路在和所述电子集成电路相同的平面上电性接触。
47.根据权利要求45所述的装置,其中所述数字电子模块与所述光子集成电路的第一表面电性接触,所述电子集成电路与所述光子集成电路的第二表面电性接触,所述第二表面与所述第一表面相对。
48.根据权利要求45至47中任一项所述的装置,其中所述数字电子模块包括两个或更多个动态随机存取存储器(DRAM)晶粒的堆叠。
49.根据权利要求45至47中任一项所述的装置,其中所述支撑结构包括基板,其包括表面贴装电性接触点的阵列,其与所述光子集成电路的电性接触点通信。
50.一种用于组装光子计算系统的方法,所述方法包括:
将多个激光晶粒附接到第一支撑结构,其中每个激光晶粒被配置以产生光束;
将光子集成电路附接到所述第一支撑结构,其中所述光子集成电路包括:
多个光波导,其被配置以承载光信号,其中一组多个输入值被编码在由所述光波导承载的各个光信号上;
多个耦合器,每个耦合器被耦合到对应的波导;
光网络,其包括多个分光器或定向耦合器;以及
光电电路区段的阵列,其中每个光电电路区段被配置以接收来自所述光网络的输出端口中的一个输出端口的光波,且每个光电电路区段包括:
至少一个光探测器,其被配置以探测来自操作的至少一个光波;以及
至少一个导电路径,其被整合在被电性耦合到所述光探测器且被电性耦合到电性输出端口的所述光子集成电路中;以及
将多个波束成形光学元件附接到所述第一支撑结构或所述光子集成电路,其中每个波束成形光学元件与激光晶粒以及耦合器关联,且所述附接包括对齐每个波束成形光学元件以致使由所述对应的激光晶粒产生的所述光束通过所述对应的耦合器被耦合到所述对应的波导。
51.根据权利要求50所述的方法,其中将所述多个激光晶粒附接到所述支撑结构包括:将所述多个激光晶粒附接到包括至少一个散热器或热电冷却器的第二支撑结构,并将所述第二支撑结构附接到所述第一支撑结构。
52.根据权利要求50所述的方法,其中在所述波束成形光学元件的附接期间对齐每个波束成形光学元件包括:监测反馈,所述反馈指示所述对应的光束通过所述对应的耦合器进入所述对应的波导的耦合效率。
53.根据权利要求52所述的方法,包括顺序地对齐所述波束成形光学元件,其中在第一波束成形光学元件基于监测指示所述耦合效率的所述反馈的对齐完成后,基于监测指示所述耦合效率的所述反馈对齐第二波束成形光学元件,且在所述第二波束成形光学元件基于监测指示所述耦合效率的所述反馈的对齐完成后,基于监测指示所述耦合效率的所述反馈对齐第三波束成形光学元件。
54.根据权利要求50至53中任一项所述的方法,包括将第一电子集成电路电性耦合到所述光子集成电路的顶面,并将第二电子集成电路电性耦合到所述光子集成电路的底面。
55.根据权利要求54所述的方法,其中所述第二电子集成电路包括数字储存模块,且所述第一电子集成电路包括混合数字/模拟集成电路,其被配置以提供用以控制在所述光子集成电路中的光子计算元件的模拟控制信号,并向所述数字储存模块发送数字数据或从所述数字储存模块接收数字数据。
56.根据权利要求54所述的方法,其中,所述光子集成电路包括基板,且所述方法包括提供导电通孔,所述导电通孔通过所述光子集成电路的所述基板以允许电信号通过所述导电通孔在所述第一电子集成电路以及所述第二电子集成电路之间被发送。
57.根据权利要求55所述的方法,其中每个光电电路区段包括马赫-曾德尔干涉仪,其被配置以在以下两者之间执行乘法操作:(1)基于被所述光网络缩放的所述多个输入值中的一个的值,以及(2)由被电性耦合到所述混合数字/模拟集成电路的电性输入端口提供的电性数值,且
其中所述混合数字/模拟集成电路被配置以提供所述电性数值给所述光电电路区段的所述电性输入端口。
58.根据权利要求50至53中任一项所述的方法,包括:
将所述第一支撑结构附接到平面网格阵列LGA基板;
其中将所述多个激光晶粒附接到所述第一支撑结构在所述第一支撑结构被附接到所述LGA基板后被执行。
59.一种装置,包括:
第一支撑结构;
多个激光晶粒,其被附接到所述第一支撑结构,其中每个激光晶粒被配置以产生光束;
光子集成电路,其被附接到所述第一支撑结构,其中所述光子集成电路包括:
多个光波导,其被配置以承载光信号,其中一组多个输入值被编码在由所述光波导承载的各个光信号上;
多个耦合器,每个耦合器被耦合到对应的波导;
光网络,其包括多个分光器或定向耦合器;以及
光电电路区段的阵列,其中每个光电电路区段被配置以接收来自所述光网络的输出端口中的中的一个输出端口的光波,且每个光电电路区段包括:
至少一个光探测器,其被配置以探测来自操作的至少一个光波;以及
至少一个导电路径,其被整合在被电性耦合到所述光探测器且被电性耦合到电性输出端口的所述光子集成电路中;以及
多个波束成形光学元件,其被附接到所述支撑结构或所述光子集成电路,其中每个波束成形光学元件与激光晶粒以及耦合器关联,且被配置以致使由所述对应的激光晶粒产生的所述光束通过所述对应的耦合器被耦合到所述对应的波导。
60.根据权利要求59所述的装置,包括第二支撑结构,其包括至少一个散热器或热电冷却器,其中所述多个激光晶粒被附接到所述第二支撑结构,且所述第二支撑结构被附接到所述第一支撑结构。
61.根据权利要求59所述的装置,其中所述光子集成电路包括反馈光探测器以及与所述光波导中的一个相关联的抽头波导,所述抽头波导被配置以提供耦合到所述对应的光波导的光功率的一部分给所述反馈光探测器;
其中,所述装置包括反馈监测电路,其被配置以监测由所述反馈光探测器产生的反馈信号。
62.根据权利要求59至61中任一项所述的装置,包括第一电子集成电路,其被电性耦合到所述光子集成电路的顶面,以及第二电子集成电路,其被电性耦合到所述光子集成电路的底面。
63.根据权利要求62所述的装置,其中,所述第二电子集成电路包括数字储存模块,且所述第一电子集成电路包括混合数字/模拟集成电路,其被配置以提供用以控制在所述光子集成电路中的光子计算元件的模拟控制信号,并向所述数字储存模块发送数字数据或从所述数字储存模块接收数字数据。
64.根据权利要求62所述的装置,其中,所述光子集成电路包括基板以及通过所述基板的导电通孔,所述导电通孔允许电信号通过所述导电通孔在所述第一电子集成电路以及所述第二电子集成电路之间被发送。
65.根据权利要求63所述的装置,其中,每个光电电路区段包括马赫-曾德尔干涉仪,其被配置以在以下两者之间执行乘法操作:(1)基于被所述光网络缩放的所述多个输入值中的一个的值,以及(2)由被电性耦合到所述混合数字/模拟集成电路的电性输入端口提供的电性数值,且
其中所述混合数字/模拟集成电路被配置以提供所述电性数值给所述光电电路区段的所述电性输入端口。
66.根据权利要求59至61中任一项所述的装置,其中所述耦合器包括导模谐振耦合器或边缘耦合器中的至少一个。
67.根据权利要求59至61中任一项所述的装置,其中所述多个激光晶粒被配置以产生具有多个波长的多个光束,所述多个光束包括至少两个具有不同波长的光束,且所述光子集成电路包括波分复用计算模块,其同时处理具有第一波长并代表第一值的第一光信号以及具有第二波长并代表第二值的第二光信号。
68.一种用于组装光子计算系统的方法,所述方法包括:
将多个激光晶粒附接到第一支撑结构,其中每个激光晶粒被配置以产生激光束;
将光子集成电路附接到所述第一支撑结构,其中所述光子集成电路包括:
多个输入波导,其被配置以承载输入光信号;
多个耦合器,每个耦合器被耦合到对应的输入波导;
多个操作光探测器,其中每个操作光探测器被配置以探测源自基于至少一个输入光信号的操作的光信号;
多个反馈光探测器,其中每个反馈光探测器与输入波导关联;以及
多个抽头波导,其中每个抽头波导与输入波导关联且被配置以提供耦合到所述输入波导的光功率的一部分给所述反馈光探测器;
将多个波束成形光学元件附接到所述第一支撑结构或所述光子集成电路,其中每个波束成形光学元件与所述多个激光晶粒中的一个以及所述多个耦合器中的一个相关联;
驱动所述激光晶粒以顺序地或平行地产生激光束;
使用每个反馈光探测器以产生反馈信号来指示所述激光束通过所述对应的耦合器进入所述对应的波导的耦合效率;以及
对齐每个波束成形光学元件以致使由所述对应的激光晶粒产生的所述激光束在所述光子集成电路中通过所述对应的耦合器被耦合到所述对应的输入波导,其中对齐所述波束成形光学元件是基于所述对应的反馈光探测器产生的所述反馈信号。
69.根据权利要求68所述的方法,其中对齐所述波束成形光学元件包括对齐所述波束成形光学元件以最大化所述激光束进入所述对应的波导的所述耦合。
70.根据权利要求68或69所述的方法,其中附接所述多个激光晶粒包括附接至少八个激光晶粒,所述光子集成电路被配置以对输入向量执行操作,每个输入向量具有至少八个平行比特,且每个比特由所述激光晶粒之一产生的所述激光束的调制版本表示。
71.根据权利要求68或69所述的方法,其中所述波束成形光学元件包括透镜。
72.一种装置,包括:
光子集成电路,其通过在所述光子集成电路的第一表面上的第一导电结构的阵列被附接到支撑结构,所述光子集成电路包括:
波导以及耦合器,所述耦合器被配置以将光束耦合到所述波导中;以及
电子集成电路,其通过耦合到所述光子集成电路以及所述电子集成电路的第二导电结构的布置而被附接到所述光子集成电路,其中所述第二导电结构的布置提供所述电子集成电路以及所述光子集成电路之间的电通信;
其中所述光子集成电路还包括:
多个导电通孔,其穿过所述光子集成电路的至少一部分从所述第二导电结构的布置延伸到所述光子集成电路的所述第一表面。
73.根据权利要求72所述的装置,其中所述耦合器邻近于所述光子集成电路的所述第一表面。
74.根据权利要求73所述的装置,其中所述光子集成电路还包括光电计算元件,所述光电计算元件包括被耦合到所述波导的至少一个光电计算元件。
75.根据权利要求74所述的装置,其中所述多个光电计算元件在所述光子集成电路的一个或多个层之中,所述一个或多个层相比所述第二导电结构的布置更靠近所述第一表面。
76.根据权利要求73所述的装置,其中所述第二导电结构的布置包括邻近于所述光子集成电路的第二表面的多个背面再分布层(RDL)。
77.根据权利要求76所述的装置,其中所述第二导电结构的布置包括邻近于所述电子集成电路的表面的多个背面再分布层(RDL)。
78.根据权利要求72至77中任一项所述的装置,其中所述光子集成电路还包括光电计算元件,所述光电计算元件包括被耦合到所述波导的至少一个光电计算元件。
79.根据权利要求78所述的装置,其中所述电子集成电路包括控制电路,其被配置以提供用于控制所述光电计算元件的电子控制信号。
80.根据权利要求79所述的装置,其中所述光电计算元件包括至少一个光调制器,其基于所述电子控制信号中的至少一个来调制光信号。
81.根据权利要求72至77中任一项所述的装置,其中所述支撑结构包括平面网格阵列基板,其包括在所述平面网格阵列基板的表面上的接触点的阵列,所述接触点的阵列提供通往在所述光子集成电路的所述第一表面上的所述第一导电结构的阵列的电性连接。
82.根据权利要求81所述的装置,还包括光子源,其被配置以提供所述光束。
83.据权利要求82所述的装置,其中所述光子源被附接到所述平面网格阵列基板的一部分或中介层,所述中介层被附接到所述平面网格阵列基板。
84.根据权利要求83所述的装置,其中所述耦合器包括边缘耦合器。
85.根据权利要求82所述的装置,其中所述平面网格阵列基板限定开口,且模块的一部分被插入所述开口的一部分中并被附接到所述光子集成电路的所述第一表面。
86.根据权利要求85所述的装置,其中所述模块的所述部分包括被耦合到所述光子源的光连接器。
87.根据权利要求86所述的装置,其中所述耦合器包括波导光栅耦合器。
88.根据权利要求85所述的装置,其中所述模块包括数字储存模块。
89.根据权利要求88所述的装置,其中所述数字储存模块包括两个或更多个动态随机存取存储器(DRAM)集成电路的高带宽存储器(HBM)堆叠。
90.根据权利要求72至77中任一项所述的装置,其中所述耦合器包括波导光栅耦合器。
91.根据权利要求72至77中任一项所述的装置,其中所述耦合器包括边缘耦合器。
92.一种装置,包括:
电子集成电路;以及
光子集成电路,包括:
多个导电通孔,其穿过所述光子集成电路的至少一部分,其中所述导电通孔延伸到所述光子集成电路的背对所述电子集成电路的第一表面,且所述导电通孔被配置以提供所述电子集成电路到所述光子集成电路的所述第一表面上所耦合的元件的导电路径。
93.根据权利要求92所述的装置,其中所述多个导电通孔被配置以为所述电子集成电路提供到基板的电性接触点,其中所述光子集成电路被布置在所述电子集成电路以及所述基板之间。
94.根据权利要求93所述的装置,其中所述基板包括平面网格阵列基板,其包括在所述平面网格阵列基板的表面上的接触点的阵列,所述接触点的阵列提供通往在所述光子集成电路的所述第一表面上的导电结构的阵列的电性连接。
95.根据权利要求94所述的装置,包括所述平面网格阵列基板。
96.根据权利要求92所述的装置,其中所述光子集成电路包括:
波导;
耦合器,其被配置以将光束耦合到所述波导中;以及
光电计算元件,其包括被耦合到所述波导的至少一个光电计算元件。
97.根据权利要求96所述的装置,其中所述电子集成电路包括控制电路,所述控制电路被配置以提供用于控制所述光子集成电路中的所述光电计算元件的电子控制信号。
98.根据权利要求96所述的装置,包括光子源,其被配置以提供所述光束。
99.根据权利要求92至98中任一项所述的装置,包括被电性耦合到所述光子集成电路的所述第一表面的存储设备,其中所述电子集成电路被电性耦合到所述光子集成电路的第二表面,且所述电子集成电路通过至少一些所述导电通孔被电性耦合到所述存储设备。
100.根据权利要求99所述的装置,其中所述存储设备包括两个或更多个动态随机存取存储器(DRAM)集成电路的高带宽存储器(HBM)堆叠。
101.一种用于制造集成光电设备的方法,包括:
形成光子集成电路的多个层,包括在导电通孔的末端被显露的一层上形成多个再分布层(RDL);
形成电子集成电路的多个层,包括在电子信号被提供的一层上形成多个再分布层(RDL);以及
将所述光子集成电路的多个RDL与所述电子集成电路的多个RDL结合在一起。
102.根据权利要求101所述的方法,其中形成所述光子集成电路的所述多个层还包括:
在一个或多个层中形成波导以及被耦合到所述波导的耦合器;
在一个或多个层中形成光电计算元件,所述光电计算元件包括被耦合到所述波导的至少一个光电计算元件,以及
形成穿过多个层的所述导电通孔,所述多个层包括所述波导、所述耦合器以及所述多个光电计算元件被形成其中的所述一个或多个层。
103.根据权利要求102所述的方法,其中形成所述电子集成电路的所述多个层还包括在一个或多个层中形成被配置以提供所述电子信号的电路。
104.根据权利要求102所述的方法,还包括移除所述光子集成电路的一部分以显露所述导电通孔的末端以及显露所述耦合器。
105.根据权利要求104所述的方法,还包括将所述导电通孔的多个被显露的末端通过导电结构的阵列附接到支撑结构。
106.根据权利要求105所述的方法,其中所述支撑结构包括平面网格阵列基板,其包括在所述平面网格阵列基板的表面上的接触点的阵列,所述接触点的阵列提供通往所述导电结构的阵列的电性连接。
107.根据权利要求106所述的方法,还包括在所述平面网格阵列基板中形成开口,并将模块附接到所述光子集成电路的表面,其中所述模块的一部分被插入所述开口的一部分中。
108.根据权利要求107所述的方法,其中所述模块包括光子源,其被定位以提供光束给所述耦合器。
109.根据权利要求107所述的方法,其中所述模块包括两个或更多个动态随机存取存储器(DRAM)集成电路的高带宽存储器(HBM)堆叠。
110.根据权利要求102至109中任一项所述的方法,其中所述耦合器包括波导光栅耦合器。
111.一种人工神经网络计算系统,包括权利要求23至28、59至61以及72至77中任一项所述的装置。
112.一种系统,包括机器人、自动驾驶车、自驾无人机、医疗诊断系统、诈欺探测系统、天气预测系统、财务预测系统、面部识别系统、语音识别系统、元宇宙生成器或产品缺陷检测系统中的至少一个,
其中所述机器人、所述自动驾驶车、所述自驾无人机、所述医疗诊断系统、所述诈欺探测系统、所述天气预测系统、所述财务预测系统、所述面部识别系统、所述语音识别系统、所述元宇宙生成器或所述产品缺陷检测系统中的至少一个包括权利要求23至28、59至61以及72至77中任一项所述的装置。
113.一种系统,包括移动电话或便携式计算机中的至少一个,其中所述移动电话或所述便携式计算机包括权利要求23至28、59至61以及72至77中任一项所述的装置。
CN202180093234.3A 2020-12-09 2021-12-09 光子计算平台 Pending CN117642659A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US63/123,338 2020-12-09
US202163253704P 2021-10-08 2021-10-08
US63/253,704 2021-10-08
PCT/US2021/062654 WO2022125798A1 (en) 2020-12-09 2021-12-09 Photonic computing platform

Publications (1)

Publication Number Publication Date
CN117642659A true CN117642659A (zh) 2024-03-01

Family

ID=90038054

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180093234.3A Pending CN117642659A (zh) 2020-12-09 2021-12-09 光子计算平台

Country Status (1)

Country Link
CN (1) CN117642659A (zh)

Similar Documents

Publication Publication Date Title
TWI825452B (zh) 光電計算系統
US11853871B2 (en) Optoelectronic computing systems
US11734556B2 (en) Optoelectronic computing systems
TWI819368B (zh) 光電計算系統
TWI758994B (zh) 光電處理系統
US20220179159A1 (en) Photonic computing platform
CN113568470B (zh) 光电处理设备、系统和方法
TW202147060A (zh) 光電計算系統
TWI777108B (zh) 計算系統、計算裝置及計算系統的操作方法
CN117642659A (zh) 光子计算平台
CN113570051B (zh) 光电处理系统
CN113570051A (zh) 光电处理系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination