光电处理系统

文档序号:169840 发布日期:2021-10-29 浏览:41次 >En<

阅读说明:本技术 光电处理系统 (Photoelectric processing system ) 是由 J.邓 A.霍塞因扎德 Y.徐 Y.白 孟怀宇 R.加格农 卢正观 J.特里 M.斯 于 2021-04-29 设计创作,主要内容包括:一种光电处理系统,包括:至少一个输入光学波导,被配置以接收光波;至少一个数字输入端口,被配置以接收一系列数字输入值,每个数字输入值包括两个或更多个比特;以及光学调制器,耦合至所述输入光学波导。所述光学调制器包括光学波导部分,所述光学波导部分包括多个光学波导片段,所述光学波导片段与沿着所述光学片段定位的二极管区段相关联,其中所述二极管区段被配置为对通过所述光学波导片段传播的光波施加不同的相应调制贡献。(An electro-optical processing system, comprising: at least one input optical waveguide configured to receive a light wave; at least one digital input port configured to receive a series of digital input values, each digital input value comprising two or more bits; and an optical modulator coupled to the input optical waveguide. The optical modulator includes an optical waveguide portion including a plurality of optical waveguide segments associated with diode segments positioned along the optical segments, wherein the diode segments are configured to impose different respective modulation contributions to light waves propagating through the optical waveguide segments.)

光电处理系统

相关申请的交叉引用

本申请要求于2019年12月4日提交的美国临时申请62/943,756、于 2020年4月29日提交的美国临时申请63/017,211、于2020年7月6日提交 的美国临时申请63/048,439以及于2020年8月6日提交的美国临时申请 63/061,995的优先权。以上申请的全部公开内容通过引用合并于此。

技术领域

本公开涉及一种用于光电处理的光学调制。

背景技术

神经形态计算(neuromorphic computing)是电子领域中近似大脑的操作 的方法。神经形态计算的一个突出方法是人工神经网络(artificial neural network;ANN),它是人工神经元的集合,人工神经元以特定的方式相互连 接,以类似于大脑功能的方式处理信息。ANN已经在多种应用中找到了用 途,这些应用包括人工智能、语音识别、文本识别、自然语言处理以及各种 形式的模式识别。

ANN具有输入层、一个或多个隐藏层以及输出层。每个层具有节点或人 工神经元,并且节点在层之间互连。隐藏层的每个节点执行从先前层的节点 所接收的信号的加权总和(weighted sum),并且执行加权总和的非线性变 换(“激活”)以产生输出。可以通过执行矩阵乘法步骤来计算加权总和。因 此,计算ANN通常涉及多个矩阵乘法步骤,其通常使用电子集成电路来执 行。

对以模拟或数字形式编码在电子信号(例如电压或电流)上的电子数据 所执行的计算通常使用电子计算硬件来实现,例如在集成电路中实现的模拟 或数字电子装置(例如:处理器、专用集成电路(application-specific integrated circuit;ASIC)或片上系统(system on a chip;SoC))、电子电路板或其他 电子电路。光学信号已被用于在长距离和较短距离(例如:在数据中心内) 上传输数据。在这种光学信号上执行的操作通常在光学数据传输的环境中进 行,例如用于在网络中切换或过滤光学信号的装置内。在计算平台中使用光 学信号已被更多限制。用于全光学(all-optical)计算的各种部件和系统已被 提出。例如,系统可包括分别地在输入和输出处从电信号和到电信号的转换, 但是对于在计算中执行的重要操作不可使用两种类型(电和光)的信号。

发明内容

在通常情况下,在第一方面,一种系统包括至少一个输入光学波导 (opticalwaveguide),被配置以接收光波;至少一个数字输入端口,被配置以 在连续时间间隔内接收一系列数字输入值,每个数字输入值包括两个或更多 个比特;以及光学调制器(opticalmodulator),耦合至该输入光学波导。该光 学调制器包括光学波导部分,该光学波导部分包括沿着该光学波导部分定位 的多个二极管区段。该二极管区段对通过该光学波导部分传播的光波施加不 同的相应调制贡献(contribution),每个二极管区段包括光径长(optical path length)小于约1毫米的半导体二极管,以及用于向处于正向偏置(forward- biased)状态的该半导体二极管施加电信号的电触点,在该正向偏置状态下 该二极管区段的光学特性被响应于该数字输入值中的对应比特的值而调制。 该光学调制器包括信号调节(signal conditioning)电路,被配置以与一系列数 字输入值中连续的数字输入值之间对应的改变相关联地整形(shape)施加至 该半导体二极管中的至少一个的电信号的幅度改变。

方面可包括一个或多个下列特征。与一系列数字输入值中连续的数字输 入值相关联地整形施加至该半导体二极管的电信号的幅度改变可包括:对于 第二时间间隔的起始部分,增大与第一时间间隔相关联的第一电信号水平和 与第二时间间隔相关联的第二电信号水平之间的幅度改变的大小。

与一系列数字输入值中连续的数字输入值相关联地整形施加至该半导 体二极管的电信号的幅度改变可进一步包括:对于第二时间间隔的最终部分, 减少第一电信号水平与第二电信号水平之间的幅度改变的大小。

与一系列数字输入值中连续的数字输入值相关联地整形施加至该半导 体二极管的电信号的幅度改变可包括:通过匹配电路施加电信号至该半导体 二极管,该匹配电路被配置以匹配与该半导体二极管相关联的阻抗,而不显 著改变该所施加的电信号的幅度。

该匹配电路可包括无源电路。

该匹配电路可基本上由电感器组成。

对于一系列数字输入值中连续的数字输入值,整形施加至该半导体二极 管的电信号的幅度改变可包括:通过电路施加电信号至该半导体二极管,该 电路被配置以在该半导体二极管与电容器之间泵送电流,该电容器串联连接 在该半导体二极管与提供该一系列数字输入值的电路之间,其中所泵送的电 流所传输的电荷量是至少部分基于在提供该一系列数字输入值的多个连续 时间间隔中恒定的电压来确定的。

该光学调制器可包括干涉仪光学调制器(interferometric opticalmodulator),该干涉仪光学调制器进一步包括光学干涉部分,该光学干涉部分 被配置以基于该二极管区段的累积调制贡献,提供导致预定的幅度减少的一 定程度的相消光学干涉(destructive optical interference)。

该光学干涉部分可包括光学组合器(optical combiner)。

该光学波导部分可包括:至少两个光学波导片段,每个光学波导片段接 收从耦合至该输入光学波导的同一分光器(optical splitter)分出的光波,以及 提供光波至该光学组合器。

该二极管区段的光学特性可包括该二极管区段的有效折射率,不同的相 应调制贡献可包括不同的相应相移。

第一二极管区段的第一半导体二极管的光径长,可约为第二二极管区段 的第二半导体二极管的光径长的两倍。

对于一系列数字输入值中连续的数字输入值,整形施加至该半导体二极 管的电信号的幅度改变可包括:响应于对应比特的值由0至1的改变,施加 电信号幅度的第一预定形状至该第一二极管区段的电触点和该第二二极管 区段的电触点,以及响应于对应比特的值由1至0的改变,施加电信号幅度 的第二预定形状至该第一二极管区段的电触点和该第二二极管区段的电触 点。

对于一系列数字输入值中连续的数字输入值,整形施加至该半导体二极 管的电信号的幅度改变可包括:通过第一匹配电路施加电信号至该第一二极 管区段的电触点,以及通过第二匹配电路施加电信号至该第二二极管区段的 电触点,该第一匹配电路被配置以匹配与该第一半导体二极管相关联的阻抗, 该第二匹配电路被配置以匹配与该第二半导体二极管相关联的阻抗。

该第一匹配电路和该第二匹配电路各自可基本上由电感器组成。

该输入光学波导可耦合至光学解复用器(optical demultiplexer),该光学解 复用器分离至少两个不同波长的光波。

该光学调制器可包括吸收光学调制器(absorption optical modulator),该吸收光学调制器被配置以基于该二极管区段的累积调制贡献,提供导致预定幅 度减少的一定程度的吸光度(absorbance)。

该二极管区段的光学特性可包括该二极管区段的吸光系数,不同的相应 调制贡献可包括不同的相应吸光度。

该至少一个输入光学波导可包括多个输入光学波导,多个光学调制器可 各自与该多个输入光学波导中不同相应输入光学波导耦合,并且来自该多个 光学调制器的输出可被组合以提供向量-矩阵乘法的结果。

在另一总体方面,一种系统包括:至少一个输入光学波导,被配置以接 收光波;至少一个数字输入端口,被配置以在连续时间间隔中接收一系列数 字输入值,每个数字输入值包括两个或更多个比特;以及干涉仪光学调制器, 耦合至该输入光学波导。该干涉仪光学调制器包括光学波导部分,该光学波 导部分包括沿着该光学波导部分的二极管区段。该二极管区段对通过该光学 波导部分传播的光波进行调制,该二极管区段包括:光径长小于约1毫米的 半导体二极管,以及用于向处于正向偏置状态的该半导体二极管施加电信号的电触点,在该正向偏置状态下该二极管区段的光学特性被响应于该数字输 入值而调制。该干涉仪光学调制器包括信号调节电路,被配置以与一系列数 字输入值中连续的数字输入值之间对应的改变相关联地整形施加至该半导 体二极管的电信号的幅度改变。该信号调节电路包括:第一信号调节路径, 提供对应于该一系列数字输入值的未调节电信号;第二信号调节路径,提供 该未调节电信号的延迟、缩放和/或反相版本;以及第三信号调节路径,提供 该未调节电信号的延迟、缩放和/或反相版本。该干涉仪光学调制器进一步包 括光学干涉部分,被配置以基于该二极管区段的光学特性的调制,提供导致 预定的幅度减少的一定程度的相消光学干涉。

方面可包括一个或多个下列特征。该光学干涉部分可包括一对光学波导 中每个光学波导的耦合部分,该每个光学波导的耦合部分彼此接近。

该光学波导部分可包括该对光学波导中形成在封闭路径中的第一光学 波导。

在另一总体方面,一种系统包括:至少一个输入光学波导,被配置以接 收光波;至少一个数字输入端口,被配置以接收一系列数字输入值,每个数 字输入值包括两个或更多个比特;以及光学调制器,耦合至该输入光学波导, 该光学调制器包括光学波导部分,该光学波导部分包括沿着该光学波导部分 定位的多个二极管区段,其中该二极管区段被配置以对通过该光学波导部分 传播的光波施加不同的相应调制贡献。

方面可包括一个或多个下列特征。该光学调制器可包括信号调节电路, 被配置以与一系列数字输入值中连续的数字输入值之间对应的改变相关联 地整形施加至该二极管区段中的至少一个的电信号的幅度改变。

每个二极管区段可包括:半导体二极管,以及用于向处于正向偏置状态 的该半导体二极管施加电信号的电触点,在该正向偏置状态下该二极管区段 的光学特性被响应于该数字输入值中的对应比特的值而调制。

每个半导体二极管可具有小于约1毫米的光径长。

在另一总体方面,一种系统包括:至少一个输入光学波导,被配置以接 收光波;至少一个数字输入端口,被配置以接收一系列数字输入值,每个数 字输入值包括两个或更多个比特;以及干涉仪光学调制器,耦合至该至少一 个输入光学波导。该干涉仪光学调制器包括光学波导部分,该光学波导部分 包括沿着该光学波导部分定位的二极管区段,其中该二极管区段被配置以对 通过该光学波导部分传播的光波进行调制。该干涉仪光学调制器包括信号调 节电路,被配置以与一系列数字输入值中连续的数字输入值之间对应的改变相关联地整形施加至该二极管区段的电信号的幅度改变。该信号调节电路包 括:第一信号调节路径,提供对应于该一系列数字输入值的未调节电信号; 第二信号调节路径,提供该未调节电信号的延迟、缩放和/或反相版本;以及 第三信号调节路径,提供该未调节电信号的延迟、缩放和/或反相版本。

方面可包括一个或多个下列特征。该二极管区段可包括光径长小于约1 毫米的半导体二极管。

该干涉仪光学调制器可包括光学干涉部分,被配置以基于该二极管区段 光学特性的调制,提供导致预定的幅度减少的一定程度的相消光学干涉。

该二极管区段可包括:半导体二极管,以及用于向处于正向偏置状态的 该半导体二极管施加电信号的电触点,在该正向偏置状态下该二极管区段的 光学特性被响应于该数字输入值而调制。

该半导体二极管可具有小于约1毫米的光径长。

在另一总体方面,一种系统包括光学调制器,被配置以调制代表一系列 数字输入值的光波,每个数字输入值包括两个或更多个比特。该光学调制器 包括光学波导部分,该光学波导部分包括沿着该光学波导部分定位的多个二 极管区段。该二极管区段被配置为在光波通过该光学波导部分传播时向光波 施加不同的相应调制贡献。每个二极管区段包括半导体二极管,被配置以在 正向偏置状态下操作,在该正向偏置状态下该二极管区段的光学特性被响应 于该数字输入值中的对应比特的值而调制。该光学调制器包括信号调节电路, 被配置以与一系列数字输入值中连续的数字输入值之间对应的改变相关联 地整形施加至该二极管区段中的至少一个的电信号的幅度改变。

方面可包括下列特征。每个半导体二极管可具有小于约1毫米的光径长。

在另一总体方面,一种系统包括:第一单元,被配置以产生调制器控制 信号的第一集合;第二单元,被配置以产生调制器控制信号的第二集合,以 及处理器单元。该处理器单元包括光源或光端口,被配置以提供多个光输出; 以及光学调制器的第一集合,耦合至该光源或光端口和该第一单元。该第一 集合的光学调制器被配置以通过基于对应于该调制器控制信号的第一集合 的数字输入值调制该由该光源或光端口提供的多个光输出,来产生光学输入 向量,该光学输入向量包括多个光学信号。该处理器单元还包括矩阵乘法单元,该矩阵乘法单元包括光学调制器的第二集合。该矩阵乘法单元耦合至该 第二单元,被配置以基于对应于该调制器控制信号的第二集合的多个数字权 重值,将该光学输入向量转换为模拟输出向量。该光学调制器的第一集合中 的至少一个光学调制器包括第一光学波导部分,该第一光学波导部分包括沿 着该第一光学波导部分定位的多个二极管区段。该二极管区段被配置以基于 该数字输入值之一的不同相应单个比特,对通过该第一光学波导部分传播的 光波施加不同的相应调制贡献。该光学调制器的第二集合中的至少一个光学 调制器包括第二光学波导部分,该第二光学波导部分包括单个二极管区段, 被配置以基于其中该数字权重值之一的多个比特,对通过该第二光学波导部 分传播的光波施加调制。

方面可包括下列特征。每个相应二极管区段包括半导体二极管,被配置 以在正向偏置状态下操作,在该正向偏置状态下该二极管区段的光学特性被 响应于该数字输入值之一的对应比特的值而调制。

在另一总体方面,一种系统包括:至少一个输入光学波导,被配置以接 收光波;至少一个数字输入端口,被配置以在连续时间间隔中接收一系列数 字输入值,每个数字输入值包括两个或更多个比特;以及光学调制器,耦合 至该输入光学波导。该光学调制器包括:光学波导部分,该光学波导部分包 括多个光学波导片段,该光学波导片段与沿着对应的光学波导片段定位的多 个二极管区段相关联,该光学波导片段为连续光学波导的一部分,在该连续 光学波导中该二极管区段被配置以对通过该光学波导片段传播的光波施加 不同的相应调制贡献。每个相应二极管区段包括:光径长小于约1毫米的半 导体二极管,以及用于向处于正向偏置状态的该半导体二极管施加电信号的 电触点,在该正向偏置状态下与该二极管区段相关联的光学波导片段的光学 特性被响应于该数字输入值中的对应比特的值而调制,以及信号调节电路, 被配置以与一系列数字输入值中连续的数字输入值之间对应的改变相关联 地整形施加至该半导体二极管中的至少一个的电信号的幅度改变。

在另一总体方面,一种系统包括:至少一个输入光学波导,被配置以接 收光波;至少一个输入端口,被配置以接收一系列调制器控制信号;以及光 学调制器,耦合至该输入光学波导,被配置以提供具有四个或更多个幅度水 平的脉冲幅度调制。该光学调制器包括第一调制器臂(modulator arm)和第二 调制器臂,该第一调制器臂和该第二调制器臂中的至少一个调制器臂包括光 学波导和沿着该光学波导定位的多个移相器(phaseshifters),该移相器被配置 以对通过该光学波导传播的光波施加不同的相应调制贡献,每个移相器耦合 至被配置以提供用于二进制调制(binary modulation)的增强带宽的相应的信 号调节电路,并且不同移相器耦合至不同的信号调节电路。每个移相器包括 与小于约1毫米的光径长相关联的半导体二极管或电容器。该系统包括控制 电路,被配置以对每个移相器进行至少以下之一:(i)提供电信号至该半导体 二极管,以使得该半导体二极管处于正向偏置状态,在该正向偏置状态下与 该移相器相关联的光学波导的光学特性被响应于该调制器控制信号而调制, 或(ii)提供电信号至该电容器,以使得电荷累积于该电容器处,其中与该移 相器相关联的光学波导的光学特性被响应于该调制器控制信号而调制。

在另一总体方面,一种系统包括:光学调制器,被配置以调制代表一系 列数字输入值的光波,每个数字输入值包括两个或更多个比特,该光学调制 器包括光学波导部分,该光学波导部分包括沿着该光学波导部分定位的多个 二极管区段,其中该二极管区段被配置为在光波通过该光学波导部分传播时 对光波施加不同的相应调制贡献。每个二极管区段包括半导体二极管,被配 置以在正向偏置状态下操作,在该正向偏置状态下该二极管区段的光学特性 被响应于该数字输入值的对应比特的值而调制。该光学调制器包括多个信号 调节电路,被配置以与一系列数字输入值中连续的数字输入值之间对应的改 变相关联地整形施加至每个二极管区段的电信号的幅度改变,其中每个信号 调节电路与该二极管区段之一相关联,并且不同二极管区段与不同信号调节 电路相关联。

在另一总体方面,一种系统包括:光学调制器的第一集合,被配置以通 过基于调制器控制信号调制多个输入光信号,来产生光学输入向量,该光学 输入向量包括多个光学信号;以及矩阵处理单元,包括光学调制器的第二集 合,该矩阵处理单元耦合至该调制器阵列,并且被配置以基于多个权重值, 将该光学输入向量转换为模拟输出向量。该光学调制器的第一集合中的至少 一个光学调制器包括第一调制器臂和第二调制器臂,该第一调制器臂和该第 二调制器臂中的至少一个调制器臂包括光学波导和沿着该光学波导定位的至少两个移相器,该移相器被配置以基于该调制控制信号之一对通过该光学 波导传播的光波施加调制贡献,不同移相器被配置以响应于相同的调制控制 信号水平对通过该光学波导传播的该光波施加不同的相应调制贡献。该光学 调制器的第二集合中的至少一个光学调制器包括第一调制器臂和第二调制 器臂,该第一调制器臂和该第二调制器臂各自包括光学波导,该第一调制器 臂和该第二调制器臂中的至少一个调制器臂包括沿着该光学波导定位的单 个移相器,该第一调制器臂和该第二调制器臂各自包括至多一个移相器。

在另一总体方面,一种系统包括:第一单元,被配置以产生多个调制器 控制信号;以及处理器单元。该处理器单元包括:被配置以提供多个光输出 的光源、调制器阵列、以及矩阵处理单元。该调制器阵列包括多个光学调制 器的第一集合,耦合至该光源和该第一单元,该多个光学调制器被配置以通 过基于该多个调制器控制信号调制该光源提供的多个光输出,来产生光学输 入向量,该光学输入向量包括多个光学信号,其中该多个光学调制器中的每 一个具有片段式设计并且包括两个或更多个移相器,每个该移相器与信号调 节电路相关联,该信号调节电路被配置以实现该移相器的预加重(pre- emphasis)和去加重(de-emphasis),以增强该移相器的操作带宽。该矩阵处 理单元耦合至该调制器阵列和该第一单元,该矩阵处理单元被配置以基于多 个权重控制信号,将该光学输入向量转换为模拟输出向量,其中该矩阵处理 单元包括具有非片段式设计的多个光学调制器的第二集合,每个光学调制器 在至少一个调制器臂中具有单个移相器,每个调制器臂具有至多一个移相器。 该系统包括第二单元,耦合至该矩阵乘法单元,并且被配置以将该模拟输出 向量转换为数字化输出向量;以及控制器,包括集成电路,被配置以进行包 括以下内容的操作:接收人工神经网络计算请求,该人工神经网络计算请求 包括输入数据集(dataset),该输入数据集包括第一数字输入向量;接收第一多 个神经网络权重;以及通过该第一单元,基于该第一数字输入向量产生第一 多个调制器控制信号,以及基于该第一多个神经网络权重产生第一多个权重 控制信号。

方面可包括一个或多个下列优点。

在本说明书描述的某些实施例中,选择用于执行光学调制的组件的类型, 和/或这些组件的特性,以提供所得光电计算系统效能中的性能改进或其他设 计优点。在使用硅光子学(silicon photonics)技术制造的系统中,可以在硅中形 成光学波导,并且存在可以通过在波导附近掺杂硅以实现对于在该波导中传 播的光波的调制来形成的各种类型的半导体二极管结构。例如,可设计PIN 二极管结构或金属-氧化物-半导体(MOS)电容器,以使用不同的掺杂分布 (doping profiles)通过载流子注入(carrier injection)、载流子耗尽(carrier depletion)或载流子累积(carrier accumulation)实现基于自由载流子的调制 (free-carrier-based modulation)。载流子注入使用正向偏置的PIN二极管结构,由于其调制效率高,故一般具有相对较小的尺寸(例如小于1毫米),但提供 较低速度的调制(例如小于约1Gb/s),而载流子耗尽使用反向偏置的PIN二 极管结构,其一般具有较大的尺寸(例如大于1毫米)但提供较高速度的调制 (例如大于约1Gb/s)。在一些示例中,载流子累积使用电容器以储存电荷,其 中该电容器包括薄垂直绝缘层。对于某些半导体工艺而言,可能难以制造薄 垂直绝缘层。因此,对某些半导体工艺而言,用于实现载流子注入的正向偏 置PIN二极管结构可能更容易制造。

载流子注入提供小尺寸和低功率特性两者,这在具有密集的调制器阵列 的大规模光电计算系统中十分有用。如下文更详细所述,与载流子注入PIN 二极管结构相结合,使用用于多比特调制(例如PAM调制)的片段式调制器 设计,可以使用带宽增强技术,以简单、紧凑的适合该系统中的调制器的密 集布置的设计,克服带宽限制(例如将带宽增加约10倍)。由于所得的增强带 宽并不一定需要与载流子耗尽或载流子累积调制器所能达到的带宽一样高, 因此由该片段式调制器实现的简单带宽增强与载流子注入调制器的紧凑尺 寸的组合协同地提供在本说明书描述的一些系统实施例中特别有用的优点。 某些形式的带宽增强,例如预加重,可能在有多于两个幅度水平时难以实现。 然而,如下文中更详细描述的,利用片段式调制器,可以为多比特调制的每 个比特的两个幅度水平实现单独的二进制预加重。

此外,由于使用已调制光学信号进行计算,因此在转换为数字信号时被 采样的计算的结果的模拟幅度水平的数量(例如使用PAM-256调制的8比特 信号)可能大于该计算的输入的水平的数量(例如使用PAM-16调制的4比特 信号)。例如,4比特值与另一4比特值相乘可得适合以8比特表示的值。因 此,在该输入信号被该光电计算系统处理后,需要提高分辨率的情况下,由 于需要有效的模拟至数字转换,因此促使使用带宽增强以提高信号噪声比 (signal to noise ratio)。

除非另外定义,否则此处所使用的所有技术和科学术语具有与所属技术 领域的普通技术人员通常理解的相同含义。如果与引用并入本文的专利申请 或专利申请出版物相冲突,则以本公开(包括定义)为准。

在附图和以下描述中阐述了在本公开中所描述的主题的一个或多个实 施例的细节。根据说明书、附图和权利要求书,本公开的其他特征、方面和 优点将变得显而易见。

附图说明

当结合附图阅读时,从以下详细描述中可以最好地理解本公开。所要强 调的是,根据惯例,附图的各种特征不是按比例的。相反地,为了清楚起见, 各种特征的尺寸被任意扩大或缩小。

图1是人工神经网络(ANN)计算系统的示例的示意图。

图2是MZI的示例的示意图。

图3电荷泵送(charge-pump)带宽增强电路的示例的图。

图4是示出用于执行ANN计算的方法的示例的流程图。

图5是示出图4的方法的一个方面的图。

图6是波分复用ANN(wavelength division multiplexed ANN)计算系统 的示例的示意图。

图7是马赫曾德尔(Mach-Zehnder)调制器的示例的图。

图8是使用片段式设计的马赫曾德尔调制器的示例的图。

图9是图8的马赫曾德尔调制器和对应的驱动电路的图。

图10至图16是示例马赫曾德尔调制器的图。

图17是用于图3的电荷泵送带宽增强电路的时序图。

图18是示出图7的马赫曾德尔调制器的强度-电压曲线的曲线图。

图19是示例光电计算系统的示意图。

图20和图21是示例系统配置的示意图。

图22是对称差分配置(symmetric differential configuration)的示例的示 意图。

图23和图24是系统模块的示例的电路图。

图25是对称差分配置的示例的示意图。

图26是系统配置的示例的示意图。

图27是示例光学幅度调制器的示意图。

图28至图30是在对称差分配置中使用光学检测的光学幅度调制器的示 例的示意图。

图31至图33是示例系统配置的光电电路图。

图34至图38是使用多个光电子系统的示例计算系统的示意图。

图39是使用光电处理器的波分复用ANN计算系统的示例的示意图。

图40和图41是波分复用光电矩阵乘法单元的示例的示意图。

图42是零差检测器(homodyne detector)的示意图。

图43是包括光纤的计算系统的示意图,每个光纤承载具有多个波长的 信号。

图44是光学矩阵乘法单元的示例的示意图。

图45和图46是互连马赫曾德尔干涉仪(MZI)的示例配置的示意图。

图47是包括校准移相器的片段式MZI调制器的示意图。

图48是图47的片段式MZI调制器和相关驱动电路的示意图。

图49示出了包括校准移相器的片段式MZI调制器的示意图。

图50示出了具有片段式设计的光学调制器的调制器阵列的示例。

图51是人工神经网络(ANN)计算系统的示例的示意图。

图52是波分复用光电矩阵乘法单元的示例的示意图。

图53是示出用于执行ANN计算的方法的示例的流程图。

图54是具有片段式设计的环形谐振器(ring resonator)调制器的示例的图。

各图中相同的附图标记和名称表示相同的组件。

具体实施方式

图1示出了人工神经网络(ANN)计算系统100的示例的示意图。系统 100包括控制器110、存储器单元120、调制器控制(MC)单元130、光电 处理器140以及模拟数字转换(ADC)单元160。控制器110耦合至计算机 102、存储器单元120、MC单元130以及ADC单元160。控制器110包括 集成电路,其被配置以控制ANN计算系统100的操作来执行ANN计算。

控制器110的集成电路可以是特别配置以执行ANN计算处理的步骤的 专用集成电路。例如,集成电路可实现特定于执行ANN计算处理的微代码 或固件。如此一来,控制器110可以具有相对于用于传统计算机(例如计算 机102)中的通用处理器的减少的指令集。在一些实施例中,控制器110的 集成电路可包括两个或更多个电路,其被配置以执行ANN计算处理的不同 步骤。

在ANN计算系统100的示例操作中,计算机102可以对ANN计算系 统100发出人工神经网络计算请求。ANN计算请求可包括定义ANN的神经 网络权重,以及由所提供的ANN处理的输入数据集。控制器110接收ANN 计算请求,并将输入数据集和神经网络权重储存在存储器单元120中。

输入数据集可对应ANN将要处理的各种数字信息。输入数据集的示例 包括图像文件、音频(audio)文件、激光雷达(LiDAR)点云、生物数据 文件和GPS坐标序列,并且将基于接收图像文件作为输入数据集来描述 ANN计算系统100的操作。通常来说,输入数据集的尺寸可以变化很大,从 数百个数据点(data point)到数百万个数据点或更大。例如,具有1百万像 素(megapixel)分辨率的数字图像文件具有大约一百万个像素,并且一百万 个像素中的每个可以是由ANN处理的数据点。由于在典型输入数据集中的 大量数据点,输入数据集通常被分成较小尺寸的多个数字输入向量,以通过 光电处理器140来分别地处理。作为示例,对于灰度数字图像(greyscale digital image),数字输入向量的元素可为表示图像强度的8比特值,并且数字输入 向量可具有范围从数十元素(例如:32元素、64元素)到数百元素(例如: 256元素、512元素)的长度。通常来说,任意尺寸的输入数据集可以被分成 适合用于由光电处理器140处理的尺寸的数字输入向量。在输入数据集的元 素数量不能被数字输入向量的长度整除的情况下,可以使用零填充(zero padding)来填充数据集,以使其可被数字输入向量的长度整除。可以处理各 个数字输入向量的处理输出以重建完整输出,其为通过ANN处理输入数据 集的结果。在一些实施例中,可以使用块矩阵乘法技术(blockmatrix multiplication technique)来实现将输入数据集分成多个输入向量和后续的向量级(vector-level)处理。

神经网络权重是值的集合,其定义ANN的人工神经元的连接性 (connectivity),包括那些连接的相对重要性或权重。ANN可包括具有相应 节点集的一个或多个隐藏层。在具有单个隐藏层的ANN的情况下,ANN可 以由两个神经网络权重的集合定义,一个集合对应输入节点与隐藏层的节点 之间的连接性,第二集合对应隐藏层与输出节点之间的连接性。描述连接性 的每个集合的神经网络权重对应于要由光电处理器140实现的矩阵。对于具有两个或更多个隐藏层的ANN,需要额外的神经网络权重的集合来定义额 外隐藏层之间的连接性。如此一来,在通常情况下,ANN计算请求中包括的 神经网络权重可包括多个神经网络权重的集合,其表示ANN的相应层之间 的连接性。

由于要处理的输入数据集通常被分成用于分别处理的多个较小的数字 输入向量,因此输入数据集通常储存在数字存储器中。然而,计算机102的 存储器和处理器之间的存储操作的速度明显慢于ANN计算系统100可以执 行ANN计算的速率。例如,ANN计算系统100可以在计算机102的典型存 储器读取周期期间执行数十个到数百个ANN计算。如此一来,在处理ANN 计算请求的过程期间,如果ANN计算系统100的ANN计算涉及系统100与 计算机102之间的多个数据传输,则可被ANN计算系统100执行的ANN计 算的速率可以被限制在其全部处理速率之下。例如,如果计算机102要从它 自己的存储器存取输入数据集,并且在请求时将数字输入向量提供给控制器 110,则ANN计算系统100的操作可能会因计算机102与控制器110之间所 需的一系列数据传输所需的时间而大大减慢。值得注意的是,计算机102的 存储器存取延迟(latency)通常是非确定性的(non-deterministic),这进一步 将数字输入向量可被提供给ANN计算系统100的速度复杂化并且降低该速 度。此外,计算机102的处理器周期可能在管理计算机102与ANN计算系 统100之间的数据传输时被浪费。

相反,在一些实施例中,ANN计算系统100将整个输入数据集储存在 存储器单元120中,存储器单元120是ANN计算系统100的一部分并且专 用于ANN计算系统100。专用的存储器单元120允许存储器单元120与控 制器110之间的交易(transaction)特别适于允许存储器单元120与控制器 110之间平滑且不间断的数据流。通过允许光电处理器140以其全部处理速 率执行矩阵乘法,而不受传统计算机(例如计算机102)的慢速存储操作的 限制,这种不间断的数据流可以显著地改善ANN计算系统100的总吞吐量。 此外,因为在执行ANN计算中所需的所有数据是由计算机102在单个交易 中提供给ANN计算系统100的,所以ANN计算系统100能够以独立于计 算机102的独有方式执行其ANN计算。这种ANN计算系统100的独有操 作减轻了计算机102的计算负担,并且消除了在ANN计算系统100的操作 中的外部依赖性,提高了系统100和计算机102两者的性能。

现在将描述光电处理器140和MC单元130的示例实施例。在一些实施 例中,光电处理器140包括激光单元142、调制器阵列144、光电矩阵乘法 (optoelectronic matrixmultiplication;OMM)单元150以及模拟电子单元146。 调制器阵列144调制从激光单元142接收的光波,以基于由MC单元130提 供的已编码输入数据(例如数字输入数据)提供长度为N的光学输入向量,该 光学输入向量传播至OMM单元150。OMM单元150接收该长度为N的光学输入向量,并在光学域中对接收到的该光学输入向量执行矩阵乘法。矩阵 乘法可以是由OMM单元150的内部配置决定的N×N矩阵乘法。OMM单 元150的内部配置可由电信号控制,例如由MC单元130产生的电信号。

可以以各种方式实现OMM单元150。例如,调制器阵列144和/或OMM 单元150使用的光学调制可包括多个互连的马赫曾德尔干涉仪(Mach- Zehnder interferometer,MZI)。图2示出了MZI 170的示例的示意图。MZI 170 包括第一输入波导171、第二输入波导172、第一输出波导178以及第二输 出波导179。此外,多个互连的MZI中的每个MZI 170至少在其中一臂中包 括第一移相器174,第一移相器174被配置以改变MZI 170的分光比(splittingratio),并且在一些示例中可在两个臂中都包括移相器,这些移相器被配置以 进行推-拉(push-pull)操作。在一些实施例中,第二移相器176被配置以移动 MZI 170的一个输出的相位,例如通过第二输出波导179离开MZI 170的 光。MZI 170的第一移相器174和第二移相器176耦合至由MC单元130所 产生的多个权重控制信号。第一移相器174和第二移相器176是OMM单元 150的可重新配置元件的示例。重新配置元件的示例包括热光移相器(thermo-optic phase shifter)或电光移相器(electro-optic phase shifter)。热光移相器通 过加热波导来改变波导和包覆材料的折射率来操作,其转换为相位的改变。 电光移相器通过施加电场(例如:铌酸锂(LiNbO3),反向偏置PN结)或 电流(例如:正向偏置PIN结)来操作,其改变了波导材料的折射率。通过 改变权重控制信号,可以改变每个互连的MZI 170的第一移相器174和第二 移相器176的相位延迟,这重新配置OMM单元150的光学干涉单元154以实现由在整个光学干涉单元154上布置的相位延迟所确定的特定矩阵乘法。 OMM单元150和光学干涉单元154的额外实施例在标题为“APPARATUS AND METHODS FOR OPTICAL NEURALNETWORK”的美国专利公开第 US 2017/0351293A1号、标题为“OPTOELECTRONIC COMPUTINGSYSTEMS”的美国专利公开第US 20190370652A1号、标题为 “OPTOELECTRONIC COMPUTINGSYSTEMS”的美国专利公开第US 20200110992A1号、以及标题为“OPTOELECTRONICCOMPUTING SYSTEMS”的PCT公开第WO 2020191217 A1号中公开,其由引用完全并入 本文。

通过激光单元142和调制器阵列144产生光学输入向量。长度为N的 光学输入向量具有N个独立的光学信号,每个光学信号的强度对应长度为N 的数字输入向量的相应元素的值。作为示例,激光单元142可以产生N个光 输出。在该示例中,N个光输出具有相同的波长,并且是相干的(coherent)。 光输出的光学相干性允许光输出彼此光学地干涉,这是OMM单元150所利 用的特性(例如:在MZI的操作中)。此外,激光单元142的光输出可以彼 此基本相同。例如,N个光输出可在它们的强度(例如:在5%内、3%内、 1%内、0.5%内、0.1%内或0.01%内)中和它们的相对相位(例如:在10度 内、5度内、3度内、1度内、0.1度内)中为基本均匀的。光输出的均匀性 可以改善光学输入向量对数字输入向量的忠实性(faithfulness),从而改善光 电处理器140的整体精确度。在一些实施例中,激光单元142的光输出可具 有每个输出0.1mW至50mW的光功率、近红外光范围的波长(例如:900 nm至1600nm之间)以及小于1nm的线宽。激光单元142的光输出可以是 单个横向模式(transverse-mode)光输出。

在一些实施例中,激光单元142包括单个激光源和光功率分离器(optical powersplitter)。单个激光源被配置以产生激光。光功率分离器被配置以将由 激光源所产生的光分成具有基本相同强度和相位的N个光输出。通过将单个 激光输出分成多个输出,可以实现多个光输出的光学相干性。例如,单个激 光源可以是半导体激光二极管、垂直腔表面发射激光器(vertical-cavity surface-emitting laser;VCSEL)、分布反馈(distributedfeedback;DFB)激光 器或分布式布拉格反射器(distributed Bragg reflector;DBR)激光器。例如, 光功率分离器可以是1:N多模干涉(multimode interference;MMI)分离器、 包括多个1:2MMI分离器或定向耦合器的多级分离器(multi-stage splitter)、 或星型耦合器(star coupler)。在一些其它实施例中,可使用主从激光配置 (master-slave laserconfiguration),其中从属激光由主要激光注入锁定 (injection locked),以对主要激光具有稳定的相位关系。

激光单元142的光输出耦合至调制器阵列144。调制器阵列144被配置 以接收来自激光单元142的光输入,并且基于调制器控制信号(其为电信号) 来调制所接收的光输入的强度。调制器的示例包括马赫曾德尔干涉仪(MZI) 调制器、环形谐振调制器(ringresonator modulator)以及电吸收调制器 (electro-absorption modulator)。例如,电吸收调制器包括电极,该电极向波 导片段施加电场以调制该波导片段的吸收光谱,进而调制在该波导片段中传 播的光的强度。调制器阵列144具有N个调制器,每个调制器接收激光单元 142的N个光输出中的一个。调制器接收对应于数字输入向量的元素的控制 信号,并且调制光的强度。控制信号可由MC单元130产生。

MC单元130被配置以在控制器110的控制下产生多个调制器控制信号 并产生多个权重控制信号。例如,MC单元130从控制器110接收第一调制 器控制信号,第一调制器控制信号对应将由光电处理器140处理的数字输入 向量。MC单元130基于第一调制器控制信号产生调制器控制信号,该调制 器控制信号是适于驱动调制器阵列144和OMM 150的模拟信号。例如,模 拟信号可以是电压或电流,取决于阵列144的调制器和OMM 150的技术和 设计。电压可具有范围从例如±0.1V到±10V的幅度,并且电流可具有例如 范围从100μA到100mA的幅度。在一些实施例中,MC单元130可包括调 制器驱动器,其被配置以缓冲、放大或调节模拟信号,使得阵列144的调制 器和OMM 150可被充分驱动。例如,某些类型的调制器可以用差分控制信 号驱动。在这种情况下,调制器驱动器可以是差分驱动器,其基于单端(single- ended)输入信号产生差分电输出。

在一些实施例中,光电处理器140可包括某些类型的调制器,其具有3dB 带宽,这小于光电处理器140的期望处理速率。在这种情况下,调制器驱动 器可包括预加重电路(pre-emphasis circuit)或其他带宽增强电路,其被设计 以扩展调制器的操作带宽。例如,这种带宽增强对于基于PIN二极管结构的 调制器可以是有用的,PIN二极管结构是正向偏置的,以使用载流子注入来 调制引导被调制的光波的波导的一部分的折射率。例如,如果调制器是MZI 调制器,则PIN二极管结构可用于在MZI调制器的一个或两个波导臂中实现移相器。将移相器配置为正向偏置操作有利于较短的调制器长度和更紧凑 的总体设计。调制器阵列144和OMM单元150中的任一者或两者可包括基 于正向偏置以使用载流子注入进行调制的PIN二极管结构的调制器。这有助 于于使调制器阵列144和/或OMM单元150(其可能具有大量调制器)更紧凑。

在一些实施例中,调制器阵列144和OMM单元150中的任一者或两者 可使用利用载流子累积设计,并将MOS型电容器结构合并至光学波导的调 制器,例如基于MOS电容器的MZI调制器。选择哪种类型的调制器来使用, 例如是否使用载流子注入或载流子累积,可以部分地基于用于制造该光电处 理器140的整体半导体制造工艺。

例如,在带宽增强的预加重形式(pre-emphasis form)中,可以将驱动调 制器的模拟电信号(例如:电压或电流)整形为包括瞬间脉冲(transient pulse), 瞬间脉冲使模拟信号水平的改变过冲(overshoot),该模拟信号水平表示一系 列数字数据值(digitaldata value)中的调制器控制信号的给定数字数据值。 每个数字数据值可具有任意数量的比特,包括单个1比特数据值,如本示例 其余部分所假定的那样。因此,如果比特的值与先前的值相同,则驱动调制 器的模拟电信号被维持在稳态水平(steady-state level)(例如:比特值为0的 信号水平X0和比特值为1的较高信号水平X1)。然而,如果比特从0变成 1,则用于驱动调制器的对应模拟电信号可包括瞬间脉冲,该瞬间脉冲在稳 定为稳态值X1之前,在比特转变(bit transition)的一开始具有峰值X1+(X1- X0)。同样地,如果比特从1变成0,则用于驱动调制器的对应模拟电信号可 包括瞬间脉冲,该瞬间脉冲在稳定为稳态值X0之前,在比特转变的一开始 具有峰值X0+(X0-X1)。可以选择瞬间脉冲的大小和长度以最优化带宽增强 (例如:最大化不归零(NRZ)调制模式的眼图(eye diagram)的开放区域)。

在带宽增强的电荷泵送形式中,可以将驱动调制器的模拟电流信号整形 为包括移动精确确定的电荷量的瞬间脉冲。图3示出了电荷泵送带宽增强电 路4416的示例实施方式,电荷泵送带宽增强电路4416使用串联连接在电压 源和调制器之间的电容器来精确控制电荷流。图3所示的电路的一部分可包 括在上面所述的调制器驱动器中。在该示例中,调制器由调制器电路4400表 示,调制器电路4400将调制器的移相器的电特性建模为PIN二极管。调制 器电路4400包括理想二极管、具有电容Cd的电容器以及具有电阻R的电阻 器的并联连接。泵送电容器(pump capacitor)4402具有电容Cp。控制电压 波形4404被提供给反相器电路(inverter circuit)4405,以产生驱动电压波形 4406,其幅度可以被精确地校准以通过泵送电容器4402将预定量的电荷移 入或移出调制器电路4400。通过在端子4408施加恒定电压VDD_IO,对调 制器电路4400建模的PIN二极管进行正向偏置。在反相器4405的端子4410 施加电荷泵送控制电压VCP,以控制在驱动电压波形4406的转变时泵送的 电荷量,以及由调制器施加的对应光学相移。

可以在操作之前调整电压VCP的值,使得储存在电荷泵送电容器4402 中的标称电荷(nominal charge)Q基于电容Cp(例如:由于制造期间的不确 定性,可能会有一些可变性(variability))的测量值被精确地校准。例如,电 压VCP可等于标称电荷Q除以电容Cp。波导与PIN二极管相交的一部分的 折射率的所产生的改变可接着提供引导光波的相移,相移与在PIN二极管 (例如:通过内部电容Cd储存)和电荷泵送电容器4402之间移动的电荷量 Q成线性比例。如果驱动电压从低值变为高值,则从电荷泵送电容器4402到 PIN二极管的电流流入会在短时间内传递预定量的电荷(即正电流随时间的 积分)。如果驱动电压从高值变为低值,则从PIN二极管到电荷泵送电容器 4402的电流流出会在短时间内移除预定量的电荷(即负电流随时间的积分)。 在此相对短的开关时间(switching time)之后,由电流源4412提供稳态电 流,电流源4412由开关4414控制,以替换由于在保持驱动电压的同时(例如:在特定数字值的保持时间期间)内部电容器通过内部电阻R损失电流而 丢失的电荷。使用这种电荷泵送配置可具有优点,例如比其他技术(包括一 些预加重技术)更好的精度,因为在短开关时间内移动的电荷量取决于恒定 的物理参数(Cp)和稳态控制值(VCP),并因此精确可控且可重复。

也可使用其他形式的带宽增强。例如,可使用匹配电路以对施加至调制 光波的半导体二极管的电信号的幅度改变进行整形。控制电信号可通过匹配 电路施加至半导体二极管,该匹配电路被配置以匹配与该半导体二极管相关 联的阻抗,而不显著改变所施加的电信号的幅度(例如不引入预加重/去加重 的幅度改变)。

在一些实施例中,匹配电路为无源电路,例如基本上由电感器组成的电 路。例如,电感器的一端连接至电压源,并且电感器的另一端连接至调制器 电路4400的一端。与使用例如电阻器和电容器的RC网络的无源匹配电路 相比,电感器的优点是制造的一致性。合适的RC网络的设计通常依赖于传 递函数(transfer function)中的极点(pole)及其对应的零点(zero)之间的抵消,以 使该传递函数趋近1,但是实现抵消所需要的设计公差使设备更容易受到制 造误差的影响。例如,抵消可能需要微调(fine-tuning)不同电阻值和电容值的 乘积以使其彼此相等。反之,通过使用具有适当电感值(例如1至10nH)的 电感器,可以在不进行这样的微调的情况下实现匹配,因而更能容忍制造误 差。

在一些情况下,阵列144的调制器和/或OMM 150可具有非线性传递函 数。例如,MZI光学调制器可以在施加的控制电压与其传输之间具有非线性 关系(例如:正弦依赖性(sinusoidal dependence))。在这种情况下,可以基 于调制器的非线性传递函数来调整或补偿第一调制器控制信号,使得数字输 入向量与所产生的光学输入向量之间的线性关系可被保持。保持这种线性通 常对于确保OMM单元150的输入是数字输入向量的精确表示是重要的。在 一些实施例中,第一调制器控制信号的补偿可以由控制器110通过查找表来 执行,查找表将数字输入向量的值映射到MC单元130所要输出的值,使得 得到的调制的光学信号与数字输入向量的元素成线性比例。可以通过表征 (characterizing)调制器的非线性传递函数并且计算非线性传递函数的反函 数(inverse function)来产生查找表。

在一些实施例中,调制器的非线性和在所产生的光学输入向量中所得到 的非线性可以通过ANN计算算法来补偿。

由调制器阵列144所产生的光学输入向量被输入至OMM单元150。光 学输入向量可以是N个空间分离的光学信号,每个光学信号具有对应数字输 入向量的元素的光功率。例如,光学信号的光功率通常在1μW至10mW的 范围内。OMM单元150接收光学输入向量,并且基于其内部配置执行矩阵 乘法。内部配置由MC单元130所产生的电信号来控制。例如,MC单元130 从控制器110接收第二调制器控制信号,第二调制器控制信号对应将由 OMM单元150实现的神经网络权重。MC单元130基于第二调制器控制信 号产生权重控制信号,权重控制信号是适于控制OMM单元150内的可重新 配置元组件的模拟信号。例如,模拟信号可以是电压或电流,取决于OMM 单元150的重新配置元件的类型。电压可具有范围从例如0.1V到10V的幅 度,并且电流可具有范围从例如100μA到10mA的幅度。

调制器阵列144可以以与可重新配置OMM单元150的重新配置速率不 同的调制速率来操作。由调制器阵列144产生的光学输入向量以光速的大致 比例(例如:光速的80%、50%或25%)传播通过OMM单元,这取决于 OMM单元150的光学特性(例如:有效折射率(effective index))。对于典 型的OMM单元150,光学输入向量的传播时间在1到数10皮秒的范围内, 其对应于处理速率的数10到数100GHz。如此一来,光电处理器140可以执 行矩阵乘法操作的速率部分地受到可以产生光学输入向量的速率的限制。具 有数10GHz的带宽的调制器是容易获得的,并且具有超过100GHz的带宽 的调制器正在开发。如此一来,例如,调制器阵列144的调制速率可以在 5GHz、8GHz或数10GHz至数100GHz的范围内。为了以这样的调制速率维 持调制器阵列144的操作,控制器110的集成电路可被配置以大于或等于例如5GHz、8GHz、10GHz、20GHz、25GHz、50GHz或100GHz的速率来输 出用于MC单元130的控制信号。

取决于由OMM单元150实现的可重新配置元件的类型,OMM单元150 的重新配置速率可以明显慢于调制速率。例如,OMM单元150的可重新配 置元件可以是热光型,其使用微加热器来调整OMM单元150的光学波导的 温度,其反过来影响OMM单元150内的光学信号的相位并且导致矩阵乘 法。由于与结构的加热和冷却相关联的热时间常数(thermal timeconstant), 重新配置速率可以被限制为例如数100kHz至数10MHz。如此一来,用于控 制调制器阵列144的调制器控制信号和用于重新配置OMM单元150的权重 控制信号可能具有显著不同的速度要求。此外,调制器阵列144的电特性可 以与OMM单元150的可重新配置元件的电特性显著不同。

为了适应调制器控制信号和权重控制信号的不同特性,在一些实施例中, MC单元130可包括第一MC子单元132和第二MC子单元134。第一MC 子单元132可被具体配置以产生用于输入向量的调制器控制信号,第二MC 子单元134可被具体配置以产生用于矩阵乘法的权重控制信号。例如,调制 器阵列144的调制速率可以是25GHz,并且第一MC子单元132可具有每秒 25千兆采样(giga-samples per second;GSPS)的每信道输出更新速率(per-channel output update rate)和8比特或更高的分辨率。OMM单元150的重 新配置速率可以是1MHz,并且第二MC子单元134可具有每秒1兆采样 (mega-samples per second;MSPS)的输出更新速率和10比特的分辨率。实 现分开的第一MC子单元132和第二MC子单元134允许针对相应信号独 立优化MC子单元,这可以降低MC单元130的总功率消耗、复杂性、成本或其组合。值得注意的是,虽然第一MC子单元132和第二MC子单元134 被描述为MC单元130的子元件,但是通常来说,第一MC子单元132和第 二MC子单元134可以集成成在公共芯片(common chip)上,或者可以实 现为分开的芯片。

基于第一MC子单元132和第二MC子单元134的不同特性,在一些实 施例中,存储器单元120可包括第一存储器子单元和第二存储器子单元。第 一存储器子单元可以是专用于储存输入数据集和数字输入向量的存储器,并 且可具有足以支持调制速率的操作速度。第二存储器子单元可以是专用于储 存神经网络权重的存储器,并且可以具有足以支持OMM单元150的重新配 置速率的操作速度。在一些实施例中,第一存储器子单元可使用SRAM来实施,并且第二存储器子单元可使用DRAM来实施。在一些实施例中,第一 存储器子单元和第二存储器子单元可使用DRAM来实施。在一些实施例中, 第一存储器子单元可实施作为控制器110的一部分或作为控制器110的缓存 (cache)。在一些实施例中,第一和第二存储器子单元可以由单个物理存储 器装置作为不同的地址空间来实施。

OMM单元150输出长度为N的输出向量,其对应于光学输入向量和神 经网络权重的N×N矩阵乘法的结果。在一些实施例中,输出向量可包括电 信号(例如,电压或电流),并且在其他实施例中,输出向量可包括光学信号。 OMM单元150耦合至模拟电子单元146,模拟电子单元146被配置以执行 用于其中输出向量是光学输出向量的实施例的任何模拟电子处理,也可以被 配置为执行光电转换。例如,模拟电子单元146可包括N个光电检测器的阵 列(其被配置以吸收光学信号并产生光电流)以及N个跨阻放大器 (transimpedanceamplifier)的阵列(其被配置以将光电流转换成输出电压)。 可替换地,如果从OMM单元150接收到电输出向量,则在OMM单元150 内可以存在光电检测器和跨阻放大器。可以基于调制器阵列144的调制速率 来设置光电检测器和跨阻放大器的带宽。光电检测器可以基于所检测的光学 输出向量的波长由各种材料形成。用于光电检测器的材料的示例包括锗、硅 锗合金和铟镓砷(InGaAs)。

模拟电子单元146耦合至ADC单元160。ADC单元160被配置以将从 模拟电子单元146输出的N个电信号转换成N个数字化光学输出,N个数 字化光学输出是输出电压的量化数字表示。例如,ADC单元160可以是N 通道ADC。控制器110可以从ADC单元160得到对应光学矩阵乘法单元 150的光学输出向量的N个数字化光学输出。控制器110可以从N个数字化 光学输出形成长度为N的数字输出向量,其对应长度为N的输入数字向量 的N×N矩阵乘法的结果。在一些实施例中,如果不需要模拟电子处理并且 OMM单元150提供电输出信号,则可以省略模拟电子单元146,并且OMM 单元150可以直接连接到ADC单元160。

ANN计算系统100的各种电组件可以以各种方式集成。例如,控制器 110可以是制造在半导体晶粒上的专用集成电路。其他电组件(例如存储器 单元120、MC单元130、ADC单元160或其组合)可以单片集成在在其上 制造控制器110的半导体晶粒上。作为另一示例,可以将两个或更多个电组 件集成成片上系统(System-on-Chip;SoC)。在SoC的实施例中,控制器110、 存储器单元120、MC单元130、ADC单元160可以制造在相应的晶粒上, 并且相应的晶粒可以集成在提供集成组件之间的电连接的公共平台(例如: 插入器(interposer))上。相对于在印刷电路板(printed circuit board;PCB) 上分开地布置和布线组件的方法,这种SoC方法可以允许ANN计算系统 100的电子组件之间更快的数据传输,从而提高ANN计算系统100的操作 速度。此外,SoC方法可以允许使用对于不同电组件优化的不同制造技术, 其可以改善不同组件的性能并且相较于单片集成方法降低总体成本。虽然已 经描述了控制器110、存储器单元120、MC单元130以及ADC单元160的 集成,但是通常来说,可以集成组件的子集,而由于各种原因(例如性能或 成本)将其他组件实现为分离组件。例如,在一些实施例中,存储器单元120 可与控制器110集成为控制器110内的功能块(functionalblock)。

ANN计算系统100的各种光学组件也可以以各种方式集成。ANN计算 系统100的光学组件的示例包括激光单元142、调制器阵列144、OMM单元 150以及模拟电子单元146的光电检测器。这些光学组件可以以各种方式集 成,以改善性能和/或降低成本。例如,激光单元142、调制器阵列144、OMM 单元150以及光电检测器可以单片地集成在作为光子集成电路(photonic integrated circuit;PIC)的公共半导体基板上。在基于化合物半导体材料系统 (例如:III-V族化合物半导体(例如磷化铟(InP)))形成的光子集成电路 上,激光器、调制器(例如电吸收调制器)、波导以及光电检测器可以单片地 集成在单个晶粒上。这种单片集成方法可以降低对准各种分离光学组件的输 入和输出的复杂性,这可能需要范围从亚微米(sub-micron)到几微米的对准 精确度。作为另一示例,激光单元142的激光源可以制造在化合物半导体晶 粒上,而激光单元142的光功率分离器、调制器阵列144、OMM单元150以 及模拟电子单元146的光电检测器可以制造在硅晶粒上。在硅晶圆上制造的 PIC(可称为硅光子技术)相对于基于III-V族的PIC,通常具有更大的集成 密度、更高的光刻(lithographic)分辨率和更低的成本。这种更大的集成密 度在OMM单元150的制造中可能是有益的,因为OMM单元150通常包括 数10到数100的光学组件,例如功率分离器和移相器。此外,硅光子技术 的较高光刻分辨率可以减少OMM单元150的制造差异,从而提高OMM单 元150的精确度。

ANN计算系统100可以以各种形式因素实现。例如,ANN计算系统100 可以实现为插入主计算机(host computer)的协同处理器(co-processor)。这 种ANN计算系统100可具有例如快速PCI(PCI Express)卡的形式因素并 且通过PCIe总线与主计算机通信。主计算机可以承载(host)多个协同处理 器类型的ANN计算系统100,并通过网络连接至计算机102。这种类型的实 施例可适用于云数据中心,其中服务器机架可以专用于处理从其他计算机或 服务器接收的ANN计算请求。作为另一示例,协同处理器类型的ANN计 算系统100可以直接插入发出ANN计算请求的计算机102中。

在一些实施例中,控制器110、存储器单元120、调制器控制单元130、 ADC单元160和微处理器可以单片集成在半导体晶粒上。在一些实施例中, 控制器110、存储器单元120、调制器控制单元130、ADC单元160、微处理 器和系统主存储器可以集成为片上系统。例如,这允许将人工神经网络计算 系统100用在便携式设备中,例如膝上型计算机、平板计算机或移动电话。 微处理器可包括例如多个高性能处理器核、多个高效处理器核、多个图形处理器、多个电子神经引擎核、1级缓存和2级缓存。微处理器可以使用电子 神经引擎核来执行针对常规电子神经引擎核进行了优化的人工神经网络计 算指令,并可以使用ANN计算系统100执行针对光电处理器140所执行的 光学处理进行了优化的人工神经网络计算指令。微处理器可以是例如精简指 令集计算机或复杂指令集计算机。可以将操作系统设计为考虑ANN计算系 统100,例如,给ANN计算系统100通电以执行更适合由ANN计算系统 100执行的特定任务,并且在不执行此类任务时给ANN计算系统断电100 或将ANN计算系统100置于待机模式,从而实现总体较高的计算性能和较 低的功耗。

在一些实施例中,ANN计算系统100可以集成至需要实时ANN计算能 力的物理系统上。例如,严重依赖于实时人工智能任务(real-time artificial intelligence task)的系统(例如自动驾驶交通工具、自主无人机(autonomous drone)、对象或脸部识别安全照相机以及各种物联网(Internet-of-Things;IoT) 装置)可以受益于使ANN计算系统100直接与这种系统的其他子系统集成。 具有直接集成的ANN计算系统100可以在具有较差或没有网络连接的设备 中实现实时人工智能,并且增强关键任务(mission-critical)人工智能系统的可 靠性和可用性。

虽然MC单元130和ADC单元160被示出为耦合至控制器110,但是 在一些实施例中,MC单元130、ADC单元160或两者可替换地或另外地耦 合至存储器单元120。例如,MC单元130或ADC单元160的直接存储器访 问(direct memory access;DMA)操作可以减少控制器110上的计算负担, 并且减少读取和写入存储器单元120的延迟,从而进一步提高ANN计算系统100的操作速度。

图4示出了用于执行ANN计算的处理200的示例的流程图。处理200 的步骤可以由控制器110执行。在一些实施例中,处理200的相应步骤可以 并行、组合、循环或以任何顺序运行。

在步骤210,接收包括输入数据集和第一多个神经网络权重的人工神经 网络(ANN)计算请求。输入数据集包括第一数字输入向量。第一个数字输 入向量是输入数据集的子集。例如,它可以是图像的子区域。ANN计算请求 可以由各种实体(例如计算机102)产生。计算机可包括各种类型的计算装 置中的一个或多个,例如个人计算机、服务器计算机、交通工具计算机 (vehicle computer)和飞行计算机(flight computer)。ANN计算请求通常是 指将要执行ANN的计算通知或告知给ANN计算系统100的电信号。在一 些实施例中,ANN计算请求可以被分为两个或更多个信号。例如,第一信号 可以询问(query)ANN计算系统100以检查系统100是否准备好接收输入 数据集和第一多个神经网络权重。响应于系统100的肯定应答,计算机可以 发送包括输入数据集和第一多个神经网络权重的第二信号。

在步骤220中,储存输入数据集和第一多个神经网络权重。控制器110 可以将输入数据集和第一多个神经网络权重储存在存储器单元120中。在存 储器单元120中储存输入数据集和第一多个神经网络权重可以允许ANN计 算系统100的操作中的灵活性,这例如可以改善系统的整体性能。例如,通 过从存储器单元120取得(retrieve)输入数据集的期望部分,可以将输入数 据集分为设定尺寸和格式的数字输入向量。输入数据集的不同部分可以以各 种顺序处理,或者被混洗(shuffled),以允许执行各种类型的ANN计算。例 如,在输入和输出矩阵尺寸不同的情况下,混洗可以允许通过块矩阵乘法技 术执行矩阵乘法。作为另一示例,将输入数据集和第一多个神经网络权重储 存在存储器单元120中可以允许通过ANN计算系统100对多个ANN计算 请求进行排队,这可以允许ANN计算系统100以其全速维持操作而没有不 活动的时段。

在一些实施例中,输入数据集可以储存在第一存储器子单元中,并且第 一多个神经网络权重可以储存在第二存储器子单元中。

在步骤230中,基于第一数字输入向量产生第一多个调制器控制信号, 并且基于第一多个神经网络权重产生第一多个权重控制信号。控制器110可 以将第一调制器控制信号发送至MC单元130,以产生第一多个调制器控制 信号。MC单元130基于第一调制器控制信号产生第一多个调制器控制信号, 并且调制器阵列144产生表示第一数字输入向量的光学输入向量。

第一调制器控制信号可包括将要由MC单元130转换成第一多个调制器 控制信号的多个数字值。多个数字值通常对应第一数字输入向量,并且可以 通过各种数学关系或查找表来关联。例如,多个数字值可以与第一数字输入 向量的元素的值成线性比例。作为另一示例,多个数字值可以通过查找表与 第一数字输入向量的元素关联,该查找表被配置以维持数字输入向量与由调 制器阵列144产生的光学输入向量之间的线性关系。

控制器110可以将第二调制器控制信号发送至MC单元130,以产生第 一多个权重控制信号。MC单元130基于第二调制器控制信号产生第一多个 权重控制信号,并且OMM单元150根据第一多个权重控制信号被重新配 置,从而实现对应第一多个神经网络权重的矩阵。

第二调制器控制信号可包括将要由MC单元130转换成第一多个权重控 制信号的多个数字值。多个数字值通常对应第一多个神经网络权重,并且可 以通过各种数学关系或查找表来关联。例如,多个数字值可以与第一多个神 经网络权重成线性比例。作为另一示例,多个数字值可以通过对第一多个神 经网络权重执行各种数学运算来计算,以产生权重控制信号,权重控制信号 可以配置OMM单元150以执行对应第一多个神经网络权重的矩阵乘法。

在步骤240中,得到对应于光学矩阵乘法单元的光学输出向量的第一多 个数字化光学输出。由调制器阵列144所产生的光学输入向量由OMM单元 150处理并且转换为光学或电输出向量。如果输出向量是光学输出向量,则 该光学输出向量由模拟电子单元146检测并且被转换成电信号,该电信号可 以被ADC单元160转换成数字化值。控制器110可以例如将转换请求发送 至ADC单元160,以开始将模拟电子单元146输出的电压转换为数字化光学输出。一旦转换完成,ADC单元160可将转换结果发送至控制器110。可 替换地,控制器110可以从ADC单元160取得转换结果。控制器110可以 从数字化光学输出形成数字输出向量,该数字输出向量对应输入数字向量的 矩阵乘法的结果。例如,数字化光学输出可以被组织或级联(concatenated) 以具有向量格式。

在一些实施例中,可基于由控制器110将调制器控制信号发出到MC单 元130,来设置或控制ADC单元160以执行ADC转换。例如,ADC转换 可以被设置以在MC单元130产生调制控制信号的后的预设时间开始。ADC 转换的这种控制可以简化控制器110的操作并且减少必要的控制操作的数 量。

在步骤250中,对第一数字输出向量执行非线性变换以产生第一变换数 字输出向量。ANN的节点或人工神经元通过首先执行从先前层的节点接收 的信号的加权总和,然后执行加权总和的非线性变换(“激活”)以产生输出 来进行操作。各种类型的ANN可以实现各种类型的可微分的非线性变换。 非线性变换函数的示例包括修正线性单元(rectifiedlinear unit;RELU)函数、 S型(Sigmoid)函数、双曲正切函数(hyperbolic tangentfunction),X2函数 以及|X|函数。由控制器110对第一数字输出执行这种非线性变换,以产生第 一变换数字输出向量。在一些实施例中,非线性变换可由控制器110内的专 用数字集成电路执行。例如,控制器110可包括一个或多个模块或电路块, 其特别适于加速一种或多种类型的非线性变换的计算。

在步骤260中,储存第一变换数字输出向量。控制器110可以将第一变 换数字输出向量储存在存储器单元120中。在输入数据集被分成多个数字输 入向量的情况下,第一变换数字输出向量对应输入数据集的一部分(例如第 一数字输入向量)的ANN计算结果。如此一来,储存第一变换数字输出向 量允许ANN计算系统100在输入数据集的其他数字输入向量上执行和储存 额外计算,以在稍后被聚合成单个ANN输出。

在步骤270中,输出基于第一变换数字输出向量产生的人工神经网络输 出。控制器110产生ANN输出,其是通过由第一多个神经网络权重所定义 的ANN处理输入数据集的结果。在输入数据集被分成多个数字输入向量的 情况下,所产生的ANN输出是包括第一转换数字输出的聚合输出,但是可 进一步包括对应输入数据集的其他部分的额外转换数字输出。一旦产生ANN 输出,就将所产生的输出发送至发起ANN计算请求的计算机(例如计算机102)。

可以为实现处理200的ANN计算系统100定义各种性能指标 (performancemetric)。定义性能指标可以允许将实现光电处理器140的 ANN计算系统100的性能与用于ANN计算的、替代地实现电矩阵乘法单元 (electronic matrix multiplication unit)的其他系统的性能进行比较。在一个 方面,可以执行ANN计算的速率可以部分地由第一循环时段指示,第一循 环时段定义为在存储器单元中储存输入数据集和第一多个神经网络权重的 步骤220与在存储器单元中储存第一变换数字输出向量的步骤260之间所经 过的时间。因此,第一循环时段包括将电信号转换成光学信号(例如:步骤 230)、在光学域中执行矩阵乘法、以及将结果转换回电域(例如:步骤240) 所花费的时间。步骤220和260都涉及将数据储存至存储器单元120中,这 是在ANN计算系统100和没有光电处理器140的传统ANN计算系统之间 共享的步骤。如此一来,测量存储器到存储器交易时间(memory-to-memorytransaction time)的第一循环时段可以允许在ANN计算系统100与没有光电 处理器140的ANN计算系统(例如实现电矩阵乘法单元的系统)之间进行 ANN计算吞吐量的实际或公平比较。

由于调制器阵列144可以产生光学输入向量的速率(例如:在25GHz) 和OMM单元150的处理速率(例如:>100GHz),用于执行单个数字输入 向量的单个ANN计算的ANN计算系统100的第一循环时段可以接近调制 器阵列144的速度的倒数(例如40ps)。在考虑与MC单元130的信号产生 和ADC单元160的ADC转换相关联的延迟之后,第一循环时段可以例如 小于或等于100ps、小于或等于200ps、小于或等于500ps、小于或等于1ns、 小于或等于2ns、小于或等于5ns、或小于或等于10ns。

作为比较,电矩阵乘法单元的M×1向量和M×M矩阵的乘法运行时间 通常与M2-1个处理器时钟周期(processor clock cycle)成比例。对于M=32, 这种乘法将花费大约1024个周期,其在3GHz时钟速度下导致运行时间超 过300ns,这比ANN计算系统100的第一循环时段慢几个数量级。

在一些实施例中,处理200进一步包括基于第一变换数字输出向量产生 第二多个调制器控制信号的步骤。在一些类型的ANN计算中,单个数字输 入向量可以通过相同的ANN重复传播或由相同的ANN处理。实现多通处 理(multi-pass processing)的ANN可以称为递归神经网络(recurrent neural network;RNN)。RNN是神经网络,其中在第(k)次通过神经网络期间网 络的输出被再循环回到神经网络的输入并且在第(k+1)次通过期间被用作 输入。RNN可以在模式识别任务中具有各种应用,例如语音或手写识别。一 旦产生了第二多个调制器控制信号,处理200就可以进行步骤240至步骤 260,以完成第一数字输入向量第二次通过ANN。通常来说,根据在ANN计 算请求中所接收的RNN的特性,可以针对预定数量的循环,重复将变换的 数字输出再循环为数字输入向量。

在一些实施例中,处理200进一步包括基于第二多个神经网络权重产生 第二多个权重控制信号的步骤。在一些情况下,人工神经网络计算请求进一 步包括第二多个神经网络权重。通常来说,除了输入层和输出层之外,ANN 还具有一个或多个隐藏层。对于具有两个隐藏层的ANN,第二多个神经网络 权重可对应ANN的第一层与ANN的第二层之间的连接性。为了通过ANN 的两个隐藏层处理第一数字输入向量,可以首先根据处理200处理第一数字 输入向量直到步骤260,其中在步骤260通过ANN的第一隐藏层处理第一 数字输入向量的结果储存在存储器单元120中。接着控制器110重新配置 OMM单元150以执行对应与ANN的第二隐藏层相关联的第二多个神经网 络权重的矩阵乘法。一旦OMM单元150被重新配置,处理200可以基于第 一变换数字输出向量产生多个调制器控制信号,其产生对应第一隐藏层的输 出的更新的光学输入向量。接着更新的光学输入向量由重新配置的OMM单 元150处理,OMM单元150对应ANN的第二隐藏层。通常来说,所述的 步骤可以重复直到已经通过ANN的所有隐藏层处理了数字输入向量。

如上面所述,在OMM单元150的一些实施例中,OMM单元150的重 新配置速率可明显慢于调制器阵列144的调制速率。在这种情况下,ANN计 算系统100的吞吐量可能受到在不能执行ANN计算期间,重新配置OMM 单元150所花费的时间量的不利影响。为了减轻OMM单元150的相对慢的 重新配置时间的影响,可以利用批量处理(batch processing)技术,其中两 个或更多个数字输入向量传播通过OMM单元150而没有配置改变,以将重 新配置时间分摊(amortize)在更大数量的数字输入向量上。

图5示出了说明图4的处理200的方面的图290。对于具有两个隐藏层 的ANN,代替通过第一隐藏层处理第一数字输入向量、重新配置OMM单 元150用于第二隐藏层、通过重新配置的OMM单元150处理第一数字输入 向量(来自先前隐藏层)、以及对剩余的数字输入向量重复相同的操作,可以 首先通过对第一隐藏层(配置#1)配置的OMM单元150来处理输入数据 集的所有数字输入向量,如图290的上部所示。一旦通过具有配置#1的 OMM单元150处理了所有数字输入向量,则将OMM单元150重新配置成 配置#2,其对应ANN的第二隐藏层。此重新配置可以明显慢于OMM单元 150可以处理输入向量的速率。一旦OMM单元150被重新配置用于第二隐 藏层,来自先前隐藏层的输出向量可以由OMM单元150批量处理。对于具 有数十或数十万个数字输入向量的大输入数据集,可以通过大致相同的因素 来减少重新配置时间的影响,这可以显著减少ANN计算系统100在重新配 置中花费的时间部分。

为了实现批量处理,在一些实施例中,处理200进一步包括以下步骤: 通过MC单元基于第二数字输入向量产生第二多个调制器控制信号;从ADC 单元得到对应于光学矩阵乘法单元的光学输出向量的第二多个数字化光学 输出,第二多个数字化光学输出形成第二数字输出向量;对第二数字输出向 量执行非线性变换以产生第二变换数字输出向量;以及在存储器单元中储存 第二变换数字输出向量。例如,产生第二多个调制器控制信号可以在步骤260 之后。此外,在这种情况下的步骤270的ANN输出现在是基于第一变换数 字输出向量和第二变换数字输出向量两者。获取、执行和储存步骤类似于步 骤240到步骤260。

批量处理技术是用于提高ANN计算系统100的吞吐量的多种技术之一。 用于提高ANN计算系统100的吞吐量的另一种技术是通过利用波分复用 (wavelength divisionmultiplexing;WDM)来并行处理多个数字输入向量。 WDM是通过公共传播信道(例如OMM单元150的波导)同时传播不同波 长的多个光学信号的技术。与电信号不同,不同波长的光学信号可以通过公 共信道传播,而不会影响在同一信道上不同波长的其他光学信号。此外,可 以使用诸如光学复用器(multiplexer)和解复用器(demultiplexer)的公知结 构从公共传播信道添加(复用(multiplexed))或丢弃(解复用(demultiplexed)) 光学信号。

在ANN计算系统100的背景下,不同波长的多个光学输入向量可以独 立地产生、同时传播通过OMM单元150、以及被独立地检测以增强ANN计 算系统100的吞吐量。参照图6,示出了波分复用(WDM)人工神经网络 (ANN)计算系统104的示例的示意图。除非另外描述,否则WDM ANN计 算系统104类似于ANN计算系统100。为了实现WDM技术,在ANN计算 系统104的一些实施例中,激光单元142被配置以产生多个波长,例如 λ1、λ2以及λ3。多个波长可以优选地通过足够大的波长间隔分开,以允许 容易地复用和解复用到公共传播信道上。例如,大于0.5nm、1.0nm、2.0nm、 3.0nm或5.0nm的波长间隔可以允许简单的复用和解复用。另一方面,多个 波长的最短波长与最长波长之间的范围(“WDM带宽”)可以优选地足够小, 使得OMM单元150的特性或性能在多个波长上保持基本相同。光学组件通 常是分散的(dispersive),这意味着它们的光学特性随着波长而改变。例如, MZI的功率分离比可以随着波长而改变。然而,通过将OMM单元150设计 成具有足够大的操作波长窗口(operatingwavelength window),并且通过将 波长限制在操作波长窗口内,由OMM单元150在每个波长下所输出的光学 输出向量可以是由OMM单元150实现的矩阵乘法的足够精确的结果。操作波长窗口可以是例如1nm、2nm、3nm、4nm、5nm、10nm或20nm。

图7示出了可用于调制光学信号的幅度的马赫曾德尔调制器3900的示 例的图。马赫曾德尔调制器3900包括两个1×2端口多模干涉耦合器 (MMI_1x2)3902a和3902b、两个平衡的臂(arm)3904a和3904b、以及 一个臂中的移相器3906(或每个臂中的一个移相器)。当通过信号线3908将 电压施加到一个臂中的移相器时,在两个臂3904a与3904b之间将存在将要 转换为幅度调制的相位差。1×2端口多模干涉耦合器3902a和3902b以及移 相器3906被配置为宽带(broadband)光子组件,并且两个臂3904a和3904b 的光径长被配置为相等。这使马赫曾德尔调制器3900能够在宽波长范围内 工作。

图8示出马赫曾德尔调制器3950的另一示例的图,该调制器可用于调 制光学信号的幅度。该马赫曾德尔调制器3950包括两个1×2端口多模干涉 耦合器(MMI_1x2)3952a与3952b、两个平衡臂3954a与3954b、以及在一臂 上的移相器3956a、3956b及3956c的集合(或在每一臂上的移相器的集合)。 调制器3950使用片段式设计,以对数字输入信号的每一比特使用分别的移 相器提供光学数字至模拟转换。例如,数字输入端口可被配置为在连续的时 间间隔中接收一系列数字输入值,每个数字输入值包括三个比特。例如,数 字输入端口亦也被配置为并行接收数字输入值。多个移相器3956a、3956b和 3956c可通过沿着臂3954a的光学波导形成不同的相应二极管区段来实现。 在本示例中,每个相应移相器3956a、3956b和3956c的二极管区段包括半 导体二极管与用于向处于正向偏置状态的半导体二极管施加电信号的电触 点,以提供载流子注入,以调制对应于移相器的波导片段的折射率。这使得 每个二极管区段的折射率能够响应于该三比特数字输入值中的不同对应比 特的值被调制。二极管区段的相对长度被选择为对应于每个比特的比特位置。 因此,在每个数字输入值具有三个比特的示例中,最高有效比特(most- significant bit)被用于施加二进制(0或1)调制至长度为4L的移相器3956a、 次一比特被用于施加二进制(0或1)调制至长度为2L的移相器3956b、最低 有效比特(least-significant bit)被用于施加二进制(0或1)调制至长度为L的 移相器3956c。一同地,二极管区段施加不同的相应调制贡献至通过该光学 波导部分传播的光波,以提供适当的数字至模拟转换。

移相器是一种光学调制器。在本说明书中,取决于上下文,术语“调制 器”可以指例如整个调制器3950、移相器3956、或光学幅度调制器。

参照图9,在一些实施例中,调制器3950包括第一臂3954a中的第一脊 状波导(ribwaveguide)3964a和第二臂3954b中的第二脊状波导3964b。第一 脊状波导3964a和第二脊状波导3964b形成在半导体基板(例如硅基板)上。 移相器3956a包括重掺杂(heavilydoped)p+区域3960a及重掺杂n+区域3960b, 其长度为4L,并且是形成在基板上,位于第一脊状波导3964a的第一片段的 两侧。p+区域、p+和n+区域之间的本征(intrinsic)区域、以及n+区域形成p+- i-n+(PIN)二极管。第一电极(阳极)3962a电耦合于p+区域3960a,第二电极 (阴极)3962b电耦合于n+区域3960b。

第一电极3962a和第二电极3962b可被驱动电路3966a驱动,该驱动电 路3966a与图3中所示的电路相似。驱动电路3966a被配置为向或从移相器 3956a移动预定电荷量,以控制由移相器3956a施加的对应光学相移。驱动 电路3966a包括具有电容Cp_a的泵送电容器4402a。控制电压波形4404a被 提供至反相器电路4405a,以产生驱动电压波形4406a,其幅度可被精准校 准,以经由泵送电容器4402a向或从移相器3956a移动预定电荷量。通过在端子4408a处施加恒定电压VDD_IO而使移相器3956a的PIN二极管被正 向偏置。电荷泵送控制电压VCP被施加至反相器4405a的端子4410a,以控 制驱动电压波形4406a转变(transition)时泵送(pump)的电荷量,以及由移相 器3956a施加的对应光学相移。为了图示清楚,附图中省略了各驱动电路 3966和移相器3956之间的详细连接。

移相器3956b包括重掺杂p+区域3968a和重掺杂n+区域3968b,其长 度为2L,并且是形成在基板上,位于第一脊状波导3964a的第二片段的两 侧。p+区域、p+和n+区域之间的本征(intrinsic)区域、以及n+区域形成p+-i- n+(PIN)二极管。第三电极(阳极)3970a电耦合于p+区域3968a,第四电极(阴 极)3970b电耦合于n+区域3968b。第三电极3970a和第四电极3970b可被驱 动电路3966b驱动,该驱动电路3966b与驱动电路3966a相似。控制电压波形4404b被提供至反相器电路,以产生驱动电压波形,其幅度可被精准校准, 以经由泵送电容器向或从移相器3956b移动预定电荷量。驱动电路3966b被 配置为向或从移相器3956b移动预定电荷量,以控制由移相器3956b施加的 相应的光学相移。

移相器3956c包括重掺杂p+区域3972a和重掺杂n+区域3972b,其长 度为L,并且是形成在基板上,位于第一脊状波导3964a的第三片段的两侧。 p+区域、p+和n+区域之间的本征(intrinsic)区域、以及n+区域形成p+-i-n+(PIN) 二极管。第五电极(阳极)3974a电耦合于p+区域3972a,第六电极(阴极)3974b 电耦合于n+区域3972b。第五电极3974a和第六电极3974b可被驱动电路 3966c驱动,该驱动电路3966c与驱动电路3966a相似。控制电压波形4404c 被提供至反相器电路,以产生驱动电压波形,其幅度可被精准校准,以经由 泵送电容器向或从移相器3956c移动预定电荷量。驱动电路3966c被配置为 向或从移相器3956c移动预定电荷量,以控制由移相器3956c施加的相应的 光学相移。

移相器3956a、3956b和3956c的掺杂p+及n+区域长度分别为4L、2L 及L。驱动电路4404a、4404b和4404c提供代表3比特数字输入值的二进制 信号至移相器3956a、3956b和3956c,移相器3956a、3956b和3956c将根 据4:2:1的比例加权的光学相移给予(impart)到在第一、第二和第三波导片 段中传播的光。例如,当将二进制值“1”施加到移相器3956a和移相器3956c 时,移相器3956a所给予的光学相移量将会是移相器3956c所给予的光学相移量的四倍。相似地,当将二进制值“1”施加到移相器3956b和移相器3956c 时时,移相器3956b所给予的光学相移量将会是移相器3956c所给予的光学 相移量的两倍。这样,MZI3950将该3比特数字输入值转换为具有3比特 精确度的模拟输出信号,而无需使用数字-模拟转换器电路;若使用图7的 MZI 3900,则可能需要使用数字-模拟转换器电路。由于高速数字-模拟转换 器难以实现,因此与使用MZI 3900相比,具有片段式设计的MZI 3950允许数字电信号以更快速度被转换为模拟光学信号。

如上所述,在一些ANN计算的示例中,例如使用批量处理技术时,调 制器阵列144的重新配置速率可快于OMM单元150的重新配置速率。例 如,调制器阵列144可使用多个具有片段式设计的马赫曾德尔调制器3950 来调制从激光单元142接收的光波,以基于第一MC子单元132提供的已编 码输入数据(例如数字输入数据)提供长度为N的光学输入向量,并且该光学 输入向量传播至OMM单元150。由于OMM单元150的重新配置速率可能 较慢,因此在一些示例中OMM单元150包括多个不使用片段式设计的马赫 曾德尔调制器3900。驱动MZI3900的电路可以比驱动MZI 3950的多个片 段的电路更简单。OMM单元150可具有大量的MZI,因此在OMM单元150 中使用MZI 3900可减小OMM单元150中驱动电路的复杂度。

在一些实施例中,光电处理器140被配置为执行ANN计算,该ANN计 算要求OMM单元150也以与调制器阵列144的速率相当的快速速率被更 新。在这种情况下,OMM单元150还可以使用多个使用片段式设计的MZI 3950。

在一些实施例中,调制器阵列144包括多个不使用片段式设计的MZI 3900,并且OMM单元150包括多个使用片段式设计的MZI 3950。

参照图10,在一些实施例中,马赫曾德尔调制器3950被用在每个数字 输入具有两个比特的ANN系统中。在该示例中,臂3954a被配置为具有两 个移相器的集合,包括长度为2L的第一移相器3956b和长度为L的第二移 相器3956c。

参照图11,在一些实施例中,马赫曾德尔调制器3950被用在每个数字 输入具有四个比特的ANN系统中。在该示例中,臂3954a被配置为具有四 个移相器的集合,包括长度为8L的第一移相器3956d、长度为4L的第二移 相器3956a、长度为2L的第三移相器3956b和长度为L的第四移相器3956c。

在一些实施例中,每个数字输入值具有N个比特,并且臂3954a被配置 为具有N个移相器的集合,包括长度为2N-1L的第一移相器、长度为2N-2L的 第二移相器、…、以及长度为L的第N移相器。

在图8至图11所示的示例中,移相器基本上排列成一直线。在一些示 例中,臂3954a中的波导可具有一个或多个弯折或屈曲,以减小MZI 3950 的总长度。

在一些实施例中,具有片段式设计的MZI可在两个臂(例如3954a和 3954b)上都具有移相器。图12是示例MZI 3980的图,其在两个臂中的每个 臂上包括两个移相器的集合。图13是示例MZI 3990的图,其在两个臂中的 每个臂上包括三个移相器的集合。图14是示例MZI 3995的图,其在两个臂 中的每个臂上包括四个移相器的集合。

图15是示出用于驱动图13的MZI 3990的移相器的电路的示例的图, MZI 3990在每个臂上包括三个移相器的集合。臂3964b包括三个移相器 3956d、3956e和3956f,分别被配置为类似于移相器3956a、3956b和3956c。 移相器3956d、3956e和3956f分别被驱动电路3966d、3966e和3966f驱动。 驱动电路3966d、3966e和3966f分别类似于驱动电路3966a、3966b和3966c。 对驱动电路3966a和3966d的输入以推-拉(push pull)方式被驱动,以使得移 相器3956a和3956d给予彼此互补的光学相移。例如,若驱动电路3966a驱 动移相器3956a以对在臂3964a中传播的光给予θ的相移,则驱动电路3966d 驱动移相器3956d以对在臂3964b中传播的光给予-θ的相移。对驱动电路 3966b和3966e的输入以推-拉方式被驱动,以使得移相器3956b和3956e给 予彼此互补的光学相移。相似地,对驱动电路3966c和3966f的输入以推-拉 方式被驱动,以使得移相器3956c及3956f给予彼此互补的光学相移。为了图示清楚,附图中省略了各驱动电路3966和移相器3956之间的详细连接。

在一些实施例中,臂3954a中的移相器数量与每个数字输入值中的比特 数量不同。在这种情况中,二极管区段施加不同的相应调制贡献至通过光学 波导部分传播的光波,以提供部分数字至模拟转换。额外的电路可用于完成 数字至模拟转换。

参见图16,在一些实施例中,马赫曾德尔调制器4010被配置为将6比 特数字电信号转换为具有6比特精确度的模拟光学信号。除了控制电压波形 4404a、4404b及4404c分别由2比特数字-模拟转换器4012a、4012b和 4012c(统称为4012)提供以外,马赫曾德尔调制器4010与图9中的马赫曾德 尔调制器3950相似。为了图示清楚,附图中省略了电荷泵送带宽增强电路 与移相器之间的详细连接。例如,使用相同的数字至模拟转换架构,2比特 数字-模拟转换器(DAC)的操作可快于6比特DAC。因此,使用2比特DAC 4012驱动具有三个移相器3956的MZI 4010的ANN系统,其操作可快于使 用6比特DAC驱动不具有片段式设计的MZI3900的ANN系统。在一个臂 上具有六个移相器的集合(每个移相器由对应驱动电路驱动)的MZI,其长度 大于具有三个移相器的集合的MZI。因此,使用2比特DAC 4012驱动具有 三个移相器3956的MZI 4010的ANN系统,其长度可短于使用二进制信号 驱动在一个臂上包括六个移相器的集合的MZI的ANN系统。

一般而言,需要将N比特数字电信号转换为具有N比特精确度的模拟 光学信号的模块,可使用p比特DAC驱动在一个臂上具有q个移相器的集 合的MZI,其中p×q=N。p和q的选择取决于MZI需要被重新配置的速度 以及多少空间可用于容纳MZI的多个移相器。较小的p导致更快的重新配 置速率,较小的q导致更短的MZI。

在一些实施例中,半导体二极管操作在正向偏置状态,以利用载流子注 入的折射率调制(index modulation)效应,其可使用相对较短的光径长(例如小 于约0.1mm、或小于约0.5mm、或小于约0.1mm)实施。该短的光径长使得 调制器能够在使用多个MZI或其他类型调制器的集成光学装置内实现紧凑 调制器布置。

除了诸如MZI 3950的干涉仪光学调制器之外,非干涉仪光学调制器也 可用于实现片段式设计,以用于数字至模拟转换。例如,吸收光学调制器可 取代移相器沿着单一光学波导用于MZI的一个臂或多个臂。片段式设计还 促进信号调节的使用以进行带宽增强,例如预加重和/或去加重,其可针对每 个片段而独立实施。

图17示出用于图3的电荷泵送带宽增强电路4416的预加重和去加重的 时序图。在一些实施例中,反相器电路4405被输入数据(图1700所示的波 形4404)驱动。电容器Cp4402的底板(bottom plate)会跟踪反相器4405的输 出,即驱动电压波形4406(如图1702所示),其电平在0V和VCP之间。随 着波形4406的改变,驱动电压波形4406会将保持在电容器Cp 4402内的电 荷推或拉,以调制二极管。电容器Cp 4402的顶板(top plate)处的电压如图1704所示。电容器Cp 4402的顶板处的电压波形可在VDD_IO-Von+VCp和 VDD_IO-Von-VCp之间摆动,其可以比仅通过电流模式DAC或电流源4412 驱动的电压高或低得多。Von为二极管的启动电压(turn-on voltage)。如图1704 所示,用于控制经由泵送电容器4402泵送至调制器电路4400或从调制器电 路4400拉出的电荷量的控制电压波形4404(图3、9、16)被预加重或去加重, 以将所需电荷量快速移至调制器电路4400或从调制器电路4400快速去除所需电荷量。

术语“预加重”是指前述动作中电荷泵送电路4416经由电容器Cp 4402 快速将电荷泵送至调制器电路4400以使电容器Cp 4402的顶板处波形快速 上升(例如1706)至高于稳态电压的水平的部分。术语“去加重”是指前述动 作中电荷泵送电路4416经由电容器Cp4402将电荷从调制器电路4400快速 去除以使电容器Cp 4402的顶板处波形快速下降(例如1708)至低于稳态电压 的水平的部分。

相较于使用电压驱动的传统预加重电路,电荷泵送带宽增强电路4416 具有多个优点。例如,一些预加重传统电路仅能执行预加重,而电荷泵送带 宽增强电路4416可执行预加重与去加重两者。例如,一些使用电压驱动的 传统电路预加重电路需要来自外部源的更高电压源,并以供应电压一半来偏 置调制器、或需要复杂的升压(voltage boost)电路。相比之下,电荷泵送带宽 增强电路4416可使用电压较低的电压源,且不需要复杂的升压电路。此外, 由于传统预加重电路是电压驱动的,所以为了确保调制器在目标相位不被驱动,传统电路可能需要实现额外的控制相位以停止加重电路。相比之下,电 荷泵送带宽增强电路4416可将精确的电荷量移至电容器Cp 4402或从电容 器Cp 4402移出精确的电荷量,并可准确控制施加至调制器的电压,因而不 需要实现额外的控制相位以停止加重电路。

图54是具有片段式设计的环形谐振器(ring resonator)调制器5400的示 例的图。环形谐振器调制器5400包括第一光学波导5402a、第二光学波导 5402b、和闭环光学波导5402c。提供两个移相器,包括第一移相器5404a和 第二移相器5404b,以调制在闭环光学波导5402c中传播的光波。第一移相 器5404a和第二移相器5404b具有不同的长度。在该示例中,第二移相器 5404b的长度为第一移相器5404a的两倍。移相器5404a和5404b对通过与移相器5404a和5404b相关联的光学波导部分传播的光波施加不同的相应调 制贡献,以提供适当的数字至模拟转换。环形谐振器调制器5400包括两个 移相器,在下文中将被称为两段式环形谐振器调制器。

例如,从端口A进入光学波导5402a的输入光波可传播至光学波导5402a 的端口B,或通过环形波导5402c耦合于光学波导5402b的端口C。由移相 器5404a和5404b给予在环形波导5402c内传播的光波的调制,会调制在光 学波导5402a的端口B处的光波幅度。两个移相器5404a和5404b有效地执 行2比特数字至模拟转换。

例如,第一移相器5404a被第一电荷泵送带宽增强电路5406a驱动,并 且第二移相器5404b被第二电荷泵送带宽增强电路5406b驱动。电荷泵送带 宽增强电路5406a和5406b与图3所示的电荷泵送带宽增强电路相似。为了 图示清楚,附图中省略了电荷泵送带宽增强电路5406a和5406b的一些信号 连接。

例如,第一电荷泵送带宽增强电路5406a被2比特DAC 5408a驱动,并 且第二电荷泵送带宽增强电路5406b被2比特DAC 5408b驱动。对2比特 DAC 5408a和5408b以及两段式环形谐振器调制器5400的组合使用,允许 4比特数字输入信号被转换为具有4比特精确度的模拟光学信号。

在一些示例中,有n个移相器对在环形波导5402c中传播的光波进行调 制,该调制器被称为n段式环形谐振器调制器。如果每个移相器被电荷泵送 带宽增强电路驱动,而该电荷泵送带宽增强电路继而由m比特DAC(m≧1)驱 动,则m比特DAC和n段式环形谐振器调制器的组合可将m×n比特数字 输入信号转换为具有m×n比特精确度的模拟光学信号。一般而言,数量m 越小,则m比特DAC操作越快,并且环形谐振器调制器被重新配置的速度 越快。

在一些实施例中,环形谐振器调制器5400可被用于图1与图6中的调 制器阵列144,以及图39与图51中的调制器阵列3208。在一些实施例中, 环形谐振器调制器5400也可用于图1与图6中的OMM单元150,以及图 39与图51中的OMM单元3520。m比特DAC的数量m和n段式环形谐振 器调制器的数量n可基于多个标准进行选择,例如调制器阵列和OMM单元 的期望重新配置频率,以及驱动移相器的电路复杂度。

在一些实施例中,在由电DAC信号驱动的非片段式设计的光学调制器 中,干涉仪调制器中的单个移相器也可利用信号调节进行带宽增强。例如, 如果干涉仪调制器为环形谐振器(例如图29中的环形谐振器2222),则环的 小尺寸可能导致空间不足以容纳适当长度的多个片段。环形谐振器可用作例 如调制器,以提供波长选择性,从而避免了需要用于其他种类的调制器的额 外的光学复用器和解复用器。

当脉冲幅度调制(pulse amplitude modulation,PAM)具有多于两个水平时 (即,对于具有多于2比特的数字值),在非片段式设计中的信号调节可能比 片段式设计中的信号调节更为复杂。在干涉仪调制器中(例如图7中的MZI 调制器),调制器的光学干涉部分(例如MZI调制器3900的耦合器3902b)基 于移相器(例如图7中的3906)的折射率调制,提供导致预定的幅度减少的一 定程度的相消光学干涉。对于一系列数字输入值中连续的数字输入值之间对 应的改变,可使用对幅度改变进行整形(例如对初始幅度使用预加重,和/或对拖后幅度(trailing amplitude)使用去加重)的电路来处理驱动移相器的电 DAC信号。在非片段式设计中,不是应用简单的预加重/去加重方案在两个 水平之间切换,而是有更复杂的预加重/去加重形式,用于在4个或更多个水 平之间进行切换。

在一些实施例中,当将不同的调制器输入值映射至调制器的不同的所得 幅度减少时,在调制器中可能发生非线性。存在用于补偿这种非线性的技术, 但是非线性补偿过程可能相对较慢和/或消耗相对大量的功率。具有非线性补 偿的、用于较快速且功率效率较佳的预加重/去加重信号调节的技术可在形成 驱动干涉仪调制器中的单个移相器的电信号时,通过组合不同信号调节路径 来实现。一序列输入值中的给定数量的比特(例如n个比特)、或并行的n比 特值,可用于控制2n个单一水平(single-level)的DAC中的每一个DAC。 例如,该2n个单一水平的DAC可包括在第一MC子单元132(如果具有片段 式设计的MZI用于调制器阵列144)、第二MC子单元134(如果具有片段式 设计的MZI用于OMM单元150)或这二者(如果具有片段式设计的MZI用于 调制器阵列144和OMM单元150这二者)中。每个单一水平的DAC被配置 以仅提供幅度为该2n个比特值中之一的电信号以及针对该幅度的对应预加 重和去加重,该预加重和去加重被针对该幅度的调制器的给定非线性进行了 适当调节。接着,从已调节的单一水平的DAC输出的适当一者中选择提供 调制器输入值的电信号。

例如,来自提供给定调制器输入值的单一水平的DAC之一的第一信号 调节路径,可被配置以提供与驱动DAC的一系列数字输入值相对应的未调 节电信号,其中对于给定类型的DAC(例如电流导向式(current-steering)DAC), 在该调制器输入值下,该输出可基于该调制器的已知非线性被适当地缩放。 第二信号调节路径可被配置,以提供该未调节电信号的延迟、缩放和/或反相 版本(以提供预加重)。第三信号调节路径可被配置,以提供该未调节电信号 的延迟、缩放和/或反相版本(以提供去加重)。若有需要,当该未调节电信号的不同版本被加入至该未调节电信号时,可使用任何数量的额外信号调节路 径,以提供适当的预加重和/或去加重的量。已被缩放以补偿非线性、且已被 调节以提供适当的预加重和去加重的量的所得电信号,可接着被用作调制器 输入值,以得出已均衡化(equalized)且已带宽增强的光学信号,该光学信号具 有在所使用的4个或更多水平上均匀分布的不同光学幅度。

图18是曲线图3910,其示出了对于波长1530nm、1550nm以及1570nm 使用在图7中所示的配置的马赫曾德尔调制器3900的强度-电压曲线。曲线 图3910示出了马赫曾德尔调制器3900对于1530nm至1570nm范围内的不 同波长具有类似的强度-电压特性。

返回参照图6,WDM ANN计算系统104的调制器阵列144包括光学调 制器组(banksof optical modulators),其被配置以产生多个光学输入向量, 光学调制器组中的每个对应于多个波长之一并且产生具有相应波长的相应 光学输入向量。例如,对于具有长度为32和3个波长(例如:λ1、λ2以及 λ3)的光学输入向量的系统,调制器阵列144可以具有每个组32个调制器 的3个组。此外,调制器阵列144还包括光学复用器,其被配置以将多个光 学输入向量组合成包括多个波长的组合光学输入向量。例如,光学复用器可 以将三个不同波长的三个调制器组的输出组合成光学输入向量的每个元素 的单个传播信道(例如波导)。如此一来,返回上面的示例,组合光学输入向 量将具有32个光学信号,每个信号包括3个波长。

此外,WDM ANN计算系统104的模拟电子单元146进一步被配置以解 复用多个波长并且产生多个解复用的输出电压。例如,模拟电子单元146可 包括解复用器,其被配置以解复用包括在多波长光学输出向量的32个信号 中的每个信号中的三个波长,并且将3个单波长光学输出向量布线(route) 到耦合至三个跨阻放大器组的三个光电检测器组。

此外,WDM ANN计算系统104的ADC单元160包括ADC组,其被 配置以转换模拟电子单元146的多个解复用的输出电压。ADC组中的每个 组对应多个波长中的一个,并且产生相应数字化解复用光学输出。例如,ADC 组可以耦合至模拟电子单元146的跨阻放大器组。

控制器110可以实现类似于处理200的方法,但是扩展为支持多波长操 作。例如,该方法可包括以下步骤:从ADC单元160得到多个数字化解复 用光学输出,多个数字化解复用光学输出形成多个第一数字输出向量,其中 多个第一数字输出向量中的每个对应多个波长之一;对多个第一数字输出向 量中的每个执行非线性变换,以产生多个变换第一数字输出向量;以及在存 储器单元中储存多个变换第一数字输出向量。

在一些示例中,可以专门设计ANN,并且可以具体地形成数字输入向 量,使得可以在不进行解复用的情况下检测多波长光学输出向量。在这种示 例中,模拟电子单元146可以是波长非敏感(wavelength-insensitive)的检测 单元,其不会解复用多波长光学输出向量的多个波长。如此一来,模拟电子 单元146的每个光电检测器有效地将光学信号的多个波长加到单个光电流 中,并且模拟电子单元146输出的每个电压对应多个数字输入向量的矩阵乘 法结果的逐元素总和(element-by-element sum)。

到目前为止,作为ANN计算的一部分所执行的加权总和的非线性变换 是通过控制器110在数字域(digital domain)中执行的。在一些示例中,非 线性变换可能是计算密集的或耗功率的,显著地增强了控制器110的复杂性, 或者在吞吐量或功率效率方面限制了ANN计算系统100的性能。如此一来, 在ANN计算系统100或104的一些实施例中,可以通过模拟电子装置在模 拟域(analog domain)中执行非线性变换。

在一些实施例中,模拟电子单元146被配置以施加非线性传递函数,并 向ADC单元160输出变换输出电压。当ADC单元160接收已由模拟电子 单元146进行非线性变换的电压后,控制器110可从ADC单元160得到对 应于变换输出电压的变换数字化输出电压。由于从ADC单元160得到的数 字化输出电压已被非线性变换(“激活”),因此可省略控制器110的非线性 变换步骤,减少了控制器110的计算负担。接着,从ADC单元160直接得 到的第一变换电压可作为第一变换数字输出向量储存在存储器单元120中。

由模拟电子单元146执行的模拟电子非线性变换可以多种方式实施。例 如,可使用具有反馈(feedback)配置的高增益放大器(high-gain amplifier)、具 有可调参考电压的比较器(comparator)、二极管的非线性IV(电流-电压)特 性、二极管的击穿(breakdown)特性、可变电容器的非线性CV(电容-电压) 特性、或可变电阻器的非线性IV特性。

使用模拟非线性变换可通过减少要在数字域执行的步骤来改善ANN计 算系统104的性能,例如吞吐量或功率效率。将非线性变换步骤移出数字域, 可以允许ANN计算系统的操作中的额外的灵活性和改进。例如,在递归神 经网络中,OMM单元150的输出被激活,并且再循环回到OMM单元150 的输入。在激活由ANN计算系统100中的控制器110执行的示例中,需要 在每次通过OMM单元150时数字化模拟电子单元146的输出电压。在激活 在ADC单元160进行数字化之前执行的示例中,可以减少在执行递归神经 网络计算中所需的ADC转换的次数。

在一些实施例中,模拟非线性变换可由ADC单元160执行。例如,非 线性ADC单元可以是具有非线性查找表的线性ADC单元,非线性查找表将 线性ADC单元的线性数字化输出映射到所期望的非线性变换数字化输出。

图1中的ANN计算系统100的光电处理器140的一些实施例包括激光 单元142,其产生具有相同波长且光学相干的N个光输出。在这些实施例中, 光学矩阵乘法单元150在光学域中执行N×N矩阵乘法,其中光学信号从 OMM单元150的输入到OMM单元150的输出保持相干。上面已经描述了 OMM单元150在光学域中执行矩阵乘法的优点。在其他实施例中,OMM单元150在执行矩阵计算时能够处理非相干或低相干的光学信号。以下描述了 光电计算系统,其不要求光学信号在整个矩阵乘法过程中是相干的,其中计 算的一部分在光学域中执行,并且计算的一部分在电域中执行。

光电计算系统可使用不同类型的操作来产生计算结果,每个操作都是针 对最适合于操作的基本物理特性(例如:在能量消耗和/或速度方面)的信号 (例如:电信号或光学信号)执行的。例如,可以使用光功率分离来执行复 制,可以使用基于电流的求和来执行求和,并且可以使用光学幅度调制来执 行乘法。可以使用这三种类型的操作所执行的计算的示例是将向量乘以矩阵 (例如:如人工神经网络计算所采用的)。可以使用这些操作来执行各种其 他计算,这些操作表示可以执行各种计算的通用线性操作的集合,包括但不 限于:向量-向量点积、向量-向量逐元素乘法、向量-标量逐元素乘法、或矩 阵-矩阵逐元素乘法。

参照图19,光电计算系统1800的示例包括提供光学信号的一组光学端 口或光源1802A、1802B等。例如,在一些实施例中,光学端口/光源1802A 可包括光学输入耦合器,其提供耦合到光学路径1803的光学信号。在其他 实施例中,光学端口/光源1802A可包括调制光源,例如激光(例如:用于相 干敏感实施例)或发光二极管(light emitting diode;LED)(例如:用于相 干非敏感实施例),其产生耦合到光学路径1803的光学信号。一些实施例可以包括将光学信号耦合到系统1800中的端口和在系统1800内产生光学信号 的源的组合。光学信号可包括已经或正在使用各种形式的调制中的任何一种 来利用信息进行调制的过程中的任何光波(例如电磁波,其频谱包括在大约 100nm和大约1mm之间的范围内的波长)。光学路径1803可以例如基于光 学波导(例如:嵌入光子集成电路(PIC)或光纤中的波导)的引导模式来定 义,或者基于光学端口/光源1802A与系统1800的另一模块之间的预定自由空间路径来定义。

在一些实施例中,光电计算系统1800被配置以对在通过光学端口/光源 1802A、1802B等所提供的相应光学信号上编码的输入值阵列执行计算。例 如,对于基于神经网络的各种机器学习应用,计算可以实现向量-矩阵乘法 (或矩阵乘以向量的乘法(vector-by-matrix multiplication)),其中矩阵乘以 输入向量以产生输出向量作为结果。光学信号可以表示向量的元素,可能仅 包括向量的所选元素的子集。例如,对于一些神经网络模型,在计算中使用 的矩阵的尺寸可以大于可以加载到执行计算的向量矩阵-乘法部分的硬件系 统(例如,较大系统的引擎或协处理器)中的矩阵的尺寸。因此,执行计算 的一部分可以涉及将矩阵和向量分成可以分别提供给硬件系统的较小片段 (segment)。

图19中所显示的模块可以是对例如64×64元素矩阵的相对较大的矩阵 (或子矩阵)执行向量-矩阵乘法的较大系统的一部分。但是,出于说明的目 的,将在使用2×2元素矩阵执行向量-矩阵乘法的示例计算的上下文中描述 模块。在该示例中引用的模块将包括两个复制模块1804A和1804B,四个乘 法模块1806A、1806B、1806C以及1806D,以及两个求和模块,其中仅一 个求和模块1808在图19中显示。这些模块将使输入向量乘以矩阵 以产生输出向量对于该向量-矩阵乘法输 出向量的两个元素中的每个可以由不同的等式表示,如下所示。

yA=MAxA+MBxB (等式1)

yB=MCxA+MDxB (等式2)

等式(1)和(2)可以分解为可以使用一组基本操作(复制操作、乘法 操作以及求和操作)在系统1800中执行的分开的步骤。在这些等式中,输 入向量的每个元素出现两次,因此有两个复制操作。还有四个乘法操作,并 且有两个求和操作。对于使用较大矩阵实现向量-矩阵乘法的系统,执行的操 作数量会更大,并且使用形状不是方形矩阵的矩阵(即,列数与行数不同), 每个操作的相对实例数量将不同。

在此示例中,通过复制模块1804A和1804B来执行复制操作。输入向 量xA和xB的元素分别由来自光学端口/光源1802A和1802B的光学信号上所 编码的值来表示。这些值中的每个都用于两个等式中,因此复制每个值以将 得到的两个副本提供给不同的相应乘法模块。例如,如下面更详细的描述, 可以使用已被调制为具有来自一组多个功率水平的功率的光波,或具有来自 一组多个占空比的占空比的光波,在特定时隙中编码值。通过复制在其上编 码值的光学信号来复制值。被编码具有表示元素xA的值的光学信号由复制模 块1804A复制,并且被编码具有表示元素xB的值的光学信号由复制模块 1804B复制。每个复制模块可以例如使用光功率分离器来实现,光功率分离 器例如是波导分光器,其将输入波导中的引导模式耦合到Y形分离器上的两 个输出波导中的每个,Y形分离器逐渐(例如绝热地(adiabatically))分离 功率,或者光功率分离器例如是自由空间分束器,其使用具有一个或多个层 的介电界面或薄膜,以分别从输入光束传输和反射两个输出光束。

在本公开中,当说通过复制模块1804A来复制被编码具有表示元素xA的 值的光学信号时,是指基于输入信号来产生表示元素xA的多个信号副本,复 制模块1804A的输出信号不一定具有与输入信号相同的幅度。例如,如果复 制模块1804A在两个输出信号之间均匀地分离输入信号功率,则两个输出信 号中的每个将具有等于或小于输入信号功率的50%的功率。两个输出信号是 彼此的副本,而复制模块1804A的每个输出信号的幅度不同于输入信号的幅 度。而且,在具有用于复制给定光学信号或光学信号子集的一组多个复制模 块的一些实施例中,每个单独的复制模块不一定在其产生的副本之间均匀地 分离功率,但是该组复制模块可以共同地被配置以提供与下游模块 (downstream module)(例如:下游乘法模块)的输入具有基本相等的功率 的副本。

在该实施例中,乘法操作由四个乘法模块1806A、1806B、1806C以及 1806D执行。对于一个光学信号的每个副本,一个乘法模块将光学信号的副 本乘以矩阵元素值,这可以使用光学幅度调制来执行。例如,乘法模块1806A 将输入向量元素xA乘以矩阵元素MA。向量元素xA的值可以在光学信号上编码, 并且矩阵元素MA的值可以编码作为光学幅度调制器的幅度调制水平 (amplitude modulation level)。

被编码具有向量元素xA的光学信号可以使用不同形式的幅度调制来编 码。光学信号的幅度可以对应特定时隙内的物理光波的特定瞬时功率水平PA, 或者可以对应特定时隙上的物理光波的特定能量EA(随着时间的推移积分 的功率(the power integratedover time)产生总能量)。例如,可以调制激光 源的功率以具有来自多个功率水平的预定集合的特定功率水平。在一些实施 例中,在优化的操作点附近操作电子电路可能是有用的,因此代替在许多可 能的功率水平上改变功率,使用优化的“开启(on)”功率水平,其中信号被 调制为对于时隙的特定部分是“开启(on)”和“关闭(off)”(处于零功率)。 功率在“开启(on)”水平的时间部分对应特定能量水平。可以将功率或能量 的这些特定值中的任何一个映射到元素xA的特定值(使用线性或非线性映射 关系)。在信号处在电域中之后,产生特定总能量水平的随着时间的实际积 分(actual integration over time)可以在系统1800的下游发生,如下面更详 细的描述。

另外,术语“幅度”可以指由光波中的瞬时或积分功率表示的信号的幅度, 或者也可以等效地指光波的“电磁场幅度”。这是因为电磁场幅度与信号幅度 具有定义良好的关系(例如:通过在引导模式或自由空间光束的横向尺寸上 积分电磁场强度(与电磁场幅度的平方成比例)以产生瞬时功率)。这导致调 制值之间的关系,因为通过特定值调制电磁场幅度的调制器也可以被认 为是通过对应的值M调制基于功率的信号幅度(因为光功率与电磁场幅度 的平方成比例)。

通过乘法模块用来编码矩阵元素MA的光学幅度调制器可以通过使用各 种物理相互作用中的任何一种来改变光学信号的幅度(即光学信号中的功率) 来操作。例如,调制器可包括环形谐振器、电吸收调制器、热电光学调制器 (thermal electro-opticalmodulator)或马赫曾德尔干涉仪(MZI)调制器。在 一些技术中,一部分功率被吸收作为物理相互作用的一部分,并且在其他技 术中,使用物理相互作用来转移功率,物理相互作用修改光波的其他特性而 不是其功率,例如其偏振或相位,或者修改不同光学结构之间的光功率的耦 合(例如:使用可调谐振器)。对于使用已经在不同路径上行进的光波之间的 干涉(例如,相消(destructive)和/或相长(constructive)干涉)来进行操作 的光学幅度调制器,可以使用相干光源(例如激光)。对于使用吸收来操作的 光学幅度调制器,可以使用相干或非相干或低相干光源中任一个,例如LED。

在波导1×2光学幅度调制器的一个示例中,相位调制器被用以通过将相 位调制器放置在调制器的多个波导之一中来调制光波中的功率。例如,波导1×2光学幅度调制器可以将由输入光学波导引导的光波分离进入第一臂和第 二臂。第一臂包括移相器,其相对于第二臂的相位延迟给予相对相移。接着 调制器组合来自第一臂和第二臂的光波。在一些实施例中,不同的相位延迟 值通过相长干涉或相消干涉将输入光学波导所引导的光波中的功率乘以0到 1之间的值。在一些实施例中,第一臂和第二臂组合成两个输出波导中的每个,并且由接收来自两个输出波导的光波的相应光电检测器所产生的光电流 之间的差异提供有符号的乘法结果(例如,乘以-1到1之间的值),如下面 更详细的描述(参见图28)。通过适当选择编码光学信号的幅度缩放,矩阵 元素值的范围可以映射到正值(0到M)或有符号值(-M到M)的任意范 围。

在该示例中,求和操作由两个求和模块执行,其中求和模块1808(如图 19所示)用于在用来计算输出向量元素yB的等式(2)中执行求和。对应的 求和模块(未显示)用于在用来计算输出向量元素yA的等式(1)中执行求和。 求和模块1808产生电信号,电信号表示两个乘法模块1806C和1806D的结 果的总和。在此示例中,电信号是电流isum的形式,其分别与由乘法模块 1806C和1806D所产生的输出光学信号中的功率的总和成比例。在一些实施 例中,产生此电流isum的求和操作在光电域中执行,并且在其他实施例中在 电域中执行。或者,一些实施例可以使用用于一些求和模块的光电域求和以 及使用用于其他求和模块的电域求和。

在电域中执行求和的实施例中,求和模块1808可以使用以下来实现: (1)两个或更多个输入导体,每个输入导体承载输入电流,输入电流的幅度 表示乘法模块之一的结果,以及(2)至少一个输出导体,其承载作为输入电 流的总和的电流。例如,如果导体是在结点交会的导线,则会发生这种情况。 例如(不受理论束缚),基于基尔霍夫电流定律(Kirchhoff’s current law)可 以理解这种关系,该定律指出流入结点的电流等于流出结点的电流。对于这 些实施例,提供给求和模块1808的信号1810A和1810B是输入电流,其可以由光电检测器产生,光电检测器是乘法模块的一部分,乘法模块产生相应 的光电流,其幅度与接收的光学信号中的功率成比例。求和模块1808接着 提供输出电流isum。接着可以使用输出电流的瞬时值(instantaneous value) 或输出电流的积分值(integratedvalue)来表示总和的定量值(quantitative value)。

在光电域中执行求和的实施例中,求和模块1808可以使用光电检测器 (例如:光电二极管)来实现,光电检测器接收由不同相应乘法模块产生的 光学信号。对于这些实施例,提供给求和模块1808的信号1810A和1810B 是输入光学信号,每个输入光学信号包括光波,其功率代表乘法模块之一的 结果。在该实施例中的输出电流isum是由光电检测器产生的光电流。由于光 波的波长是不同的(例如:足够不同使得它们之间不发生显著的相长干涉或 相消干涉),光电流将与接收的光学信号的功率的总和成比例。光电流也基 本等于各个电流的总和,各个电流将导致由分开的等效光电检测器所检测到 的各个检测光功率。光波的波长是不同的,但足够接近以使光电检测器具有 基本相同的响应(例如:光电检测器的基本平坦的检测带宽内的波长)。如上 面所述,使用电流求和的在电域中的求和可以通过避免对多个波长的需求来 实现更简单的系统架构。

图20示出了用于使用2×2元素矩阵执行向量-矩阵乘法的系统的实现的 系统配置1900的示例,其中在电域中执行求和操作。在此示例中,输入向 量是并且矩阵是输入向量的每个元素在不同的 光学信号上编码。两个不同的复制模块1902a、1902b(统称为1902)执行光 学复制操作以在不同的路径(例如:“上”路径和“下”路径,其中术语“上” 和“下”是指图中路径的相对位置)上分离计算。存在四个乘法模块1904a、 1904b、1904c和1904d(统称为1904),每个乘法模块1904使用光学幅度调 制乘以不同的矩阵元素。在每个乘法模块1904的输出,存在光学检测模块 1906(例如1906a、1906b、1906c、1906d),其将光学信号转换为电流形式的 电信号。使用求和模块1908a将不同输入向量元素的两个上路径(例如包括 1906a和1906c的输出)组合,并且使用求和模块1908b将不同输入向量元素 的两个下路径(包括1906b和1906d的输出)组合。求和模块1908a和1908b (统称为1908)在电域中执行求和。因此,输出向量的每个元素都在不同的电信号上编码。如图20所示,随着计算的进行,递增地产生输出向量的每 个分量,以分别地产生上路径和下路径的以下结果。

M11v1+M12v2

M21v1+M22v2

在该系统的不同部分,不同的光功率可代表相同的值。例如,复制模块 1902a接收输入波导1914上的输入信号,并提供输出信号至输出波导1916a 和1916b。输出波导1916a或1916b上的代表值v1的光学信号的幅度具有约 为输入波导1914上的代表值v1的光学信号的幅度的一半的幅度。

在一些实施例中,如果复制模块执行光学复制操作以在三个路径上分离 计算,则分光器的输出波导上代表特定值的光学信号的幅度约为该分光器的 输入波导上代表该特定值的光学信号的幅度的三分之一。相似地,如果复制 模块执行光学复制操作以在四个路径上分离计算,则分光器的输出波导上代 表特定值的光学信号的幅度约为该分光器的输入波导上代表该特定值的光 学信号的幅度的四分之一,以此类推。

在一些实施例中,光子集成电路包括不同类型的复制模块,例如执行光 学复制操作以在两个路径上分离计算的第一复制模块、执行光学复制操作以 在三个路径上分离计算的第二复制模块、执行光学复制操作以在四个路径上 分离计算的第三复制模块、以及执行光学复制操作以在八个路径上分离计算 的第四复制模块。从第一、第二、第三和第四复制模块的输出导出的信号在 进行组合之前先进行缩放。

例如,假设vout1是从使用2×2元素矩阵的向量-矩阵乘法得到的向量 的值,其中在光学复制操作中使用1对2分离器,而vout2是从使用4×4元 素矩阵的向量-矩阵乘法运算得到的向量的值,其中在光学复制操作中使用1 对4分离器。如果光子集成电路被配置为使vout1与vout2组合,则在与vout1 组合之前,将vout2缩放为其值的两倍。

可以使用各种光电技术中的任何一种来实现系统配置1900。在一些实施 例中,存在公共基板(例如:半导体(例如硅)),其可以支持集成光学组件 和电子组件两者。光学路径可以在波导结构中实现,波导结构具有由具有较 低光学指数(optical index)的材料围绕的具有较高光学指数的材料,该波导 结构定义用于传播承载了光学信号的光波的波导。电路径可以由导电材料实 现,用于传播承载了电信号的电流。在图20至图22、图25至图38中,除 非另外说明,表示路径的线的厚度用于区分光学路径(由较粗的线表示)和 电路径(由较细的线或虚线表示)。可以在公共基板上制造光学装置(例如分 离器和光学幅度调制器)以及电装置(例如光电检测器和运算放大器 (operational amplifier;op-amp))。可替换地,可以使用具有不同基板的不同 装置来实现系统的不同部分,并且那些装置可以通过通信信道进行通信。例 如,光纤可用于提供通信信道,以在用于实现整个系统的多个装置之间发送 光学信号。那些光学信号可以表示当执行向量-矩阵乘法时所提供的输入向 量的不同子集,和/或当执行向量-矩阵乘法时所计算的中间结果的不同子集, 如下面更详细的描述。

在本公开中,附图可显示穿过电信号线的光学波导,应理解光学波导不 与电信号线相交。电信号线和光学波导可以布置在装置的不同层。

图21示出了用于使用2×2元素矩阵执行向量-矩阵乘法的系统的实现的 系统配置1920的示例,其中在光电域中执行求和操作。在此示例中,使用 两个不同的相应波长λ1和λ2将不同的输入向量元素编码在光学信号上。乘法 模块1904a和1904c的光学输出信号被组合在光学组合器模块1910a中,乘 法模块1904b和1904d的光学输出信号被组合在光学组合器模块1910b中。 光学波导1914a将来自光学组合器模块1910a的两个波长λ1和λ2上的光学信 号引导到光电求和模块1912a。相似地,光学波导1914b将来自光学组合器 模块1910b的两个波长λ1和λ2上的光学信号引导到光电求和模块1912b。光 电求和模块1912a和1912b可以使用光电检测器来实现,如用于图20的示 例中的光学检测模块1906。在这个示例中,总和由表示两个波长中的功率的 光电流表示,而不是由离开不同导体之间的结点的电流表示。

在本公开中,当附图显示两个彼此交叉的光学波导时,从描述中将清楚 两个光学波导是否实际上彼此光学耦合。例如,从装置的俯视图显示的看起 来彼此交叉的两个波导可以在不同的层中实现,并因此不彼此相交。例如, 在图21中,将光学信号λ2作为输入提供到复制模块1902b的光学路径和从 乘法模块1904a提供光学信号M11V1到光学组合器模块1910a的光学路径彼 此不是光学耦合的,尽管在附图中它们可能看起来彼此交叉。相似地,从复 制模块1902b提供光学信号λ2到乘法模块1904d的光学路径和从乘法模块 1904b提供光学信号M21V1到光学组合器模块1910b的光学路径彼此不是光 学耦合的,尽管在附图中它们可能看起来彼此交叉。

可以扩展图20和图21中所示的系统配置以实现用于使用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,可以 使用对称差分配置,如下面更详细的描述。相似地,对称差分配置也可用于 将在各种信号上编码的值的正范围扩展到值的有符号范围。

图22示出了对称差分配置2000的示例,其用于为在光学信号上编码的 值提供有符号范围的值。在此示例中,存在两个相关的光学信号,其编码无 符号值(unsignedvalue),指定为其中假设每个值在0(例如:对 应接近零的光功率)与Vmax(例如:对应最大功率水平的光功率)之间改变。 两个光学信号之间的关系是,当一个光学信号用“主要(main)”值编码时, 另一个光学信号用对应的“反对称(anti-symmetric)”值编码,使得在一个 光学信号上编码的主要值从0单调增加(monotonically increase)到Vmax, 在配对光学信号上编码的反对称值从Vmax单调减少(monotonically decrease)到0。或者,相反地,当在一个光学信号上编码的主要值从Vmax单调减少到0时,在配对光学信号上编码的反对称值从0单调增加到Vmax。 在上路径和下路径中的光学信号被相应光学检测模块1906a和1906b转换为 电流信号之后,电流信号之间的差异可以由电流减法模块(current subtraction module)2002产生。编码的电流信号之间的差异导致用有符号值V1编码的电流,给定为:

其中随着无符号主要值从0单调增加到Vmax并且与其成对的反对称 值从Vmax单调减少到0,有符号值V1在-Vmax与Vmax之间单调增加。存在 可用于实现图22的对称差分配置的各种技术,如图23和图24所示。

在图23中,在公共端配置(common-terminal configuration)中检测光学 信号,其中两个光电二极管检测器连接至运算放大器2030的公共端2032(例 如:反相端(inverting terminal))。在此配置中,从第一光电二极管检测器2012 产生的电流2010和从第二光电二极管检测器2016产生的电流2014在三个 导体之间的结点2018组合,以产生电流2010与电流2014之间的差值电流 2020。电流2010和电流2014是从相应光电二极管的相对侧提供的,光电二 极管在另一端连接到提供相同幅度vbias但相反符号的偏置电压的电压源(未 显示),如图23所示。在此配置中,由于在公共结点2018汇聚的电流的行 为而产生差值。差值电流2020表示在电信号上编码的有符号值,其对应在 检测的光学信号上编码的无符号值之间的差值。运算放大器2030可以配置 成跨阻放大器(transimpedanceamplifier;TIA)配置,其中另一端2024接地, 并且输出端2026使用电阻元件2028反馈到公共端2032,电阻元件2028提 供与差值电流2020成比例的电压。这种TIA配置将提供结果值作为电压信 号形式的电信号。

在使用TIA将光电流转换为电压的传感器的一些实施例中,会使用技术 以减轻用作光电检测器2012及2016的光电二极管的内电容的影响。光电二 极管的内电容Cd可建模为与理想光电二极管并联的电容器。一种结果是, 当电流快速改变时,该电容器会充当短路,这会限制检测器的带宽。一般而 言,与对运算放大器2030的输入电流2020引起的改变相关联的时间常数τ 应维持较小,以避免显著的带宽限制。在没有减轻的情况下,则此时间常数 将大约等于电容Cd乘以运算放大器2030的输入电阻Rin,Rin约等于由于电 阻元件2028导致的反馈电阻Rf除以运算放大器增益A,得出:τ=CdRf/A。 此影响对具有较大数量相互并联的光电二极管的系统(如本说明书中所述的 一些系统)特别不利,因为相互并联的电容将加和为大的有效电容。然而,实 现大的运算放大器增益A以减小该时间常数,则会在使用大量这种TIA电 路的系统中消耗大量功率。为减轻带宽限制而不需要如此多的功率,可通过 将给定电压跟随器(voltage follower)连接至给定光电二极管的输入端与输 出端,来将电压跟随器电路(也称单位增益放大器(unity-gain amplifier)或 缓冲放大器(bufferamplifier))与每个光电二极管并联放置。电压跟随器根 据需要提供电流,以在其输入端和输出端维持大致相等的电压,这具有防止 电流快速改变时光电二极管的内电容充当短路的作用,从而实现了接近零的 时间常数τ。使用电压跟随器可使TIA电路中的运算放大器增益A相对较 低(例如,低于1000或低于100),从而降低了系统的功率需求。

在图24中,光学信号在差分端子配置中检测,其中两个光电二极管检 测器连接到运算放大器2050的不同端子。在此配置中,从第一光电二极管 检测器2042产生的电流2040连接到反相端2052,并且从第二光电二极管 检测器2046产生的电流2044连接到非反相端2054。电流2040和2044从 相应光电二极管的相同端提供,光电二极管在另一端连接到提供相同幅度 vbias和相同符号的偏置电压的电压源(未显示),如图24所示。在此配置中 的运算放大器2050的输出端2056提供与电流2040和电流2044之间的差值 成比例的电流。在此配置中,由于运算放大器2050的电路的行为而产生差 值。从输出端2056流出的差值电流表示在电信号上编码的有符号值,其对 应在检测的光学信号上编码的无符号值之间的差值。

图25示出了对称差分配置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之间单调增加。

图26示出了用于使用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的功率比分离以提供两个中间光学信号。接着,可 以使用具有1:2的功率比的第二分离器来分离这些中间光学信号中的一个, 以将25%的功率转移到第一路径和第二路径中的每个,并且可以使用具有1: 2功率比的第三分离器来分离这些中间光学信号中的另一个,以将25%的功 率转移到第三路径和第四路径中的每个。

系统配置2110还包括如图26所示布置的其他模块,以提供表示输出向 量的两个不同的输出电信号,输出向量是由系统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 -信号的信号线。

可以扩展图26中所示的系统配置以实现使用m×n元素矩阵执行向量- 矩阵乘法的系统配置,其中输入向量和矩阵包括有符号元素。

存在可以用于实现图26的对称差分配置的各种技术。这些技术中的一 些利用1×2光学幅度调制器来实现乘法模块1904,和/或提供与主要和反对 称配对相关的光学信号对。图27示出了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的一个 输出波导(例如2208a),并且180度的相移导致在两个路径之间分离的输入 功率的基本全部都耦合到耦合器2206的另一个输出波导(例如2208b)。接 着,0度和180度之间的相移可以通过部分相长干涉或相消干涉或部分波导 耦合将光波中的功率(和在光波上编码的值)乘以0和1之间的值。然后可 以将乘以0和1之间的任何值的乘法映射到如上所述的乘以0和Mmax之间 的任何值的乘法。

另外,从调制器2200发射的两个光波中的功率之间的关系遵循上面所 述的主要和反对称配对的功率之间的关系。当一个信号的光功率的幅度增加 时,另一个信号的光功率的幅度减少,因此检测到的光电流之间的差值可以 产生有符号向量元素,或者乘以有符号矩阵元素,如本文所述。例如,可以 从调制器2200的两个输出端口提供该对相关光学信号,使得相关光学信号 的幅度之间的差值对应将输入值乘以有符号矩阵元素值的结果。图28示出 了1×2光学幅度调制器2200的对称差分配置2210,其在图23的对称差分 配置的公共终端版本(common-terminal version)中在待检测的输出处布置有 光学信号。对应由一对光电检测器2212和2214所产生的光电流的电流信号 在结点2216组合,以提供输出电流信号,其幅度对应相关光学信号的幅度 之间的差值。在其他示例中,例如在图24的对称差分配置中,可以使用不 同的电路组合从输出处的两个光学信号所检测到的光电流。

可以使用其他技术来建构1×2光学幅度调制器以用于实现乘法模块 1904,和/或提供作为主要和反对称配对而相关的光学信号对。图29示出了 另一种类型的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的质量因子(例如:通过增加损耗)并相应地增加进入 和离开环的耦合系数来实现。浅调整曲线提供对谐振波长的较小幅度灵敏度。 诸如温度控制的技术也可用于谐振波长的调整和/或稳定性。

图30示出了另一种类型的1×2光学幅度调制器的对称差分配置2230的 另一示例。在此示例中,1×2光学幅度调制器包括两个环形谐振器2232和 2234。在输入端口2231的光学信号的光功率被分到两个端口。当光学信号 的波长接近与两个环形谐振器2232和2234相关联的谐振波长时,降低功率 的光波通过路径2236离开第一输出端口。光波的一部分还耦合到在顺时针 路径2238上围绕环循环的环形谐振器2232中,并且还耦合到在逆时针路径 2240上围绕环循环的环形谐振器2234中。接着将循环的光波耦合出环,使 得另一光波通过路径2242离开第二输出端口。在此示例中,由光电检测器 2212检测的光波和由光电检测器2214检测的光波也形成主要和反对称配对。

图31和图32示出了使用光学幅度调制器的不同示例,例如使用1×2光 学幅度调制器2200,用于实现对2×2元素矩阵执行向量-矩阵乘法的系统 1800。图31示出了光电系统配置2300A的示例,其包括提供表示输入向量 的有符号向量元素的值的光学幅度调制器2302A和2302B。调制器2302A提 供一对光学信号,其为第一有符号向量元素编码一对值并且调制 器2302B提供一对光学信号,其为第二有符号向量元素编码一对值向量-矩阵乘法器(VMM)子系统2310A接收输入光学信号,执行分离操作、 乘法操作以及如上面所述的一些求和操作,并且提供将由额外电路处理的输 出电流信号。在一些示例中,输出电流信号表示被进一步处理以产生最终总 和的部分总和,最终总和导致输出向量的有符号向量元素。在此示例中,一 些最终求和操作被执行作为由运算放大器2306A和2306B的反相和非反相 端处的电流信号表示的不同部分总和之间的减法。减法用以提供有符号值, 如上面所述(例如:参考图26)。此示例还说明了某些元素如何成为多个模 块的一部分。具体来说,由波导分离器2303执行的光学复制可以被认为是 复制模块(例如:图26中的复制模块2112的一个)的一部分和乘法模块(例 如:图26中的乘法模块1904的一个)的一部分。在VMM子系统2310A内 使用的光学幅度调制器被配置用于在图23中所示的公共端子配置(common- terminal configuration)中进行检测。

图32示出了与图31中所示的光电系统配置2300A的示例类似的光电 系统配置2300B的示例。但是,VMM子系统2310B包括光学调制器,其被 配置用于在图24所示的差分端子配置中进行检测。在此示例中,VMM子系 统2310B的输出电流信号也表示被进一步处理以产生最终总和的部分总和, 最终总和导致输出向量的有符号向量元素。作为由运算放大器2306A和 2306B的反相和非反相端处的电流信号表示的不同部分总和之间的减法执行 的最终求和操作与图31的示例不同。但是,如上面所述(例如:参照图26), 最终减法仍然导致提供有符号值。

图33示出了光电系统配置2300C的示例,其在公共端子配置中进行检 测的情况下(如图31所示的VMM子系统2310A中那样)使用VMM子系 统2310C的替代布置,但承载乘法模块的结果的光学信号通过波导内(例如, 在半导体基板内)的子系统布线至基板的一部分,基板包括被布置以将光学 信号转换成电信号的检测器。在一些实施例中,该检测器的分组允许缩短电 路径,从而可能减少由于在其他情况下将使用的长电路径所引起的电串扰或其他损害。在一些实施例中,光学波导可以在基板的一个层内布线(route), 或者在基板的多个层内布线,以允许在基板的两个维度上交叉但不在(基板 中的深度的)第三维度中交叉的布线路径中的更大灵活性。可以在系统配置 中进行各种其他更改,包括VMM子系统中所包括的组件的更改。例如,光 学幅度调制器2302A和2302B可以被包括作为VMM子系统的一部分。可 替换地,VMM子系统可以包括光学输入端口,用于接收由除了光学幅度调 制器之外的模块所产生的成对的主要和反对称光学信号,或者用于与其他类 型的子系统接口。

图34示出了用于系统1800的实现的系统配置2400A的示例,其中存 在承载(host)不同乘法模块(例如:乘法模块1806A、1806B、1806C和 1806D)的多个装置2410,每个乘法模块都被配置作为VMM子系统,以通 过较大矩阵的不同子矩阵对向量元素的不同子集执行向量-矩阵乘法。例如, 每个乘法模块可以被配置与系统配置2110(图26)相似,但不是使用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执行向量-矩阵乘法,提供其部分结果作为电信号的集合 (用于输出向量的元素的子集),来自不同装置2410的相应部分结果对通过 如图34所示的求和模块2414被使用本文所述的任何技术(例如导体之间的 结点处的电流求和)加在一起。在该示例中,装置2410a的输出通过电线2416a传输至求和模块2414a,装置2410b的输出通过电线2416b传输至求 和模块2414a。

在一些实施例中,对于任何数量的递归水平,可以通过组合来自较小子 矩阵的结果来递归地执行使用期望矩阵的向量-矩阵乘法,通过在递归的根 级(root level)使用单一元素光幅度调制器来结束。在递归的不同水平,VMM 子系统装置可以更紧凑(例如:通过在一个水平的长距离光纤网络连接的不 同数据中心,通过在另一水平的数据中心内的光纤连接的不同多芯片装置, 通过在另一水平的光纤连接的装置内的不同芯片,以及通过另一水平的芯片 上波导(on-chip waveguide)连接的在相同芯片上的模块的不同部分)。

图35示出了系统配置2400B的另一示例,其中额外装置用于对每个 VMM子系统2410的光学发送和接收。在一些实施例中,不同的向量-矩阵 乘法器子系统2410由分离的装置承载(host)和/或分布在分离的远程位置 上。在该示例中,在每个VMM子系统2410的输出2418处(输出2418提 供电信号),光学发射器阵列2420用于将电信号转换为光学信号,并且将每 个光学信号耦合到光传输线内的信道(例如:VMM子系统2410之间的光纤 束(fiberbundle)中的光纤,VMM子系统2410可以由分离的装置承载(host) 和/或分布在远程位置)。光学发射器阵列2420可以包括例如激光二极管的 阵列,其将向量-矩阵乘法器子系统2410的输出处的电信号转换成光学信号。 在一些实施例中,不同的向量-矩阵乘法器子系统2410位于集成装置(例如, 片上系统)上的不同区域,该集成装置将向量-矩阵乘法器子系统2410承载 在公共基板上。在此示例中,在每个向量-矩阵乘法器子系统2410的输出2418处,使用光学发射器阵列2420将输出2418处的电信号转换为光学信号,并 将每个光学信号耦合到集成装置上的不同区域之间的波导2416的集合中的 波导内的信道。光学接收器阵列2422用于输出向量元素的每个子集,以在 部分结果的对应配对由求和模块2414求和之前,将光学信号转换成电信号。

图36示出了系统配置2400C的另一示例,其中可以重新配置VMM子 系统2410以使得用于不同子矩阵的不同向量-矩阵乘法能够以不同方式重新 布置。例如,通过组合不同子矩阵所形成的较大矩阵的形状可为可配置的。 用户可以基于计算要求动态配置如何组合不同的子矩阵。这在光学处理器的 操作中提供了更大的灵活性。在此示例中,两个不同的光学信号子集2424a 和2424b从光学端口或光源2402的每个集合提供至光学开关2430。还存在 电开关2440,其能够重新布置电信号的子集,电信号的子集表示要由求和模 块2414求和以提供用于期望的计算的输出向量或分离的输出向量的部分结 果。例如,代替使用由大小m×n的四个子矩阵所组成的尺寸2m×2n的矩阵 的向量-矩阵乘法,可以重新布置VMM子系统2410以使用尺寸2m×n的矩 阵或尺寸m×2n的矩阵。

图37示出了系统配置2400D的另一示例,其中VMM子系统2410可 以以额外方式重新配置。光学开关2430可以接收多达四个分离的光学信号 集合,并且可以被配置以将不同的光学信号集合提供至不同的VMM子系统 2410,或者将任何光学信号集合复制到多个VMM子系统2410。而且,电开 关2440可以被配置以将所接收到的电信号的集合任何组合提供至求和模块 2414。这种更大的可重新配置性使得能够进行更多各种不同的向量-矩阵乘 法计算,包括使用尺寸为m×3n、3m×n、m×4n、4m×n的矩阵进行乘 法。

图38显示系统配置2400E的另一示例,其包括可执行各种操作(例如: 数字逻辑操作)的额外电路,以使系统配置2400E(例如:用于完整的光电 计算系统,或者用于较大计算平台的光电子系统)能够用于实施计算技术, 例如人工神经网络或其他形式的机器学习。数据储存子系统2450可包括易 失性储存介质(例如:SRAM和/或DRAM)和/或非易失性储存介质(例如: 固态驱动器和/或硬盘驱动器)。数据储存子系统2450还可包括分层缓存模 块(hierarchical cache module)。储存的数据可以包括例如训练数据、中间结 果数据或用于馈送至在线计算系统(online computational system)的生产数 据(productiondata)。数据储存子系统2450可以被配置以提供对输入数据的 并发存取(concurrentaccess),以在由光学端口或光源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存取数据所需的时间。

可以将其他处理技术结合到系统配置的其他示例中。例如,与其他种类 的向量-矩阵乘法子系统一起使用的各种技术(例如:不具有本文所述的电求 和或有符号乘法而使用光学干涉的子系统)可以结合到一些系统配置中,例 如美国专利公开第US 2017/0351293号中所述的一些技术,其通过引用并入 本文。

参照图51,在一些实施例中,人工神经网络(ANN)计算系统3200包 括调制器阵列3208。该调制器阵列3208使用片段式调制器设计,例如片段 式MZI调制器,例如图8至图16及图47至图50中所示的那些。例如,当 每个数字输入向量的长度为4时,调制器阵列3208可被配置为类似图50的 调制器阵列5000。ANN计算系统3200包括光电矩阵乘法单元3220,该光 电矩阵乘法单元3220具有例如图19至图37所示的复制模块、乘法模块和 求和模块,以实现在进行矩阵计算时处理非相干或低相干光学信号。人工神 经网络计算系统3200包括控制器110、存储器单元120和ADC单元160, 与图1的系统100中的那些单元相似。人工神经网络计算系统3200包括调 制器控制单元3202,该调制器控制单元3202包括第一DAC子单元3204和 第二DAC子单元3206。第一DAC子单元3204包括高速1比特DAC,其 中每个1比特DAC驱动移相器,例如图8、图10、图11和图15中的3956、 图9中的3960、3968及3972、图47至图49中的4714、或图50中的子调 制器5022、5024、5026及5028。例如,每个1比特DAC可产生1比特调 制器控制信号。1比特DAC可直接从控制器110接收二进制数字输出,并 将该二进制信号调节为适合驱动调制器阵列3208中对应移相器的二水平电 压或电流输出。第一DAC子单元3204可包括电荷泵送驱动电路,例如图3、 图9、图15及图48中所示的那些,用于移动电荷至移相器或从移相器移动 电荷。例如,第一DAC子单元3204可被配置为执行预加重和去加重,以增 强带宽,如前文所述。控制器110从计算机102接收请求,并发送计算输出 至计算机102,类似于图1中所示那样。

在一些示例中,OMM单元3220包括不具有片段式设计的MZI,并且第 二DAC子单元3206可与图1中的第二DAC子单元134相似。该配置对于 执行其中OMM单元3220的重新配置速率慢于调制器阵列3208的重新配置 速率的ANN计算是有用的。

在一些示例中,OMM单元3220包括具有片段式设计的MZI,并且第二 DAC子单元3206可与第一DAC子单元3204相似地包括1比特DAC。第 二DAC子单元3206也可与第一DAC子单元3204相似地包括电荷泵送驱 动电路,并执行预加重和去加重以增强带宽。

光电处理器3210包括光源3230,其可以与图1的激光单元142相似, 其中光源3230的多个输出信号是相干的。光源3230还可以使用发光二极管 来产生不相干或具有低相干性的多个输出信号。调制器阵列3208接收由第 一DAC子单元3204基于输入向量产生的调制器控制信号。调制器阵列3208 的输出可比为图19中的光学端口/光源1802的输出。光电矩阵乘法单元3220 处理来自调制器阵列3208的光信号的方式与在图19中的复制模块1804、乘法模块1806以及求和模块1808处理来自光学端口/光源1802的光学信号 的方式相似。

参照图52,光电矩阵乘法单元3220接收输入向量并且将输 入向量乘以矩阵以产生输出向量

光电矩阵乘法单元3220包括m个光学路径1803_1、1803_2、……、 1803_m(统称为1803),其承载表示输入向量的光学信号。复制模块1804_1 将输入光学信号v1的副本提供给乘法模块1806_11、1806_21、……、1806_m1。 复制模块1804_2将输入光学信号v2的副本提供给乘法模块1806_12、 1806_22、……、1806_m2。复制模块1804_n将输入光学信号vn的副本提供 给乘法模块1806_1n、1806_2n、……、1806_mn。

如上面所述,由复制模块1804_1提供的光学信号v1的副本的幅度相对 于彼此是相同的(或基本相同的),但是与调制器阵列3208所提供的光学信 号v1的幅度不同。例如,如果复制模块1804_1在m个信号中均匀地分割由 调制器阵列3208所提供的v1的信号功率,则m个信号中的每个将具有等于 或小于调制器阵列3208所提供的v1的功率的1/m的功率。

乘法模块1806_11将输入信号v1与矩阵元素M11相乘以产生M11·v1。乘 法模块1806_21将输入信号v1与矩阵元素M21相乘以产生M21·v1。乘法模块 1806_m1将输入信号v1与矩阵元素Mm1相乘以产生Mm1·v1。乘法模块1806_12 将输入信号v2与矩阵元素M12相乘以产生M12·v2。乘法模块1806_22将输入 信号v2与矩阵元素M22相乘以产生M22·v2。乘法模块1806_m2将输入信号v2与矩阵元素Mm2相乘以产生Mm2·v2。乘法模块1806_1n将输入信号vn与矩阵 元素M1n相乘以产生M1n·vn。乘法模块1806_2n将输入信号vn与矩阵元素M2n相乘以产生M2n·vn。乘法模块1806_mn将输入信号vn与矩阵元素Mmn相乘以 产生Mmn·vn,以此类推。

第二DAC子单元134基于矩阵元素的值产生控制信号,并且将控制信 号传输到乘法模块1806,以使乘法模块1806能够通过例如使用光学幅度调 制将输入向量元素的值乘以矩阵元素的值。例如,乘法模块1806_11可包括 光学幅度调制器,并且通过将矩阵元素M11的值编码作为应用于表示输入向 量元素v1的输入光学信号的幅度调制水平,可以实现将输入向量元素v1乘 以矩阵元素M11

求和模块1808_1接收乘法模块1806_11、1806_12、……、1806_1n的 输出,并且产生等于M11v1+M12v2+…+M1nvn的总和y1。求和模块1808_2 接收乘法模块1806_21、1806_22、……、1806_2n的输出,并且产生等于 M21v1+M22v2+…+M2nvn的总和y2。求和模块1808_m接收乘法模块 1806_m1、1806_m2、……、1806_mn的输出,并且产生等于Mm1v1+Mm2v2+ …+Mmnvn的总和ym

在系统3200中,光电矩阵乘法单元3220的输出被提供给ADC单元160, 而不会如图1的系统100中的情况那样通过模拟电子单元146。这是因为乘 法模块1806或求和模块1808已经将光学信号转换成电信号,因此系统3200 中不需要分开的模拟电子单元146。

图53示出了使用图51的ANN计算系统3200执行ANN计算的方法 3300的示例的流程图。方法3300的步骤可以由系统3200的控制器110执 行。在一些实施例中,方法3300的各步骤可以并行、组合、循环或以任何顺 序运行。

在步骤3310中,接收包括输入数据集和第一多个神经网络权重的人工 神经网络(ANN)计算请求。输入数据集包括第一数字输入向量。第一数字 输入向量是输入数据集的子集。例如,它可以是图像的子区域。ANN计算请 求可以由各种实体(例如图51的计算机102)产生。计算机102可包括各种 类型的计算装置中的一个或多个,例如个人计算机、服务器计算机、交通工 具计算机和飞行计算机。ANN计算请求通常是指将要执行的ANN计算通知或告知给ANN计算系统3200的电信号。在一些实施例中,ANN计算请求 可以被分为两个或更多个信号。例如,第一信号可以询问(query)ANN计 算系统3200以检查系统3200是否准备好接收输入数据集和第一多个神经网 络权重。响应于系统3200的肯定应答,计算机102可以发送包括输入数据 集和第一多个神经网络权重的第二信号。

在步骤3320中,储存输入数据集和第一多个神经网络权重。控制器110 可以将输入数据集和第一多个神经网络权重储存在存储器单元120中。在存 储器单元120中储存输入数据集和第一多个神经网络权重可以允许ANN计 算系统3200的操作中的灵活性,例如可以改善系统的整体性能。例如,通 过从存储器单元120取得(retrieve)输入数据集的期望部分,可以将输入数 据集分为设定大小和格式的数字输入向量。输入数据集的不同部分可以以各 种顺序处理,或者被混洗(shuffled),以允许执行各种类型的ANN计算。例 如,在输入和输出矩阵尺寸不同的情况下,混洗可以允许通过块矩阵乘法技 术执行矩阵乘法。作为另一示例,将输入数据集和第一多个神经网络权重储 存在存储器单元120中可以允许通过ANN计算系统3200对多个ANN计算 请求进行排队,这可以允许系统3200以其全速维持操作而没有不活动的时 段。

在一些实施例中,存储器单元120可包括第一存储器子单元和第二存储 器子单元。第一存储器子单元可以是专用于储存输入数据集和数字输入向量 的存储器,并且可具有足以支持调制器阵列3208的调制速率的操作速度。 第二存储器子单元可以是专用于储存神经网络权重的存储器,并且可以具有 足以支持OMM单元3220的重新配置速率的操作速度。在一些实施例中, 第一存储器子单元可使用SRAM来实施,并且第二存储器子单元可使用 DRAM来实施。在一些实施例中,第一存储器子单元和第二存储器子单元可 使用DRAM来实施。在一些实施例中,第一存储器子单元可实施作为控制 器110的一部分或作为控制器110的缓存。在一些实施例中,第一和第二存 储器子单元可以由单个物理存储器装置作为不同的地址空间来实施。在一些 实施例中,输入数据集可以储存在第一存储器子单元中,并且第一多个神经 网络权重可以储存在第二存储器子单元中。

在步骤3330中,基于第一数字输入向量产生第一多个调制器控制信号, 并且基于第一多个神经网络权重产生第一多个权重控制信号。控制器110可 以将第一DAC控制信号发送至调制器控制单元3202,以产生第一多个调制 器控制信号。第一DAC子单元3204基于第一DAC控制信号产生第一多个 调制器控制信号,并且调制器阵列3208产生表示第一数字输入向量的光学 输入向量。

第一DAC控制信号可包括将要由第一DAC子单元3204中的1比特 DAC转换成第一多个调制器控制信号的多个数字值。多个数字值通常对应 第一数字输入向量,并且可以通过各种数学关系或查找表来关联。例如,多 个数字值可以与第一数字输入向量的元素的值成线性比例。作为另一示例, 多个数字值可以通过查找表与第一数字输入向量的元素关联,该查找表被配 置以维持数字输入向量与由调制器阵列3208产生的光学输入向量之间的线性关系。

控制器110可以将第二DAC控制信号发送至调制器控制单元3202,以 产生第一多个权重控制信号。第二DAC子单元3206基于第二DAC控制信 号产生第一多个权重控制信号,并且光电矩阵乘法单元3220被根据第一多 个权重控制信号重新配置,从而实现对应第一多个神经网络权重的矩阵。

第二DAC控制信号可包括将要由第二DAC子单元3206转换成第一多 个权重控制信号的多个数字值。多个数字值通常对应第一多个神经网络权重, 并且可以通过各种数学关系或查找表来关联。例如,多个数字值可以与第一 多个神经网络权重成线性比例。作为另一示例,多个数字值可以通过对第一 多个神经网络权重执行各种数学操作来计算,以产生权重控制信号,权重控 制信号可以配置光电矩阵乘法单元3220以执行对应第一多个神经网络权重 的矩阵乘法。

在步骤3340中,得到对应光电矩阵乘法单元3220的电输出向量的第一 多个数字化输出。由调制器阵列3208所产生的光学输入向量由光电矩阵乘 法单元3220处理并且转换为电输出向量。电输出向量由ADC单元160转换 成数字化值。控制器110可以例如将转换请求发送至ADC单元160,以开 始将光电矩阵乘法单元3220输出的电压转换为数字化输出。一旦转换完成, ADC单元160可将转换结果发送至控制器110。可替换地,控制器110可以 从ADC单元160取得转换结果。控制器110可以从数字化输出形成数字输 出向量,该数字输出向量对应输入数字向量的矩阵乘法的结果。例如,数字 化输出可以被组织或级联以具有向量格式。

在一些实施例中,可基于由控制器110将DAC控制信号发出到调制器 控制单元3202,来设置或控制ADC单元160以执行ADC转换。例如,ADC 转换可以被设置以在调制器控制单元3202产生调制控制信号之后的预设时 间开始。ADC转换的这种控制可以简化控制器110的操作并且减少必要的 控制操作的数量。

在步骤3350中,对第一数字输出向量执行非线性变换以产生第一变换 数字输出向量。ANN的节点或人工神经元通过首先执行从先前层的节点接 收的信号的加权总和,然后执行加权总和的非线性变换(“激活”)以产生输 出来进行操作。各种类型的ANN可以实现各种类型的可微分的非线性变换。 非线性变换函数的示例包括修正线性单元(rectifiedlinear unit;RELU)函数、 S型函数、双曲正切函数(hyperbolic tangent function),X2函数以及|X|函数。 由控制器110对第一数字输出执行这种非线性变换,以产生第一变换数字输 出向量。在一些实施例中,非线性变换可由控制器110内的专用数字集成电 路执行。例如,控制器110可包括一个或多个模块或电路块,其特别适于加 速一种或多种类型的非线性变换的计算。

在步骤3360中,储存第一变换数字输出向量。控制器110可以将第一 变换数字输出向量储存在存储器单元120中。在输入数据集被分成多个数字 输入向量的情况下,第一变换数字输出向量对应例如第一数字输入向量的输 入数据集的一部分的ANN计算结果。如此一来,储存第一变换数字输出向 量允许ANN计算系统3200在输入数据集的其他数字输入向量上执行和储 存额外计算,以在稍后被聚合成单个ANN输出。

在步骤3370中,输出基于第一变换数字输出向量产生的人工神经网络 输出。控制器110产生ANN输出,其是通过由第一多个神经网络权重所定 义的ANN处理输入数据集的结果。在输入数据集被分成多个数字输入向量 的情况下,所产生的ANN输出是包括第一转换数字输出的聚合输出,但是 可进一步包括对应输入数据集的其他部分的额外转换数字输出。一旦产生 ANN输出,就将所产生的输出发送至发起ANN计算请求的计算机(例如计 算机102)。

在一些实施例中,控制器110、存储器单元120、调制器控制单元3202、 ADC单元160和微处理器可以单片集成在半导体晶粒上。在一些实施例中, 控制器110、存储器单元120、调制器控制单元3202、ADC单元160、微处 理器和系统主存储器可以集成为片上系统。在这样的示例中,过程3300中 的两个或更多个步骤可以由单片集成电路或片上系统中的各个模块执行。

可以为实现方法3300的ANN计算系统3200定义各种性能指标 (performancemetric)。定义性能指标可以允许将实现光电处理器3210的 ANN计算系统3200的性能与用于ANN计算的、替代地实现电矩阵乘法单 元(electronic matrix multiplication unit)的其他系统的性能进行比较。在一个 方面,可以执行ANN计算的速率可以部分地由第一循环时段指示,第一循 环时段定义为在存储器单元中储存输入数据集和第一多个神经网络权重的 步骤3320与在存储器单元中储存第一变换数字输出向量的步骤3360之间所 经过的时间。因此,第一循环时段包括将电信号转换成光学信号(例如:步 骤3330)、在光学域和电域中执行矩阵乘法(例如:步骤3340)所花费的时 间。步骤3320和3360都涉及将数据储存至存储器单元120中,这是在ANN 计算系统3200和没有光电处理器3210的传统ANN计算系统之间共享的步 骤。如此一来,测量存储器到存储器交易时间(memory-to-memorytransaction time)的第一循环时段可以允许在ANN计算系统3200与没有光电处理器 3210的ANN计算系统(例如实现电矩阵乘法单元的系统)之间进行ANN 计算吞吐量的实际或公平比较。

由于调制器阵列3208可以产生光学输入向量的速率(例如:在25GHz) 和光电矩阵乘法单元3220的处理速率(例如:>25GHz),用于执行单个数字 输入向量的单个ANN计算的ANN计算系统3200的第一循环时段可以接近 调制器阵列3208的速度的倒数(例如40ps)。在考虑与调制器控制单元3202 的信号产生和ADC单元160的ADC转换相关联的延迟之后,第一循环时 段可以例如小于或等于100ps、小于或等于200ps、小于或等于500ps、小于 或等于1ns、小于或等于2ns、小于或等于5ns、或小于或等于10ns。

作为比较,电矩阵乘法单元的M×1向量和M×M矩阵的乘法运行时间 通常与M2-1个处理器时钟周期(processor clock cycle)成比例。对于M=32, 这种乘法将花费大约1024个周期,其在3GHz时钟速度下导致运行时间超 过300ns,这比ANN计算系统3200的第一循环时段慢几个数量级。

在一些实施例中,方法3300进一步包括基于第一变换数字输出向量产 生第二多个调制器控制信号的步骤。在一些类型的ANN计算中,单个数字 输入向量可以通过相同的ANN重复传播或由相同的ANN处理。如上面所 述,实现多通处理(multi-pass processing)的ANN可以称为递归神经网络 (recurrent neural network;RNN)。RNN是神经网络,其中在第(k)次通过 神经网络期间网络的输出被再循环回到神经网络的输入并且在第(k+1)次通过期间被用作输入。RNN可以在模式识别任务中具有各种应用,例如语音 或手写识别。一旦产生了第二多个调制器控制信号,方法3300就可以进行 步骤3340至步骤3360,以完成第一数字输入向量第二次通过ANN。通常来 说,根据在ANN计算请求中所接收的RNN的特性,可以针对预定数量的循 环,重复将变换的数字输出再循环为数字输入向量。

在一些实施例中,方法3300进一步包括基于第二多个神经网络权重产 生第二多个权重控制信号的步骤。在一些情况下,人工神经网络计算请求进 一步包括第二多个神经网络权重。如上面所述,通常来说,除了输入层和输 出层之外,ANN还具有一个或多个隐藏层。对于具有两个隐藏层的ANN, 第二多个神经网络权重可对应例如ANN的第一层与ANN的第二层之间的 连接性。为了通过ANN的两个隐藏层处理第一数字输入向量,可以首先根 据方法3300处理第一数字输入向量直到步骤3360,其中在步骤3360通过 ANN的第一隐藏层处理第一数字输入向量的结果储存在存储器单元120中。 接着控制器110重新配置光电矩阵乘法单元3220以执行对应与ANN的第 二隐藏层相关联的第二多个神经网络权重的矩阵乘法。一旦光电矩阵乘法单 元3220被重新配置,方法3300可以基于第一变换数字输出向量产生多个调 制器控制信号,其产生对应第一隐藏层的输出的更新的光学输入向量。接着 更新的光学输入向量由重新配置的光电矩阵乘法单元3220处理,光电矩阵 乘法单元3220对应ANN的第二隐藏层。通常来说,所述的步骤可以重复直 到已经通过ANN的所有隐藏层处理了数字输入向量。

在光电矩阵乘法单元3220的一些实施例中,光电矩阵乘法单元3220的 重新配置速率可明显慢于调制器阵列3208的调制速率。在这种情况下,ANN 计算系统3200的吞吐量可能受到在不能执行ANN计算期间,重新配置光电 矩阵乘法单元3220所花费的时间量的不利影响。为了减轻光电矩阵乘法单 元3220的相对慢的重新配置时间的影响,可以利用批量处理(batch processing)技术,其中两个或更多个数字输入向量传播通过光电矩阵乘法单元3220而没有配置改变,以将重新配置时间分摊(amortize)在更大数量的 数字输入向量上。

参照图39,在一些实施例中,波分复用(WDM)人工神经网络(ANN) 计算系统3500包括光电处理器3510,光电处理器3510包括光电矩阵乘法 单元3520,光电矩阵乘法单元3520具有如图19至图37所示的复制模块、 乘法模块以及求和模块,以能够在执行矩阵计算时处理非相干或低相干光学 信号,其中光学信号以多个波长编码。WDM ANN计算系统3500类似于ANN 计算系统3200,除了其中使用了WDM技术,对于ANN计算系统3500的 一些实施例,光源3230被配置以产生多个波长,例如λ1、λ2以及λ3,类似 于图6的系统104。

多个波长可以优选地通过足够大的波长间隔分开,以允许容易地复用和 解复用到公共传播信道上。例如,大于0.5nm、1.0nm、2.0nm、3.0nm或5.0nm 的波长间隔可以允许简单的复用和解复用。另一方面,多个波长的最短波长 与最长波长之间的范围(“WDM带宽”)可以优选地足够小,使得光电矩阵 乘法单元3520的特性或性能在多个波长上保持基本相同。光学组件通常是 分散的(dispersive),这意味着它们的光学特性随着波长而改变。例如,MZI 的功率分离比可以随着波长而改变。然而,通过将光电矩阵乘法单元3520设 计成具有足够大的操作波长窗口(operating wavelength window),并且通过 将波长限制在操作波长窗口内,由光电矩阵乘法单元3520对应每个波长所 输出的电输出向量可以是由光电矩阵乘法单元3520实现的矩阵乘法的足够 精确的结果。操作波长窗口可以是例如1nm、2nm、3nm、4nm、5nm、10nm 或20nm。

WDM ANN计算系统3500的调制器阵列144包括光学调制器组(banks of opticalmodulators),其被配置以产生多个光学输入向量,光学调制器组中 的每个对应于多个波长之一并且产生具有相应波长的相应光学输入向量。例 如,对于具有长度为32和3个波长(例如:λ1、λ2以及λ3)的光学输入向 量的系统,调制器阵列144可以具有每个组32个调制器的3个组。此外, 调制器阵列144还包括光学复用器,其被配置以将多个光学输入向量组合成 包括多个波长的组合光学输入向量。例如,光学复用器可以将三个不同波长 的三个调制器组的输出组合成光学输入向量的每个元素的单个传播信道(例 如波导)。如此一来,返回上面的示例,组合光学输入向量将具有32个光学 信号,每个信号包括3个波长。

WDM ANN计算系统3500的光电处理组件进一步被配置以解复用多个 波长并且产生多个解复用的输出电信号。参照图40,光电矩阵乘法单元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(图23)或2050(图24))的三个光电检测器组(例 如:光电检测器2012、2016(图23)或2042、2046(图24))。

求和模块1808的三个组接收来自乘法模块3530的输出,并且产生对应 在各种波长的输入向量的总和y。例如,三个求和模块1808_1接收乘法模块 3530_11、3530_12、……、3530_1n的输出,并且产生分别地对应在波长 λ1、λ2以及λ3的输出向量元素y1的总和y1(λ1)、y1(λ2)、y1(λ3),其中 在每个波长下的总和y1等于M11v1+M12v2+…+M1nvn。三个求和模块1808_2接收乘法模块3530_21、3530_22、……、3530_2n的输出,并且产生 分别地对应在波长λ1、λ2以及λ3的输出向量元素y2的总和y2(λ1)、y2(λ2)、 y2(λ3),其中在每个波长下的总和y2等于M21v1+M22v2+…+M2nvn。三 个求和模块1808_m接收乘法模块3530_m1、3530_m2、……、3530_mn的输 出,并且产生分别地对应在波长λ1、λ2以及λ3的输出向量元素ym的总和ym (λ1)、ym(λ2)、ym(λ3),其中在每个波长下的总和ym等于Mm1v1+Mm2v2+ …+Mmnvn

再次参照图39,WDM ANN计算系统3500的ADC单元160包括ADC 组(banks ofADCs),其被配置以转换光电矩阵乘法单元3520的多个解复用 输出电压(demultiplexedoutput voltage)。每个ADC组对应于多个波长之一, 并且产生相应的数字化解复用输出(digitized demultiplexed output)。例如, 例如,ADC 160的组可以耦合到求和模块1808的组。

控制器110可以实现与方法200(图4)相似的方法,但是扩展为支持 多波长操作。例如,方法可包括以下步骤:从ADC单元160得到多个数字 化解复用输出,多个数字化解复用输出形成多个第一数字输出向量,其中多 个第一数字输出向量中的每个对应多个波长之一;对多个第一数字输出向量 中的每个执行非线性变换,以产生多个变换第一数字输出向量;以及在存储 器单元中储存多个变换第一数字输出向量。

在一些情况下,可以专门设计ANN,并且可以具体地形成数字输入向 量,使得可以在不进行解复用的情况下加入乘法模块3530的多波长乘积 (multi-wavelengthproduct)。在这种情况下,乘法模块3530可以是波长非敏 感(wavelength-insensitive)的乘法模块,其不会解复用多波长乘积的多个波 长。如此一来,乘法模块3530的每个光电检测器有效地将光学信号的多个 波长加总到单个光电流中,并且乘法模块3530输出的每个电压对应于对于 多个波长的矩阵元素和向量元素的乘积的总和。求和模块1808(仅需要一个 组)输出多个数字输入向量的矩阵乘法结果的逐元素总和(element-by- elementsum)。

图41示出了用于使用2×2元素矩阵执行向量-矩阵乘法的波分复用的光 电矩阵乘法单元3520的实现的系统配置3500的示例,其中在电域中执行求 和操作。在该示例中,输入向量是并且矩阵是在该示例中,输入向量具有多个波长λ1、λ2以及λ3,并且输入向量的每个 元素在不同的光学信号上编码。两个不同的复制模块1902执行光学复制操 作以在不同的路径(例如:“上”路径和“下”路径)上分离计算。存在四个乘 法模块1904,每个乘法模块1904使用光学幅度调制乘以不同的矩阵元素。 每个乘法模块1904的输出被提供给解复用器和一组光学检测模块3501,光 学检测模块3501将波分复用光学信号转换成与波长λ1、λ2以及λ3相关联 的电流形式的电信号。使用与波长λ1、λ2以及λ3相关联的一组求和模块 3503来组合不同输入向量元素的两个上路径,并且使用与波长λ1、λ2以及 λ3相关联的一组求和模块3503来组合不同输入向量元素的两个下路径,其中求和模块3503在电域中执行求和。因此,对于每个波长,输出向量的每 个元素都在不同的电信号上编码。如图41所示,随着计算的进行,递增地 产生输出向量的每个分量,以对每个波长分别地产生上路径和下路径的以下 结果。

M11v1+M12v2

M21v1+M22v2

可以使用各种光电技术中的任何一种来实现系统配置3500。在一些实施 例中,存在公共基板(例如:半导体(例如硅)),其可以支持集成光学组件 和电子组件。光学路径可以在波导结构中实现,波导结构具有由具有较低光 学指数(optical index)的材料围绕的具有较高光学指数的材料,该波导结构 定义用于传播承载了光学信号的光波的波导。电路径可以由导电材料实现, 用于传播承载了电信号的电流。(在图41中,表示路径的线的厚度用于区分 光学路径(由较粗的线表示)和电路径(由较细的线或虚线表示)。)可以在 公共基板上制造光学装置(例如分离器和光学幅度调制器)以及电装置(例 如光电检测器和运算放大器(op-amp))。可替换地,可以使用具有不同基板 的不同装置来实现系统的不同部分,并且那些装置可以通过通信信道进行通 信。例如,光纤可用于提供通信信道,以在用于实现整个系统的多个装置之 间发送光学信号。那些光学信号可以表示当执行向量-矩阵乘法时所提供的 输入向量的不同子集,和/或当执行向量-矩阵乘法时所计算的中间结果的不 同子集,如下面更详细的描述。

各种替代系统配置或信号处理技术可以与本文所述的不同系统、子系统 和模块的各种实现例一起使用。

在一些实施例中,一些或所有VMM子系统以替代子系统替换可能是有 用的,替代子系统包括使用各种复制模块、乘法模块和/或求和模块的不同实 施例的子系统。例如,VMM子系统可包括此处所描述的光学复制模块和此 处所描述的电求和模块,但是乘法模块可以使用在电域而不是光电域中执行 乘法操作的子系统代替。在此示例中,光学幅度调制器阵列可以由检测器阵 列代替,以将光学信号转换为电信号,后续接着是电子子系统(例如:ASIC、 处理器或SoC)。可选地,如果光学信号布线(optical signal routing)将被用于被配置以检测光学信号的求和模块,则电子子系统可包括例如使用电调制 光源阵列(array of electrically-modulated optical sources)的电光转换。

在一些实施例中,对于用于一些或所有VMM计算的一些或所有光学信 号能够使用单个波长可能是有用的。可替换地,在一些实施例中,为了帮助 减少可能需要的光学输入端口的数量,输入端口可以接收复用光学信号,复 用光学信号具有在不同波长的不同光波上编码的不同值。接着,可以在系统 中的适当位置将那些光波分开,这取决于复制模块、乘法模块和/或求和模块 中的任何一个是否被配置以在多个波长上操作。但是,即使在多波长实施例 中,例如对于在相同VMM子系统中使用的不同光学信号子集,使用相同波 长可能是有用的。

在一些实施例中,累加器可用来实现由各种模块接收的光学信号和电信 号的时域编码,从而减轻对电子电路的需要,以在大量不同功率水平上有效 操作。例如,使用二进制(开(on)-关(off))幅度调制编码的在每个符号 的N个时隙上具有特定占空比的信号,可以在该信号通过累加器(对电信号 的电流或电压进行积分的模拟电子累加器)之后,被转换为每个符号具有N 个幅度水平的信号。因此,如果光学装置(例如:光学幅度调制器中的相位 调制器)能够在符号带宽(symbol bandwidth)B操作,则它们也可以在符号 带宽B/100操作,其中每个符号值使用N=100个时隙。50%的积分幅度具有 50%的占空比(例如:前50个时隙在非零的“开启”水平,接着是50个时隙 在零或接近零的“关闭”水平),而10%的积分幅度具有10%的占空比(例如: 前10个时隙在非零的“开启”水平,接着是90个时隙在零的“关闭”水平)。在 本文所述的示例中,这种累加器可以被定位在VMM子系统内的任何位置的 每个电信号的路径上,其对于每个电信号一致,例如在用于该VMM子系统 中的所有电信号的求和模块之前或者在用于该VMM子系统中的所有电信号 的求和模块之后。VMM子系统还可以被配置使得在保持不同符号的对准的 不同电信号之间不存在显著的相对时间偏移。

参照图42,在一些实施例中,零差检测可用于得到调制信号的相位和幅 度。零差检测器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可用于图1、图6、图19至图38、以及图39至 图41所示的系统中。零差检测器4000提供信号上的增益(gain),并因此提 供更好的信噪比(signal noiseratio)。对于相干系统,零差检测器4000提供 了通过检测结果的极性的揭示信号的相位信息的附加益处。

在图21的示例中,系统1920包括2×2元素矩阵,其中使用两个不同的 相应波长λ1和λ2在两个光学信号上编码两个输入向量元素。可以例如使用两 个光纤将两个光学信号提供给系统1920。例如,对4×4矩阵执行矩阵处理的 系统可以接收四个光纤上承载的四个输入光学信号。虽然对于处理较大矩阵 的系统,可以使用更多光纤来承载的更多输入光学信号,但因为光纤和光电 芯片之间的耦合占用相当大的空间,很难将大量光纤耦合到光电芯片上。

减少将光学信号承载到光电芯片所需的光纤数量的方法是使用波分复 用。可以使用单个光纤复用和传输具有不同波长的多个光学信号。例如,参 照图43,在计算系统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内部,通过解复用器4150解复用波分复用信号,以分 离光学信号4120和光学信号4122。在此示例中,光学信号4120由复制模块 4152复制,以产生发送到矩阵乘法模块4116a和4118a的光学信号的副本。 光学信号4122由复制模块4154复制,以产生发送到矩阵乘法模块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个) 波长的光学信号,以产生由单个光纤传输的波分复用信号,并且光电芯片内 部的解复用器可以解复用波分复用信号,以将具有不同波长的信号分开。这 允许更多的光学信号并行通过光纤传输到光电芯片,增强了光电芯片的数据 处理吞吐量。

在一些示例中,图1的激光单元142包括单个激光器,其提供可以用不 同的光学信号进行调制的光波。在那种情况下,系统的各波导中的光波在激 光的线宽的分辨率内具有彼此大致相同的公共波长。例如,光波可具有彼此 在1nm之内的波长。然而,激光单元142还可包括多个激光器,其能够使用 调制到不同相应光波(例如:每个具有1nm或更小的线宽)上的不同的光学 信号来进行波分复用操作。不同的光波可以具有峰值波长,其通过大于各个 激光器的线宽的波长距离(例如,大于1nm)彼此分离。在一些示例中,波 分复用系统可以使用被调制到具有相距几纳米(例如:3nm或更大)的波长 的光波上的光学信号。然而,如果解复用器具有更好的分辨率,则WDM系 统中不同波长之间的差异也可以小于3nm。

图44示出了图1和图6的OMM单元150的示例的示意图。OMM单 元150可包括输入波导152的阵列以接收光学输入向量;与输入波导152的 阵列光学通信的光学干涉单元154;以及与光学干涉单元154光学通信的输 出波导156的阵列。光学干涉单元154将光学输入向量线性变换成光学信号 的第二阵列。输出波导156的阵列引导由光学干涉单元154所输出的光学信 号的第二阵列。输入波导152的阵列中的至少一个输入波导通过光学干涉单 元154与输出波导156的阵列中的每一个输出波导光学通信。例如,对于长 度为N的光学输入向量,OMM单元150可包括N个输入波导152和N个 输出波导156。

光学干涉单元154可包括多个互连的马赫曾德尔干涉仪(MZI)。图45 和图46示出了互连MZI的示例配置157和158的示意图。MZI可以以各种 方式互连(例如在配置157或158中)以实现通过输入波导152的阵列所接 收的光学输入向量的线性变换。MZI可以使用图2和图7至图16中所示的 示例来实现。

在图7至图16所示的示例中,每个MZI包括两个平衡的臂3904a和 3904b。当移相器(例如,图7的3906和图8至图11、图15、图16的3956) 不对在臂3904a、3904b中传播的光给予光学相移时,在两个平衡的臂3904a、3904b中传播的光在多模干扰耦合器(MMI_1x2)3902b处组合时应相长地 干涉。然而,由于制造公差,两个臂3904a和3904b可以对在臂3904a、3904b 中传播的光给予不同量的光学相移,从而导致从多模干涉耦合器3902b输出 的信号中的误差。可以通过使用校准移相器来补偿这种不准确性。

图47示出了片段式MZI调制器4700的示意图,其包括可以补偿MZI 调制器4700的两个臂之间的不平衡的校准移相器4702a和4702b(统称为 4702)。片段式MZI调制器4700包括输入波导4704、输出波导4706、输入 1×2MMI分离器4708、输出1×2MMI分离器4710、上方臂波导4712a、 下方臂波导4712b和多个电光移相器4714a、4714b、4714c、4714d、4714e、4714f、4714g和4714h(统称为4714)。

在系统操作期间,光从输入波导4704传播到1×2MMI分离器4708, 其产生两个光部分。每个光部分都受到电光移相器4714的影响,然后这两 个光部分在1×2MMI 4710处组合以干涉,使得输出波导4706处的光学强 度将与两个臂4712a和4712b之间的相对相位差相关。例如,调制移相器 4714可以由倒装芯片((flip chip)电路产生的多个开-关电控制信号来驱动。 通过实现不同长度的移相器4714,输出光可以通过几个二进制开-关键控(keying)数字输入来编码多个水平的电信号。

由于制造工艺,上方臂波导4712a和下方臂波导4712b在波导宽度上可 以不同,并且波导宽度变化引起的相位差将沿着两个臂之间的传播方向累积, 从而两个臂4712a、4712b之间的初始相位不平衡可以使MZI的初始操作点 远离相长干涉。另外,多个电光移相器4714在制造中会经历掩模未对准(mask misalignment),这也将引起两个臂4712a、4712b之间的初始相位差。两个校 准移相器4702a、4702b用于消除制造引起的相位不平衡。

例如,可以通过热光相位效应(thermos-optic phase effect,通过加热波 导以改变折射率来操作)或电光效应((electro-optic effect,通过施加电场来 改变载流子分布以影响折射率来操作)来实现校准移相器4702。例如,校准 移相器4702由两个低速DAC独立控制,该两个低速DAC通过倒装芯片或 引线结合(wire bonding)到包含MZI 4700的光子芯片。

例如,提供抽头波导(tap waveguide)以将在输出波导4706处的光信号 的一部分引导到监测光电检测器,该监测光电检测器可以提供指示在输出波 导4706中传播的光的强度的反馈信号。为了校准MZI 4700,用零信号驱动 移相器4714,使得上方臂和下方臂中的光部分的相位之间的任何不平衡是由 于上方臂和下方臂中的波导4712a、4712b之间的差异引起的。基于监测光 电探测器提供的反馈,调整施加到校准移相器4702a、4702b的控制信号,以 使得来自上方臂和下方臂的到达输出1×2MMI分离器4710的光部分具有 相同的相位,并且相长地干涉。

上方臂和下方臂之间的相位差会受到环境温度的影响,环境温度会随着 时间而波动,因此需要定期执行监测光电检测器进行的测量,并定期更新施 加到校准移相器4702的控制信号,例如,每几分之一秒一次、每秒一次、每 10秒一次或每分钟一次。校准移相器4702被配置为能够补偿两个臂中在0 到2π弧度范围内的相位不平衡。因为可以以低频(例如10Hz或更小)更新 对校准移相器4702的控制信号,所以可以使用高精度的多水平(level)DAC 来产生校准移相器4702的控制信号。

参照图48,在一些实施例中,在MZI 4700的下方臂中,电光移相器 4714e、4714f、4714g和4714h分别由驱动器电路3966e、3966f、3966g和 3966h驱动。校准移相器4702b可以由与驱动器电路3966相似的驱动器电 路4716b来驱动。例如,驱动器电路3966e、3966f、3966g、3966h可以由分 别通过高速1比特DAC 4718e、4718f、4718g和4718h提供的控制信号来驱 动。(用于校准移相器4702b的)驱动器电路4716b可以由通过低速多比特 DAC 4720b提供的控制信号来驱动。在上方臂中,电光移相器4714a、4714b、 4714c、4714d和校准移相器4702a可以分别以相似于电光移相器4714e、 4714f、4714g、4714h和校准移相器4702b的方式控制。

如图49所示,在一些实施例中,MZI 4800包括在上方臂中的电光移相 器4714a、4714b、4714c、4714d,以及在上方臂和下方臂两者中的校准移相 器4702a、4702b。在一些示例中,MZI可以在上方臂中具有电光移相器4714a、 4714b、4714c、4714d,在下方臂中具有电光移相器4714e、4714f、4714g、 4714h,并且在上方臂中具有校准移相器4702a,而在下方臂中没有其他校准 移相器。

通常,可以将用于将数字电信号转换为模拟光学信号的电光移相器放置 在MZI的单个臂上,或者放置在MZI的两个臂上。MZI可以包括放置在单 个臂上的单个校准移相器,或包括放置在两个臂上的两个校准移相器,以补 偿两个臂之间的相位不平衡。通常,与将移相器放置在MZI的仅一个臂中相 比,将移相器放置在MZI的两个臂中可以使每个移相器更短,因为每个移相 器仅需给予较小量的光学相移。

例如,使用图8至图16和图47至图49中的片段式设计的调制器可以 用在图1、图6和图39调制器阵列144以及图31至图33的调制器2302中。 如果调制器阵列144使用具有片段式设计的调制器,则第一MC子单元132 被修改,因为其不需要多比特数字-模拟转换器。在这种情况下,第一MC子 单元132包括将来自控制器110的数字输入值转换为施加到调制器的各个片 段的适当电压信号的电路(这可以被认为等同于1比特DAC)。将片段式设 计用于光学调制器的优点在于,通过去除第一MC子单元132中的数字-模 拟转换器,可以针对给定数据速率降低功耗,或者可以针对给定功耗提高数 据速率。使用基于正向偏置的PIN二极管结构的调制器以使用载流子注入来 调制波导片段的折射率的优点是,该调制器与互补金属氧化物半导体 (CMOS)技术兼容。

图50示出了具有图47的片段式设计的光学调制器的调制器阵列5000 的示例。调制器阵列5000执行相似于图1的调制器阵列144的功能。在该 示例中,调制器阵列5000被配置为处理长度为4的数字输入向量,该数字 输入向量包括四个元素,并且每个元素是具有四个比特的数字值。调制器阵 列5000包括具有片段式设计的四个光学调制器5002、5004、5006和5008, 其中每个光学调制器包括四个子调制器或四个移相器。

在该示例中,激光单元142在四个光学波导4704a、4704b、4704c和 4704d上输出四个光信号。波导4704a上的光信号由光学调制器5002根据数 字输入向量的第一4比特值进行调制。波导4704b上的光信号由光学调制器 5004根据数字输入向量的第二4比特值进行调制。波导4704c上的光信号由 光学调制器5006根据数字输入向量的第三4比特值进行调制。波导4704d 上的光信号由光学调制器5008根据数字输入向量的第四4比特值进行调制。

光学调制器5002包括两个1×2端口多模干涉耦合器(MMI_1x2)4708a 和4710a,两个平衡的臂5012a和5012b,以及八个子调制器:上方臂中的 5022a、5022b、5022c、5022d以及下方臂中的5022e、5022f、5022g、5022h。 例如,每个子调制器可以包括移相器。子调制器5022d和5022h接收输入向 量中第一值的LSB(B11)。子调制器5022c和5022g接收输入向量中第一值 的第二比特(B12)。子调制器5022b和5022f接收输入向量中第一值的第三 比特(B13)。子调制器5022a和5022e接收输入向量中第一值的MSB(B14)。 光学调制器5002还包括由多比特DAC驱动的校准移相器5032a和5032b。

子调制器5022d包括第一波导片段,子调制器5022c包括第二波导片段, 子调制器5022b包括第三波导片段,子调制器5022a包括第四波导片段。第 二波导片段的长度约为第一波导片段的两倍,第三波导片段的长度约为第一 波导片段的四倍,第四波导片段的长度约为第一波导片段的八倍。

类似地,子调制器5022h包括第五波导片段,子调制器5022g包括第六 波导片段,子调制器5022f包括第七波导片段,并且子调制器5022e包括第 八波导片段。第六波导片段的长度约为第五波导片段的两倍,第七波导片段 的长度约为第五波导片段的四倍,第八波导片段的长度约为第五波导片段的 八倍。

光学调制器5004包括两个1×2端口多模干涉耦合器(MMI_1x2)4708b 和4710b,两个平衡的臂5014a和5014b,以及八个子调制器:上方臂中的 5024a、5024b、5024c、5024d以及下方臂中的5024e、5024f、5024g、5024h。 例如,每个子调制器可以包括移相器。子调制器5024d和5024h接收输入向 量中第二值的LSB(B21)。子调制器5024c和5024g接收输入向量中第二值 的第二比特(B22)。子调制器5024b和5024f接收输入向量中第二值的第三 比特(B23)。子调制器5024a和5024e接收输入向量中第二值的MSB(B24)。 光学调制器5004还包括由多比特DAC驱动的校准移相器5034a和5034b。

光学调制器5006和5008以类似于光学调制器5002和5004的方式配 置。

光学调制器5002根据数字输入向量中第一值的四个比特调制输入波导 4708a中的光学信号,并产生表示数字输入向量的第一值的模拟光学信号 5042。光学调制器5002将数字输入向量的第一4比特值转换为第一模拟光 学信号。光学调制器5004根据数字输入向量中第二值的四个比特调制输入 波导4708b中的光学信号,并产生表示数字输入向量的第二值的模拟光学信 号5044。光学调制器5004将数字输入向量的第二4比特值转换为第二模拟 光学信号。

光学调制器5006根据数字输入向量中第三值的四个比特调制输入波导 4708c中的光学信号,并产生表示数字输入向量的第三值的模拟光学信号 5046。光学调制器5006将数字输入向量的第三4比特值转换为第三模拟光 学信号。光学调制器5008根据数字输入向量中第四值的四个比特调制输入 波导4708d中的光学信号,并产生表示数字输入向量的第四值的模拟光学信 号5048。光学调制器5008将数字输入向量的第四4比特值转换为第四模拟 光学信号。模拟光学信号5042、5044、5046、5048一起形成模拟光学输入向 量,其可被提供给例如图1的光电矩阵乘法单元150。

本公开所描述的数字控制器(例如:用于控制图38所示的组件)和功 能操作可以在数字电子电路中实现,或者在计算机软件、固件或硬件中实现, 其包括本公开中的结构及其结构等同物,或者其一个或多个的组合。本公开 所描述的主题的实施例可以使用在计算机可读介质上所编码的一个或多个 计算机程序指令模块来实现,以由数据处理设备来执行或控制数据处理设备 的操作。计算机可读介质可以是制造产品(例如计算机系统中的硬盘驱动器 或通过零售管道销售的光盘)或嵌入式系统。计算器可读介质可以分别地获取并随后使用一个或多个计算机程序指令模块进行编码,例如通过有线或无 线网络传送一个或多个计算机程序指令模块。计算机可读介质可以是机器可 读储存装置、机器可读储存基板、存储器装置或它们中的一个或多个的组合。

计算机程序(也称为程序、软件、软件应用、脚本(script)或代码)可 以用任何形式的编程语言编写,包括编译语言(compiled language)或直译语言 (interpretedlanguage)、声明性(declarative)或程序性(procedural)语言,并 且可以以任何形式部署,包括作为独立程序(stand alone program)或作为模 块、组件、子例程或适用于计算环境的其他单元。计算机程序不一定对应于 文件系统中的文件。程序可以储存在保存其他程序或数据(例如:储存在标 记语言文档(markup language document)中的一个或多个脚本)的文件的一 部分中、储存在专用于所讨论的程序的单个文件中、或储存在多个协调文件 (multiple coordinated file)(例如:储存一个或多个模块、子程序或代码部分 的文件)中。计算机程序可被部署为在一个计算机上或在位于一个站点或分 布在多个站点并通过通信网络互连的多个计算机上执行。

本公开中所述的处理和逻辑流程可以由执行一个或多个计算机程序的 一个或多个可编程处理器(programmable processor)执行,以通过对输入数 据进行操作并产生输出来执行功能。处理和逻辑流程也可由专用逻辑电路 (special purpose logiccircuitry)执行,并且设备也可以实现为专用逻辑电路, 专用逻辑电路例如是现场可编程门阵列(field programmable gate array;FPGA) 或专用集成电路(ASIC)。

本说明书中描述的各种系统的一些背景信息在2019年6月4日提交的 美国申请16/431,167中披露,其全部公开内容通过引用并入本文。

虽然已经结合某些实施例描述了本公开,但应理解本公开不限于所公开 的实施例,而是相反地,旨在涵盖包括在所附权利要求范围内的各种修改和 等同布置,权利要求的范围应被赋予最广泛的解释,以包含法律允许的所有 这些修改和等同结构。

122页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:图像处理方法、装置、电子设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!