首页 / 包括多个芯片的系统

包括多个芯片的系统有效专利 实用

技术领域

[0001] 本申请涉及R‑SpiNNaker系统,R‑SpiNNaker系统包括多个R‑SpiNNaker芯片,其中构建了分布式脉冲神经网络(SNN,Spiking Neural Network),以及用于分布式电容测量和物体感知。

相关背景技术

[0002] 曼彻斯特大学的Steve B.Furber教授主持的SpiNNaker项目(参见IEEE‑Journals& Magazines Volume 62,Issue 12,Dec.2013上的“Overview of the SpiNNaker System architecture”)的初衷是试图理解和模拟人类大脑如何表示何处理信息的。
SpiNNaker试图模拟哺乳类动物的大脑行为,并不涉及模拟哺乳类动物感官行为,因此SpiNNaker是一个大规模并行多核纯数字计算系统。它可以包含多达1,036,800个ARM9核和
7Tbytes 的RAM,分布在整个系统的57K节点(芯片)中,每个节点包含18个核,可以模拟10 亿个神经元的行为。
[0003] 图1A是SpiNNaker芯片架构的示意图。
[0004] SpiNNaker的中心思想是所有计算信息都是由AER(地址事件表示方式, AddressEventRepresentation)表示的。AER的基本原理在脑神经科学中得到了很好的证实,即当一个神经元触发脉冲是一个纯粹的异步事件。所有的信息只需包含脉冲产生的时间和发出脉冲的神经元的身份地址。在SpiNNaker系统中,每个节点(芯片)都有自己独立的时钟,接受信息的神经元只需知道接受脉冲的源地址和两个脉冲之间间隔的相对时间即可,因此在AER系统中,当一个神经元发出脉冲时只需传递它的身份地址,而脉冲产生的相对时间间隔信息由接受神经元所在的节点自行计算出来,由于SpiNNaker 需要模拟10亿个神经元,因此需要4个字节32位地址空间。实现SpiNNaker思想的关键是每一个节点(芯片)都设置一个片上路由器,AER信息通讯是通过片上路由器以组播路由的方式实现的。每个片上路由器都有24个路由通道,其中18个用于片内18个核的信息通讯,其余6个用于片间通讯,由于SpiNNaker的目标是用5万7千个18核芯片集群组成百万核级超级计算机来模拟人脑活动,其6个片间路由物理通道采用适用近距离通讯的7线制高速异步链路。节点之间通过交换承载AER信息的数据包来实现,将承载AER信息的数据包称为AER包。
[0005] 基于电容的传感器被广泛应 用。类似于ADC(模拟数字转换器, AnalogDigitalConverter),CDC(电容数字转换器)测量电容值并转换为数字量输出。
[0006] 图1B展示了利用CDC测量电容的电容测量单元的示意图。电容测量单元包括CDC、电容极板与连接线。连接线将电容极板连接到CDC,从而CDC得以向电容极板施加激励或接收响应以测量电容。
[0007] CDC包括激励信号线端口(AEC)与互电容输入信号线端口(ACC)。可选地,CDC 还包括自电容信号线端口(SCA)、主动屏蔽信号线端口(SHD)和/或同步时钟端口(CLK)。 EXC代表激励源,例如方波信号源。
[0008] 在一种工作模式中,被测量的电容(Cm)的两个极板分别与激励信号线端口(AEC) 与互电容输入信号线端口(ACC)相连,构成互电容测量回路。CDC通过其激励信号线端口(AEC)向电容(Cm)的极板施加激励信号,并通过其互电容输入信号线端口(ACC) 采集从电容(Cm)的极板获取的对激励信号的响应,并根据响应测量电容(Cm)的电容值。由于电容(Cm)的两个极板都同CDC相连,将电容(Cm)称为互电容。
[0009] 在又一种工作模式,被测量电容(Cs)的一个极板同自电容信号线端口(SCA)相连,大地作为被测量电容(Cs)的另一个极板,通过CDC的接地端(AGND)构成自电容测量回路。将电容(Cs)称为自电容。CDC通过自电容信号线端口(SCA)向电容(Cs) 施加激励并获得响应以测量其电容值。
[0010] CDC可应用多种电容测量原理。作为举例,对于互电容(Cm),CDC通过其激励信号线端口(AEC)向电容(Cm)充电,通过互电容输入信号线端口(ACC)获取电容 (Cm)充电后的电压值,并接入Σ‑Δ调制器,经低通滤波后输出代表待测量电容(Cm) 的电压值的数字量。作为又一个例子,CDC内部的激励信号源(记为EXC)被动态地连接到自电容信号线端口(SCA),同时切断自电容信号线端口(SCA)到CDC内的例如Δ‑Σ调制器的连接,以向自电容(Cs)充电,以及在接下来的时刻,断开激励信号源(EXC) 到自电容信号线端口(SCA)的连接,并将自电容信号线端口(SCA)同Δ‑Σ调制器导通,以将电容(Cs)的电压值转换为代表其电容值的数字量。
[0011] 在一些情况下,CDC的自电容信号线端口(SCA)被激励信号线端口(AEC)或互电容输入信号线端口(ACC)替代,从而CDC不提供独立的自电容信号线端口(SCA)。为了用激励信号线端口(AEC)或互电容输入信号线端口(ACC)替代自电容信号线端口(SCA),CDC内部被设置开关。在激励信号线端口(AEC)与互电容输入信号线端口(ACC)测量互电容时,将激励信号线端口(AEC)与互电容输入信号线端口(ACC) 同测量自电容的电路断开;而在用激励信号线端口(AEC)或互电容输入信号线端口(ACC) 替代自电容信号线端口(SCA)测量自电容时,将测量自电容的电路(包括激励源EXC) 连接到激励信号线端口(AEC)或互电容输入信号线端口(ACC),以及将激励信号线端口(AEC)与互电容输入信号线端口(ACC)同测量互电容的电路断开。
[0012] 在又一些情况下,CDC包括主动屏蔽信号线端口(SHD)。例如在CDC内部,提供给激励信号线端口(AEC)的激励信号通过跟随器提供给主动屏蔽信号线端口(SHD)。从而主动屏蔽信号线端口(SHD)的输出信号跟随激励信号线端口(AEC)的输出。主动屏蔽信号线端口(SHD)用于耦合屏蔽电极,屏蔽电极邻近、覆盖或包裹连接激励信号线端口(AEC)与电容极板的导线,从而连接激励信号线端口(AEC)与电容极板的导线上传递的信号同主动屏蔽信号线端口(SHD)传输的信号幅度相同且具有更大的驱动能力和更低的内部阻抗。屏蔽电极可以降低连接电容极板的引线产生的寄生电容干扰,避免参考电容值过大,降低电容测量的分辨率。
[0013] 依然作为举例,在CDC内部,主动屏蔽信号线端口(SHD)通过跟随器同自电容信号线端口(SCA)相连,从而主动屏蔽信号线端口(SHD)的输出信号跟随自电容信号线端口(SCA)输出的信号。主动屏蔽信号线端口(SHD)提供的主动屏蔽信号,用于耦合屏蔽电极。屏蔽电极邻近、覆盖或包裹连接自电容信号线端口(SCA)与电容极板的导线,电极和地,或电极与周围导电体之间,从而连接自电容信号线端口(SCA)与电容极板的导线上传递的信号同主动屏蔽信号线端口(SHD)传输的信号幅度相同且具有更大的驱动能力和更低的内部阻抗。屏蔽电极降低连接电容极板的引线及极板周围产生的寄生电容干扰,避免或降低参考电容值过大导致的对电容测量的分辨率的影响。
[0014] 可选地,CDC还包括同步时钟端口(CLK)。一个例子中,同步时钟端口(CLK) 作为输入端口向CDC提供时钟信号。从CDC端口提供的时钟信号用于指示CDC内的开关切换的时序,以通过多个阶段实现对互电容和/或自电容的测量。在又一个例子中,同步时钟端口(CLK)作为CDC的输出端口向外部提供时钟信号。CDC通过向外部输出时钟信号,来同步自身与其他电路的工作时许,例如,使得自身与另一个或多个CDC同时实施测量过程。实用新型内容
[0015] 在诸如电容式机器人电子皮肤、地理电子皮肤、电容层析成像及如电梯按键等多种电器的接触和/或非接触式触感应用中,需要承载了电容测量单元或其部件的节点。除了测量电容,为获得接触和/或非接触的“感知”能力,还需要节点带有计算能力,以综合利用测量的物理量,并得到对外部世界的“感知”结果。为便于工业制造和在物联网场景中部署,还希望所提供的节点便于批量生产和在现场部署。多个节点各自被设置空间的指定位置,对空间表面、附近及内部物质、物体的存在、运动及变化情况进行测量和感知。
[0016] 为了实现上述目的,根据本申请的实施例提供了R‑SpiNNaker芯片。R‑SpiNNaker 芯片是模数混合芯片。在数字部分借鉴了SpiNNaker芯片架构,用以构建适合接触和/或非接触的“感知”的SNN系统。在模拟部分提供了模拟量传感器,并根据测量的模拟量产生用于SNN的神经元的触发脉冲(也简称为“脉冲”)并提供给SNN用于“感知”处理。
[0017] 将R‑SpiNNaker芯片组成的网络系统称为R‑SpiNNaker系统。R‑SpiNNaker系统设计的初衷是为了解决大面积电子皮肤模拟触觉信号的模块化模数转换、传输、和触觉特征信号的计算问题,对于一般电子皮肤如电阻式或压电式只需考虑接触触觉的模拟信号问题,但对于某些电子皮肤如电容式需要同时考虑接触触觉和非接触触觉模拟信号的问题。接触触觉主要实现单点3维力感知和多点协同形状、表面纹理、软硬度感知、而非接触触觉可以实现接近感知、材质感知和结构感知。
[0018] 机器触觉发展远远滞后于机器视觉的一个重要的技术原因是,机器视觉可以用通用的CPU或GPU芯片进行集中式的信号处理,而机器触觉场景中,传感器阵列需要遍布在机器人全身的电子皮肤上,由于大量微弱模拟信号的大量引线和长线传输带来的串扰问题,几乎无法采用通用芯片进行集中式信号处理。
[0019] 最合理的方法是采用专用的触觉芯片就近将模拟信号转换为数字信号并进行分布式的信号处理。与集中式信号处理芯片要求CPU或GPU有强大的计算能力相反,单个触觉芯片内核只需具有有限的计算能力,但具有强大的网络通讯能力,能够将分布在电子皮肤上的多个触觉芯片组成计算能力强大的神经元计算网络。
[0020] 大面积电子皮肤的工业化生产,要求电子皮肤的节点必须实现模块化、标准化和可拼接。大面积电子皮肤是由标准化电子皮肤节点拼接而成的。节点之间的拼接包括物理拼接、模拟信号拼接和数字神经元网络拼接,R‑SpiNNaker系统设计的重点是实现模拟信号和数字神经元网络的动态拼接。R‑SpiNNaker系统所要解决的拼接问题包括芯片间的模拟和数字信号的连接问题。
[0021] R‑SpiNNaker节点需要支持在几个到几十个电容通道上分时测量电容。电容分辨率达到飞法级(ff,femtofarad,1F=1e15 ff),这需要在节点内集成CDC,并使得CDC分时地在多个电容通道上测量电容。还需要解决多通道之间的干扰问题,并降低芯片的面积和成本。
[0022] 人类并不具备非接触触觉的功能,但机器触觉可以具备非接触触觉的功能,电容式触觉传感器的非接触式触觉可以实现以下两种功能:感知外部物体接近、运动和材质的情况,以及感知接触物体内部结构。
[0023] 通过不同空间位置的电场的电容变化,能判断物体接近的速度、材质分类。而基于电容值与电极面积成正比的原理,电容极板面积越大,电容传感器探测的距离就越远。因而需要R‑SpiNNaker节点或R‑SpiNNaker系统能改变电容极板的位置和/或面积,来感知物体相对电容极板的位置变化、运动和/或材质。
[0024] 对物体通过电容层析成像(ECT)进行物体内部结构分析感知。
[0025] 基于感知的结果,还希望执行相应动作。执行也希望是分布式的,一个或多个节点能基于自身的决策并作出相应动作。例如机械手接触到高温或尖锐物体时、或意外接触到人体需要立即缩手避让。
[0026] 为满足上述一种或多种需求,根据本申请的实施例提供了R‑SpiNNaker芯片,以及 R‑SpiNNaker系统。

具体实施方式

[0056] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0057] 图2展示了根据本申请实施例的R‑SpiNNaker芯片架构的示意图。
[0058] 图2展示的R‑SpiNNaker芯片包括计算单元、数字路由器与SNN(脉冲神经网络) 单元。
[0059] 计算单元生成AER包,并提供给数字路由器,继而数据路由器将AER包提供给SNN 中的一个或多个神经元。计算单元是例如CPU核或硬件电路。计算单元根据指定的规则生成AER包,例如,根据采集的外部数据、传感器的测量值、时间、由其他计算生成的结果,生成AER包。可选地,AER包携带了生成该AER包的计算单元或该计算单元所属节点的地址。依然可选地或进一步地,计算单元在指定的时间或根据指定的规则生成 AER包,例如,响应于接收了采集的外部数据而立刻生成AER包,或者由外部数据的累积值的大小超出阈值来触发AER包的生成。
[0060] 可选地,计算单元包括激活函数单元与编码器。激活函数单元实现SNN神经元的激活函数,模拟量的测量值作为激活函数单元的输入,激活函数单元的输出代表SNN神经元输出的脉冲。编码器将脉冲编码为AER包,并提供给数字路由器。
[0061] R‑SpiNNaker芯片还包括点对点端口或网络端口。为了清楚的目的,将连接诸如以太网的共享介质网络的端口称为网络端口,将连接诸如I2C的点对点链路的端口称为点对点端口。在部署中,同使用网络端口相比,使用点对点端口有助于降低R‑SpiNNaker 芯片的成本。后文还会介绍使用点对点端口连接邻近的R‑SpiNNaker节点并形成 R‑SpiNNaker系统的实施方式。可选地,R‑SpiNNaker芯片的数字路由器之间可以采用无线方式(例如,通过5G的DTD(Device‑To‑Device,设备到设备)、蓝牙等)通信。
[0062] R‑SpiNNaker节点的数字路由器通过点对点端口或网络端口同其他R‑SpiNNaker节点交换AER包。数字路由器从计算单元接收AER包,而不向计算单元发送AER包。数字路由器从SNN单元接收AER包,并且也向SNN单元发送AER包。
[0063] 在一种实施方式中,计算单元与数字路由器直接连接,而不经过片上总线,从而进一步降低R‑SpiNNaker芯片的成本。SNN单元也直接与数字路由器连接。数字路由器同点对点端口或网络端口直接连接。可选地,R‑SpiNNaker的计算单元、数字路由器与SNN 单元通过片上总线彼此连接。计算单元与SNN单元同点对点端口或网络端口没有直接连接,而仅通过数字路由器交换数据包来同其他R‑SpiNNaker节点通信。
[0064] 可选地,数字路由器对AER包进行单播、多播或广播。例如,数字路由器根据接收的AER包所携带的地址或接收AER包的来源,确定转发该AER包的目标。AER包转发的目标是一个或多个SNN神经元,和/或点对点端口或网络端口。
[0065] SNN单元包括多个SNN神经元。SNN神经元接收神经脉冲(简称脉冲),并输出脉冲。AER包代表脉冲。SNN神经元收到AER包代表收到脉冲,SNN神经元输出AER 包代表输出脉冲。
SNN神经元从数字路由器接收AER包并向数字路由器输出AER包。 SNN神经元的计算模型属于现有技术,根据本申请的实施例也利用将来可能出现的SNN 神经元模型。例如,SNN单元是CPU核,由CPU核上运行的程序或线程来实施SNN神经元。
[0066] 多个SNN神经元组成SNN(脉冲神经网络)。在本说明书中,同SNN单元相比, SNN具有指定的拓扑结构与有意义的功能,构成SNN各SNN神经元具有指定的参数。 SNN是被创建的。通过配置或编程数字路由器,例如,更新数字路由器的路由表,来创建或调整SNN单元中的SNN。从而SNN单元的SNN神经元在不同时刻可用于构建不同的SNN。SNN单元中也可同时存在多个SNN。
[0067] 对于指定的应用或处理功能,SNN的拓扑结构与SNN神经元数量是已知的。例如,指定的功能是从电容传感器采集的电容值中识别用户手指所接近或触摸的多个按键之一。又例如,指定的功能是检测空间中出现异常的物体。
[0068] SNN中的SNN神经元具有单向的连接关系。SNN中的SNN神经元接收零个、一个或多个SNN神经元发出的AER包,并向一个SNN神经元输出AER包。根据本申请的实施例,SNN的神经元的连接关系,由数字路由器维护的用于AER包的路由表体现。数字路由器的路由表记录了接收的AER包中的地址要被路由到的一个或多个目的SNN神经元,或者点对点端口或网络端口。
[0069] 可选地,SNN包括输入层神经元、中间层神经元与输出层神经元。输入层神经元接收对SNN的输入,输入层神经元的输出提供给中间层神经元。中间层神经元的输出提供给中间层神经元或输出层神经元。输出层神经元的输出作为其所在SNN的输出。可以理解地,根据本申请的实施例,SNN神经元的输入与输出均由数字路由器处理。物理上, SNN神经元的输出是提供给数字路由器的AER包,而数字路由器根据AER包中携带的产生该AER包的SNN神经元的地址确定要将其转发到的目的神经元。而SNN神经元根据其接收的来自一个或多个SNN神经元的AER包,根据自身的参数确定输出AER包的时机。
[0070] 图2展示的R‑SpiNNaker芯片是纯数字芯片,而可以不包括诸如CDC的模拟电路。同模数混合电路相比,纯数字电容制造成本更低,对噪声或干扰的敏感性更低。
[0071] 图3展示了根据本申请又一实施例的R‑SpiNNaker芯片架构的示意图。
[0072] 图3展示的R‑SpiNNaker芯片在图2的实施例的R‑SpiNNaker芯片基础上还集成了 CDC与ADC(模数转换器,AnalogDigitalConverter)。从而单一的R‑SpiNNaker芯片除了具备构建SNN网络并感知的能力,还能采集并测量外部的模拟量。虽然增加了成本,但提高了芯片的集成度,并具有更丰富的功能,还能独立完成模拟信号的测量与感知。
[0073] 参看图3,R‑SpiNNaker芯片的CDC与ADC各自连接计算单元,CDC与ADC各自的输入被提供给计算单元作为输入,计算单元根据CDC和/或ADC输出的测量值生成代表神经脉冲的AER包。
[0074] 图3中,CDC包括激励信号线端口(AEC)与互电容输入信号线端口(ACC)。 R‑SpiNNaker芯片还包括电容端口。激励信号线端口(AEC)与互电容输入信号线端口 (ACC)分别耦合所在R‑SpiNNaker芯片的电容端口。从而CDC通过电容端口测量自电容和/或互电容。ADC用于将诸如电压、电流的模拟信号转换为数字量并提供给计算单元。可选地,R‑SpiNNaker芯片还包括用于为ADC提供模拟信号的端口(未示出)。依然可选地,ADC连接到电容端口以获取模拟信号。
[0075] CDC/ADC随时、周期性地或响应于操作命令而测量电容或模拟信号并输出。而SNN 从测量值出感知被测量对象的特征,例如,识别出手指有意接近了按键而非挎包/衣物等的意外接近。利用现有技术或将来出现的技术,SNN可被训练或配置以提供感知被测量对象的能力。
[0076] 图4A展示了根据本申请实施例的R‑SpiNNaker系统的示意图。
[0077] 图4A中,R‑SpiNNaker系统包括2个如图3展示的R‑SpiNNaker芯片(410与420)。 R‑SpiNNaker芯片410与R‑SpiNNaker芯片420的数字路由器(通过网络端口或点对点端口)相连,并交换AER包。从而R‑SpiNNaker芯片410的SNN单元的SNN神经元发出的AER包(脉冲)可被两个R‑SpiNNaker芯片(410与420)的数字路由器转发给 R‑SpiNNaker芯片420的SNN单元的SNN神经元。从而得以利用两个R‑SpiNNaker芯片的SNN神经元构建SNN。以及由两个R‑SpiNNaker芯片所组成的R‑SpiNNaker芯片中可同时存在多个SNN,这些SNN各自和/或协同感知/处理ADC/CDC所测量的模拟量。
[0078] R‑SpiNNaker芯片的数字路由器中,通过配置路由表将AER包转发给网络端口或点对点端口,以在两个R‑SpiNNaker芯片之间转发AER包。路由表中还记录从网络端口或点对点端口接收的AER包被转发到的目标(例如,指定的一个或多个SNN神经元)。为支持多播或广播,路由表中可记录多个转发目标。
[0079] 图4B展示了根据本申请又一实施例的R‑SpiNNaker系统的示意图。
[0080] 图4B中,R‑SpiNNaker系统包括2个R‑SpiNNaker芯片(430与450)。R‑SpiNNaker 芯片430与R‑SpiNNaker芯片450的数字路由器(通过网络端口或点对点端口)相连,并交换AER包。
[0081] R‑SpiNNaker芯片430与R‑SpiNNaker芯片450各自还包括模拟信号路由器与多个电容端口。电容端口连接R‑SpiNNaker芯片外部的电容极板。模拟信号路由器将电容端口连接到CDC的激励信号线端口(AEC)与互电容输入信号线端口(ACC)。从而CDC 可以使用多个电容端口所连接的电容极板的任意组合测量电容。
[0082] 模拟信号路由器被配置或编程以形成不同的电容通道。电容通道耦合CDC与形成被测量电容的一个或多个电容极板。
[0083] 在图4B的实施例中,R‑SpiNNaker芯片的数字路由器还耦合模拟信号路由器,数字路由器将承载了模拟信号路由器的配置信息或编程信息的数据包转发给模拟信号路由器,模拟信号路由器从数据包中获取配置信息或编程信息,并设置模拟信号路由器的一个或多个开关的断开或闭合,以形成电容通道。从而,数字路由器交换至少2种数据包,AER 包与承载了模拟信号路由器的配置信息或编程信息的数据包。承载了模拟信号路由器的配置信息或编程信息的数据包包括例如指示目的R‑SpiNNaker芯片的地址,使得数字路由器根据该地址转发此类数据包。R‑SpiNNaker芯片430与R‑SpiNNaker芯片450的一个或二者作为配置芯片,来向两个芯片的模拟信号路由器提供承载了模拟信号路由器的配置信息或编程信息的数据包。可选地,通过外部设备向R‑SpiNNaker芯片430与450 提供此类数据包。
[0084] 下文中还将介绍模拟信号路由器的具体实施方式。
[0085] 可选地,R‑SpiNNaker芯片430与R‑SpiNNaker芯片450各自还包括模拟信号端口。图4B中,在R‑SpiNNaker芯片430与R‑SpiNNaker芯片450之间存在虚线连接的端口(432、 
434、452与454)是模拟信号端口。R‑SpiNNaker芯片430与R‑SpiNNaker芯片450的模拟信号端口对应连接,以在R‑SpiNNaker芯片430与R‑SpiNNaker芯片450之间传递模拟信号,从而芯片430的CDC得以利用芯片450的电容极板测量电容,反之,芯片 450的CDC得以利用芯片
430的电容极板测量电容。
[0086] 图4B的实施例中,R‑SpiNNaker芯片430与R‑SpiNNaker芯片450相同。可选地, R‑SpiNNaker系统的各R‑SpiNNaker芯片可以相同或不同。
[0087] 在可选的实施方式中,ADC也连接模拟信号路由器,并从模拟信号路由器获取要测量或转换的模拟信号。
[0088] 图4C展示了根据本申请再一实施例的R‑SpiNNaker系统的示意图。
[0089] 图4C中,R‑SpiNNaker系统包括4个R‑SpiNNaker芯片(460、470、480与490)。 4个R‑SpiNNaker芯片各不相同。
[0090] R‑SpiNNaker系统的各个R‑SpiNNaker芯片各自都包括数字路由器与点对点端口 (462、464、466与468,472、474、476与478,482、484、486与488,492、494、496 与498),以交换AER包。R‑SpiNNaker芯片460的点对点端口464与R‑SpiNNaker芯片470的点对点端口478连接,R‑SpiNNaker芯片460的点对点端口466与R‑SpiNNaker 芯片480的点对点端口482连接,R‑SpiNNaker芯片480的点对点端口484与R‑SpiNNaker 芯片490的点对点端口498连接,R‑SpiNNaker芯片470的点对点端口476与R‑SpiNNaker 芯片490的点对点端口492连接,从而实现R‑SpiNNaker系统的各个R‑SpiNNaker芯片之间实现数字路由器之间任意转发数据包。
[0091] 为了部署R‑SpiNNaker系统以及配置数字路由器的路由表的便利性,R‑SpiNNaker 芯片的点对点端口带有方向属性(例如,东(E)、西(W)、南(S)与北(S))。在路由表中,例如东侧点对点端口的指定点对点端口可作为所配置的转发数据包的目的地址。在部署时,将R‑SpiNNaker系统中的R‑SpiNNaker芯片按行和/或列排列。属于相同行的相邻R‑SpiNNaker芯片通过各自的东向/西向点对点端口彼此连接;属于相同列的相邻R‑SpiNNaker芯片通过各自的南向/北向点对点端口彼此连接。从而,每个R‑SpiNNaker 芯片仅包括4个点对点端口,即可实现R‑SpiNNaker系统的各R‑SpiNNaker芯片的数字路由器之间的任意连通。这也降低了R‑SpiNNaker芯片的成本。点对点端口的成本也显著低于诸如以太网的共享介质的网络端口。
[0092] 虽然图4C的R‑SpiNNaker系统包括4个R‑SpiNNaker芯片。可以理解地,R‑SpiNNaker 系统可包括任意数量的R‑SpiNNaker芯片,从而覆盖不同面积的待检测区域,并提供更多的SNN单元以构建不同规模与不同计算能力的SNN。
[0093] R‑SpiNNaker芯片480可选地包括CDC,以测量并输出测量的电容值。R‑SpiNNaker 芯片480还包括计算单元,以根据其CDC输出的电容值生成AER包提供给数字路由器。
[0094] R‑SpiNNaker芯片460、480与490各自包括模拟信号路由器、电容端口(未示出) 与模拟信号端口(未示出)。模拟信号路由器将在R‑SpiNNaker芯片460、480与490之间形成电容通道,使得R‑SpiNNaker芯片460的CDC得以利用R‑SpiNNaker芯片460、 480与490的任何一个或多个所连接的电容极板测量电容。R‑SpiNNaker芯片460、480 与490的数字路由器向各自节点的模拟信号路由器转发数据包以配置或编程模拟信号路由器。
[0095] R‑SpiNNaker芯片470与490各自包括SNN单元。通过R‑SpiNNaker芯片470与490 的SNN单元构建SNN,以利用例如R‑SpiNNaker芯片480的CDC感知外界物体。
[0096] 可选地,R‑SpiNNaker芯片470是纯数字电路,而不包括模拟信号路由器和/或CDC。从而R‑SpiNNaker芯片470可具有更低的成本。
[0097] 图5A展示了根据本申请实施例的模拟信号路由器的框图。
[0098] 模拟信号路由器用于在CDC与电容极板之间动态建立电容通道,使得CDC可以使用一个或多个电容极板测量电容。CDC所测量的电容可包括例如一个电容电极(自电容) 或2个电容电极(互电容)。模拟信号路由器还使得所测量电容的电容电极由一个或多个电容极板组成。
[0099] 图5A中,CDC包括自电容信号线端口(SCA)。相应地,模拟信号路由器包括例如自电容信号线ASC(511)、多个开关(KAS1‑KAS4,也称为电容端口耦合开关),以及用于连接电容极板的多个电容端口(510、512、514与516)。多个电容端口之间可以是彼此等同的。
[0100] 作为举例,电容端口耦合开关同电容端口一一对应,每个电容端口通过对应的电容端口耦合开关连接到自电容信号线ASC(511)。从而通过闭合电容端口耦合开关(例如,KAS1),同其对应的电容端口(510)被耦合到自电容信号线ASC(511),进而耦合到 CDC的自电容信号线端口(SCA)。可以理解的,电容端口到自电容信号线ASC(511) 可以直接连接或经由一种或多种元件和/或引线间接连接,使用术语“耦合”以表达包括直接连接与间接连接在内的多种连接方式,本申请并非意在限制其实施方式。从而CDC 向其自电容信号线端口(SCA)施加的信号被传递到同电容端口耦合开关(例如,KAS1) 对应的电容端口(例如510),继而作用于同电容端口(510)耦合的电容极板。以及可选地,从电容端口(例如510)接收的信号也通过电容端口耦合开关(例如,KAS1)、继而自电容信号线ASC(511)而传输到CDC的自电容信号线端口(SCA)。可以理解的,电容极板与CDC可以不属于根据本申请实施例的模拟信号路由器的组成部分,而是电容极板被外部地连接到模拟信号路由器电容端口,CDC的一个或多个端口(例如,自电容信号线端口(SCA))被外部地连接到模拟信号路由器(例如,通过CDC耦合开关 KSC)。从而模拟信号路由器适用于多种形状、尺寸和/或材质的电容极板,与多种规格的CDC。
[0101] 继续参看图5A,多个开关(例如,KAS1‑KAS4)同时闭合时,自电容信号线ASC (511)被连接到多个电容端口(510、512、514与516),从而CDC的自电容信号线端口(SCA)提供的激励信号被同时提供给同上述多个电容端口(510、512、514与516) 耦合的电容极板。以此方式,使得电容端口各自耦合的电容极板具有相等的电势,从而将同多个电容端口各自耦合的电容极板拼接形成具有更大面积(或不同形状)的电容极板,作为被测量电容的电极。更大的电容极板有助于测量距离电容极板更远的物体对电容极板所形成电容的影响。以类似的方式,通过闭合不同数量的多个开关,将不同数量的电容端口各自耦合的电容极板拼接,形成不同面积(或不同形状)的电容极板。
[0102] 根据本申请实施例,模拟信号路由器还用于CDC分时测量相同或不同电容端口所连接电容极板所形成的电容。从而单一的CDC同多个电容端口所耦合的电容极板在不同时刻形成了多个相同或不同的电容测量单元。例如,在T1时刻,开关KAS1闭合,而其他开关(KAS2‑KAS4)均断开,CDC同电容端口510所耦合的电容极板形成电容测量单元;而在T2时刻,开关KAS2闭合,而其他开关(KAS1,KAS3,KAS4)均断开,CDC同电容端口512所耦合的电容极板形成电容测量单元。可选地,在连续或不连续的多个时刻,CDC依次同相同或不同的电容极板形成电容测量单元。
[0103] 在一些情况下,CDC通过其自电容信号线端口(SCA)测量自电容。通过将CDC 的自电容信号线端口(SCA)耦合到例如电容端口KAS3与KAS4,CDC测量由电容端口KAS3与KAS4各自所连接的电容极板拼接形成的电容极板,相对于大地的自电容。
[0104] 为了简单的目的,也将模拟信号路由器中的所有开关(KAE1,KAE2,KAE3,KAE4,以及可选的KAEC)称为模拟开关矩阵。
[0105] 在图5A的例子中,CDC包括单一的端口(自电容信号线端口(SCA)),从而模拟信号路由器仅通过单一的自电容信号线ASC(511)来为CDC路由模拟信号。可选地,若CDC包括激励信号线端口(AEC),相应地,模拟信号路由器通过激励信号线来为 CDC路由模拟信号。依然可选地或进一步地,CDC包括互电容输入信号线端口(ACC),相应地,模拟信号路由器通过互电容输入信号线来为CDC路由模拟信号。
[0106] 图5B展示了根据本申请又一实施例的模拟信号路由器的框图。
[0107] 图5B的实施例的模拟信号路由器包括激励信号线(AE)、互电容输入信号线(AC)、可选的自电容信号线(ASC)、多个开关(KAE1‑KAE5,KAC1‑KAC5,KAS1‑KAS5,也称为电容端口耦合开关),以及用于连接电容极板的多个电容端口(510、512、514、 516与518)。在图5B的实施例中,还包括多个CDC耦合开关(KAEC、KACC与可选的KSC)。CDC包括激励信号线端口(AEC)、互电容输入信号线端口(ACC)与可选的自电容信号线端口(SCA)。
[0108] 激励信号线(AE)、互电容输入信号线(AC)与可选的自电容信号线(ASC)的组合被称为连接线组。连接线组中的各连接线(激励信号线(AE)、互电容输入信号线(AC) 与可选的自电容信号线(ASC)同电容端口与CDC有相同的连接方式。连接线组的每根连接线都通过各自的电容端口耦合开关连接到电容端口,以及通过CDC耦合开关连接到 CDC。
[0109] 连接线组的连接线同CDC的端口一对一连接。CDC耦合开关的数量同连接线组的连接线数量相同,也同CDC的端口数量相同,从而每个CDC耦合开关将其对应的连接线组的连接线耦合到CDC的对应端口。例如,激励信号线(AE)通过CDC耦合开关(KAEC) 连接到激励信号线端口(AEC),互电容输入信号线(AC)通过CDC耦合开关KACC 连接到互电容输入信号线端口(ACC),自电容信号线(ASC)通过CDC耦合开关KSC 连接到自电容信号线端口(SCA)。从而连接线组的连接线仅连接到CDC的同其对应的端口,而不被连接到CDC的其他端口。可选地,为了适配具有不同端口配置的CDC,模拟信号路由器的连接线组的连接线数量不少于CDC的端口数量,使得CDC的每个端口得以被连接到连接线组的连接线之一,并且避免CDC的两个或更多端口被连接到相同的连接线。
[0110] 连接线组的每条连接线(激励信号线(AE)、互电容输入信号线(AC)与可选的自电容信号线(ASC))各自通过一组电容端口耦合开关(称为子开关组)同电容端口之一耦合。这些子开关组也构成模拟开关矩阵的一部分。子开关组中的开关的数量同连接线组的连接线数量相同。
[0111] 图5B中,连接线组包括3根连接线,因而每个子开关组包括3个开关。例如,电容端口510通过子开关组(KAE1,KAC1、KAS1)耦合到连接线组(的每根连接线),电容端口512通过子开关组(KAE2,KAC2、KAS2)耦合到连接线组。通过这样的设置,使得每个电容端口能被连接到连接线组的任意连接线,进而使得电容端口可被耦合到 CDC的任何一个端口(AEC、ACC或SCA)。
[0112] 根据本申请的实施例,子开关组的多个开关,任意时刻至多仅一个开关闭合,而子开关组的其他开关均断开,从而使得电容端口在任意时刻至多仅耦合到连接线组的一条连接线。从而各子开关组也避免将连接线组的两条或多条连接线耦合。子开关组的所有开关在某时刻均断开是被允许的。
[0113] 在某一时刻,多个子开关组将其各自对应的电容端口都耦合到连接线组的连接线之一是允许的,以将连接线组的某条连接线同时耦合到多个电容端口。通过将多个电容端口连接到相同的连接线,使得这些电容端口具有相等的电势,以将这些电容端口各自所连接的电容极板组合为一个或整体的电容极板。例如,子开关组(KAE1、KAC1与KAS1 中,将KAC1闭合)将电容端口510耦合到互电容输入信号线AC,子开关组(KAE2、 KAC2、KAS2中将KAC2闭合)将电容端口512耦合到互电容输入信号线AC,从而将互电容输入信号线AC在该时刻耦合到多个电容端口(510与512),进而同时耦合多个电容端口(510与512)各自对应的电容极板。进而扩大耦合到互电容输入信号线AC的电容极板的面积或改变电容极板的形状。
[0114] 根据图5B的实施例的模拟信号路由器,还适配于CDC的不同工作模式。在CDC 工作于测量互电容的模式时,CDC通过其激励信号线端口(AEC)向被测电容施加激励信号,以及通过其互电容输入信号端口(ACC)获取被测电容对激励信号产生的响应。作为举例,被测量互电容的一个极板连接电容端口510,而另一个极板连接电容512。在 CDC工作并通过激励信号线端口(AEC)输出激励信号时,通过闭合CDC耦合开关KAEC,将CDC的激励信号线端口(AEC)连接到连接线组的激励信号线AE,通过闭合开关KAE1 (以及断开开关KAC1与KAS1)将激励信号线AE连接到电容端口510,从而将CDC 的激励信号线端口(AEC)输出的激励信号施加到同电容端口510耦合的电容极板;以及同时闭合开关KACC与开关KAC2,以将电容端口512耦合到CDC的互电容输入信号线端口(ACC),以及断开开关KAE2、KAS2与KSC,从而CDC通过其互电容输入信号线端口(ACC)接收同电容端口512耦合的电容极板对前述激励信号的响应。
[0115] 在CDC工作于测量自电容模式时,CDC通过其自电容信号线端口(SCA)向被测电容施加激励并获取响应。作为举例,被测量自电容的电容极板连接电容端口516。电容端口516所连接的电容极板同大地形成自电容Cs。在CDC工作时,电容端口耦合开关 KAS4闭合(开关KAE4与开关KAC4断开),开关KSC闭合,以将CDC的自电容信号线端口(ASC)连接到自电容信号线ASC,进而连接到耦合电容端口216的电容极板。
[0116] 在进一步可选的工作模式中,CDC通过其自电容信号线端口(SCA)测量自电容的同时,也通过其激励信号线端口(AEC)与互电容输入信号线端口(ACC)测量互电容。例如,在闭合CDC耦合开关KAEC与KACC,以及闭合开关KAE1与KAC2(断开开关 KAC1、KAS1、KAE2与KAS2)的同时,闭合CDC耦合开关KSC与开关KAS4(断开开关KAE4与KAC4),从而同时测量连接到电容端口510与512的电容极板形成的互电容,以及连接到电容端口516的电容极板的自电容。
[0117] 根据本申请的又一种实施方式,CDC仅包括激励信号线端口(AEC)与互电容输入信号线端口(ACC),而不包括自电容信号线端口(SCA),而是由激励信号线端口(AEC) 或互电容输入信号线端口(ACC)替代自电容信号线端口(SCA)的功能。在此情况下,根据本申请实施例的模拟信号路由器的连接线组包括激励信号线(AE)与互电容输入信号线(AC),而可以不包括自电容信号线(ASC)。相应地模拟开关矩阵中也不包括用于连接自电容信号线(ASC)的开关(KAS1‑KAS5,以及KSC)。
[0118] 作为又一个例子,通过对应连接线组的同一条连接线的多个电容端口耦合开关的断开或闭合,调整由CDC和电容极板所形成的电容测量单元的电容极板的面积、位置和/ 或形状。例如,激励信号线(AE)对应的多个电容端口耦合开关(KAE1‑KAE5)被有选择的开闭(形成具有给定面积、位置和/或形状的电容极板),使得CDC的激励信号线端口(AEC)同多个电容端口耦合开关各自耦合的电容极板形成激励通路;互电容输入信号线(AC)对应的多个电容端口耦合开关(KAC1‑KAC5)被有选择的开闭(形成具有给定面积、位置和/或形状的电容极板),使得CDC的互电容输入信号线端口(ACC) 同多个电容端口耦合开关各自耦合的电容极板形成响应通路。从而两个给定面积的电容极板以如此方式与CDC连接,可构成一个完整的互电容测量单元,进行互电容的测量。并且有多种电容极板组合方式,对应多种互电容测量单元。可通过对模拟开关矩阵的分时控制,在不同时刻构建不同的互电容测量单元,并进行分时的互电容测量。进行自电容测量时,通过自电容信号线(ASC)及通过开关KAS1‑KAS5等的不同组合构成不同面积的自电容极板,这些自电容极板则通过自电容信号线(ASC)与CDC耦合开关KSC 的开闭接入CDC,从而形成不同的自电容测量单元,进行自电容测量。可通过对模拟开关矩阵的分时控制,在不同时刻构建不同的自电容测量单元,并进行分时的自电容测量。
[0119] 作为又一个例子,用于圆形触摸按键的电容单元包括组成圆形的4个扇形极板,分别连接电容端口510、512、514与516,而电容单元还包括同极板A,同4个扇形极板相对设置,极板A连接电容端口518。极板A与4个扇形极板的每个形成互电容(记为A1、 A2、A3与A4)。根据本申请实施例的模拟信号路由器,在不同时刻,将CDC连接到4 个互电容(A1、A2、A3与A4)的每个,以测量每个互电容。在又一时刻,开关KAE1‑KAE4 都闭合,以将电容端口510、512、514与516都连接到激励信号线AE,并通过激励信号线形成等势面将4个扇形电极组合为一个整体极板,该组合的4个扇形电极同极板A形成互电容,以及通过CDC测量该互电容。从而,通过模拟信号路由器,实现了由单一的 CDC以及固定的多个电容端口,分时测量多种电容。
[0120] 图5C展示了根据本申请又一实施例的模拟信号路由器的框图。
[0121] 作为又一个例子,CDC还包括同步时钟信号线端口(CLK)与主动屏蔽信号线端口 (SHD),图5C的实施例的模拟信号路由器,同图5B展示的模拟信号路由器相比,其还包括主动屏蔽信号线(ASH)以及同步时钟信号线(ACLK)。
[0122] 可选地,主动屏蔽信号线(ASH)同电容端口耦合的方式同连接线组的其他连接线相同,即通过子开关组的开关耦合,一个电容端口在同一时刻仅耦合到连接线组的一条连接线,而主动屏蔽信号线(ASH)可同时耦合多个电容端口。此时,主动屏蔽信号线 (ASH)成为连接线组的连接线之一。在连接线组包括4条连接线(激励信号线(AE)、互电容输入信号线(AC)、自电容信号线(ASC)与主动屏蔽信号线(ASH))的例子中,每个子开关组包括对应的4个开关。在图5C的例子中,还包括电容端口耦合开关 (KASH1‑KASH4),用于耦合电容端口与主动屏蔽信号线(ASH)。
[0123] 在运行时,若主动屏蔽信号线(ASH)通过电容端口(例如514)连接屏蔽电极(230),而激励信号线(AE)通过电容端口(516)连接电容极板,相应地开关(KASH3)与开关KAE4同时闭合,以在向同电容端口(516)连接的电容极板提供激励信号的同时向屏蔽电极(530)提供主动屏蔽信号。
[0124] 可选地或进一步地,模拟信号路由器还包括主动屏蔽信号端口(560),主动屏蔽信号线(ASH)同主动屏蔽信号端口(560)相连。主动屏蔽信号端口(560)专用于连接主动屏蔽信号线(ASH)而不连接到连接线组的其他连接线。此时,模拟信号路由器的模拟开关矩阵可不包括开关(KASH1‑KASH4)。一些情况下,CDC提供的主动屏蔽信号,同激励信号相比,具有更大的幅度(电压和/或电流),相应地主动屏蔽信号线ASH 和/或主动屏蔽信号端口(560)被适配来传输主动屏蔽信号。由于主动屏蔽信号端口(560) 无需连接到连接线组的其他连接线,因而主动屏蔽信号端口仅通过开关(未示出)连接到主动屏蔽信号线(ASH)或不通过开关而直接连接主动屏蔽信号线(ASH)。在运行时,若主动屏蔽信号线通过主动屏蔽信号端口(560)连接屏蔽电极(532),而激励信号线AE通过电容端口(510)连接电容极板,相应地开关(KAE1)闭合,以在向同电容端口(510)连接的电容极板提供激励信号的同时向屏蔽电极(532)提供主动屏蔽信号。
[0125] 可选地,CDC不提供主动屏蔽信号端口,而由根据本申请实施例的模拟信号路由器生成主动屏蔽信号。为此目的,模拟信号路由器包括连接激励信号线(AE)与主动屏蔽信号线(ASH)的跟随器(图5C中未示出),以将激励信号线从CDC获取的激励信号施加到主动屏蔽信号线(ASH)。依然可选地,在激励信号线(AE)与主动屏蔽信号线 (ASH)之间还设置开关,以断开或闭合二者的连接。
[0126] 可选地,模拟信号路由器还包括同步时钟信号线(ACLK)以及同步时钟端口(562)。同步时钟端口562可选地相同或不同于电容端口。同步时钟信号线(ACLK)不属于连接线组。
同步时钟信号线(ACLK)与同步时钟端口(562)之间包括可选的开关,以断开或闭合二者的连接。同步时钟信号线(ACLK)耦合CDC的同步时钟信号线端口(CLK)。
[0127] 模拟信号路由器的CDC耦合开关还包括开关KSH与开关KCL,分别用于连接主动屏蔽信号线(ASH)与CDC的主动屏蔽信号端口(SHD),以及同步时钟信号线(ACLK) 与CDC的同步时钟信号线端口(CLK)。
[0128] 在一种实施方式中,同步时钟端口(562)接收来自模拟信号路由器外部的同步时钟信号,同步时钟信号线(ACLK)将从同步时钟端口(562)获取的同步时钟信号通过CDC 耦合开关KCL提供给CDC的同步时钟信号线端口(CLK)。同步时钟信号指示了CDC 启动电容测量的时机。可选地,同步时钟信号还指示了CDC测量电容的多个工作阶段。
[0129] 图6A展示了根据本申请又一实施例的模拟信号路由器的框图。
[0130] 在图6A的例子中,电容测量单元包括多个CDC(示出了CDC1与CDC2)。多个 CDC可同时工作,以同时测量多个电容。
[0131] 参看图6A,模拟信号路由器的连接线组包括激励信号线(AE)、互电容输入信号线(AC)以及自电容信号线(ASC)。CDC1与CDC2通过各自的CDC耦合开关同连接线组相连。作为举例,CDC1对应的CDC耦合开关(KAEC1与KACC1)闭合(以及闭合开关KAE1与KAC2),从而CDC1通过电容端口(610与612)测量由同电容端口(610 与612)连接的电容极板所形成的互电容。而在CDC1测量互电容的相同时刻或不同时刻,CDC2对应的CDC耦合开关(KSC2)闭合(以及闭合开关KAS4),从而CDC2通过电容端口(614)测量自电容。
[0132] 在图6A展示的实施例中,连接线组的每根连接线为CDC1与CDC2所共享。从容 CDC1与CDC2不能同时使用相同的连接线以避免冲突。从而,若CDC耦合开关KAEC1 闭合时,开关KAEC2应断开,以避免将连接线AE同时连接到CDC1与CDC2的激励信号线端口(AEC)。CDC1与CDC2分时地共享连接线组的连接线。例如,CDC1在T1 时刻被连接到互电容输入信号线AC,而CDC2在T1时刻则不能连接到互电容输入信号线AC,而是在不同于T1的时刻才能连接到互电容输入信号线AC。
[0133] 根据图6A的实施例,模拟信号路由器通过多组CDC耦合开关(KAEC1、KACC1 与KSC1,以及KAEC2、KACC2与KSC2)连接多个CDC,每组CDC耦合开关用于将连接线组连接到CDC之一。以及多个CDC分时地使用连接线组的相同连接线。而任意时刻,连接线组的一条连接线最多被连接到一个CDC。
[0134] 图6B展示了根据本申请又一实施例的模拟信号路由器的框图。
[0135] 同图6A的实施例相比,图6B的实施例中,模拟信号路由器为多个CDC提供共享的激励信号线AE,而为每个CDC提供其独占的互电容输入信号线(AC1、AC2与AC3)。电容端口各自通过对应的子开关组(KAE1、KAC11、KAC21与KAC31,KAE2、KAC12、 KAC22与KAC32,KAE3、KAC13、KAC23与KAC33,KAE4、KAC14、KAC24与KAC34, KBE1、KBC11、KBC21与KBC31,KBE2、KBC12、KBC22与KBC32,KBE3、KBC13、 KBC23与KBC33,KBE4、KBC14、KBC24与KBC34,KCE1、KCC11、KCC21与KCC31, KCE2、KCC12、KCC22与KCC32,KCE3、KCC13、KCC23与KCC33,KCE4、KCC14、 KCC24与KCC34,
[0136] )连接到激励信号线AE与互电容输入信号线(AC1、AC2与AC3)。
[0137] 在图6B的例子中,电容测量单元包括多个CDC(示出了CDC1、CDC2与CDC3)。多个CDC可同时工作,以同时测量多个电容。CDC1与CDC2各自包括激励信号线端口 (AEC)与互电容输入信号线端口(ACC),CDC3仅包括互电容输入信号线端口(ACC)。作为举例,CDC1与CDC2的激励信号线端口彼此独立,从而CDC1与CDC2可同时输出不同的激励信号。而CDC3没有激励信号线端口,而是借用CDC1或CDC2的激励信号线端口(AEC)。以CDC3借用CDC1的激励信号线端口(AEC)为例,其测量互电容时,通过CDC1的激励信号线端口(AEC)向被测电容提供激励信号,而从CDC3的互电容输入信号线端口(ACC)接收被测电容对激励信号的响应。可选地,各个CDC还测量自电容。CDC1或CDC2测量自电容时,其互电容输入信号线端口(ACC)向被测量电容的极板分时地施加激励并获取响应,所施加的激励由CDC1或CDC2自身的激励信号源产生。CDC3测量自电容时,其互电容输入信号线端口(ACC)向被测量电容的极板分时地施加激励并获取响应,所施加的激励由例如CDC1的激励信号源产生。在各个CDC内部,CDC1的激励信号源被耦合到CDC3。
[0138] 根据图6B的实施例中,模拟信号路由器包括多个CDC耦合开关组(KAEC1与 KACC1,KAEC2与KACC2,以及KACC3),每个CDC耦合开关组对应于CDC之一, CDC耦合开关组用于将其对应的CDC耦合到连接线组。可选地,CDC耦合开关组的开关数量同对应的CDC的端口数量相同。多个CDC分时地使用连接线组的相同连接线。而任意时刻,连接线组的一条连接线最多被连接到一个CDC。
[0139] 为了适配CDC数量的变化,在图6B展示的实施例中,将激励信号线(AE)所在的组称为连接线组,而将互电容输入信号线之一(AC1、AC2或AC3)所在的组称为电容通道连接线组。图6B中,连接线组仅包括激励信号线(AE),每个电容通道连接线组包括互电容输入信号线之一。电容通道连接线组的连接线也通过电容端口耦合开关连接电容端口。相应地,电容端口通过子开关组耦合连接线组与所有电容通道连接线组的每根连接线,从而子开关组的开关数量同连接线组与所有电容通道连接线组的所有连接线数量之和相同,且一一对应。对于一个子开关组,其多个开关,任意时刻至多仅一个开关闭合,而其他开关均断开,从而使得电容端口在任意时刻至多仅耦合到连接线组与所有电容通道连接线组的所有连接线之一。
[0140] 在某一时刻,多个子开关组将其各自对应的电容端口都耦合到连接线组或电容通道连接线组的连接线之一是允许的,以将连接线组或电容通道连接线组的某条连接线同时耦合到多个电容端口。
[0141] 电容通道连接线组同CDC一一对应。从而若需要耦合的CDC数量增加,则只需按 CDC的数量增加电容通道连接线组。而连接线组在模拟信号路由器中仅提供一个。在一个例子中,单一的连接线组通过CDC耦合开关连接到所有的CDC。在另一个例子中,连接线组耦合到CDC之一,而多个CDC内部,共享激励信号源。
[0142] 图6C展示了根据本申请又一实施例的模拟信号路由器的框图。
[0143] 同图6B的实施例相比,图6C的实施例中,连接线组还包括主动屏蔽信号线(ASH) 和/或同步时钟信号线(ACLK)。主动屏蔽信号线(ASH)同激励信号线(AE)对应。主动屏蔽信号线(ASH)通过CDC耦合开关耦合到CDC。可选地,各CDC共享主动屏蔽信号线(ASH),从而主动屏蔽信号线(ASH)通过一个CDC耦合开关耦合到CDC 之一。
[0144] 可选地,同步时钟信号线(ACLK)不属于连接线组的连接线。依然可选地,各CDC 共享同步时钟信号线(ACLK)
[0145] 图6C的实施例中,各子开关组中还包括用于将主动屏蔽信号线(ASH)连接到同子开关组对应的电容端口的开关(KASH1、KASH2……KCSH4)。模拟信号路由器还包括 CDC耦合开关KCL用于将同步时钟信号线(ACLK)连接到CDC的同步时钟信号线端口(CLK)。
[0146] 在图6C的例子中,连接线组由所有CDC共享,而电容通道连接线组同CDC一一对应。为适配CDC的增加,以同CDC相同数量增加电容通道连接线组,增加CDC耦合开关组,用于连接新增的电容通道连接线组与新增的CDC,以及为每个子开关组增加电容端口耦合开关,用于将其所在子开关组对应的电容端口耦合到该新增的电容通道连接线组。
[0147] 根据本申请的实施例的模拟信号路由器,通过模拟开关矩阵的开关的断开或闭合,形成了不同的通路,CDC通过这些通路得以测量耦合到不同通路的不同电容。将模拟信号路由器形成的用于为CDC测量电容用的通路称为电容通道。电容通道用于耦合CDC 与电容极板,使得CDC测量由电容极板所形成的电容。电容通道是动态,随着开关断开或闭合状态的改变,电容通道可被改变。电容通道是同时间关联的,随时间的改变,电容通道被创建、改变或释放。
[0148] 根据本申请的实施例,一般地,电容通道是在指定时刻、由模拟开关矩阵将连接线组耦合到至少一个电容端口与电容数字转换器所形成的通路。电容通道包括由连接线组的一个或多个连接线、一个或多个电容端口与模拟开关矩阵的具有指定状态的一个或多个开关所形成的电信号的通路。通常情况下,对于单一CDC,在同一时刻,模拟信号路由器仅向该CDC提供单一的电容通道,使得该CDC通过该单一的电容通道测量电容。以及随着电容测量完成或时间改变,改变模拟信号路由器的开关状态,以向该CDC提供另一电容通道,使得该CDC通过该另一电容通道测量电容。
[0149] 电容通道具有模拟信号路由器提供的指定资源,包括连接线组/电容通道连接线组的一个或多个连接线、一个或多个电容端口与模拟开关矩阵的具有指定状态的一个或多个开关。在相同时刻,资源为电容通道所独占。在不同时刻,各电容通道可共享资源。
[0150] 对于多个CDC,在同一时刻,模拟信号路由器可向各CDC提供各自的电容通道。为每个CDC提供的电容通道所具有的资源彼此不同,以避免电容通道中间的干扰。
[0151] 电容通道包括自电容通道与互电容通道。CDC通过自电容通道测量自电容,而通过互电容通道测量互电容。
[0152] 图7A展示了根据本申请实施例的电容通道的示意图。
[0153] 图7A中,加粗线条指示互电容通道,用于测量互电容A1;虚线线条指示自电容通道,用于测量互电容Cs。图7A中,互电容通道包括的资源包括激励信号线(AE)、互电容输入信号线(AC)、电容端口(710与712)、开关KAE1、KAC2、KAEC与KACC。
[0154] 在用于测量互电容A1的电容通道中,通过设置模拟信号路由器的多个开关的状态,使得CDC的激励信号线端口(AEC)通过开关KAEC与激励信号线(AE)相连,CDC 的互电容输入信号线端口(ACC)通过开关KACC与互电容输入信号线(AC)相连,电容端口(710)通过开关KAE1与激励信号线(AE)相连,电容端口(712)通过开关 KAC2与互电容输入信号线(AC)相连。同电容端口(710)与电容端口(712)各自连接的电容极板形成互电容A1。进行互电容测量时,开关KAE1、KAC2、KAEC与KACC 闭合,模拟信号路由器的模拟开关矩阵的其余开关保持断开状态,从而CDC的激励信号线端口(AEC)、互电容A1和互电容输入信号线端口(ACC)及相应的连接线构成了用于测量互电容A1的通路,CDC测量该通路上的互电容A1。
[0155] 图7A中,自电容通道的资源包括自电容信号线(ASC)、电容端口(720与722,分别耦合电容极板A3与A4)、开关KAS3、KAS4与KSC。在图7A的例子中,CDC 的自电容信号线端口(ASC)通过开关KSC与自电容信号线(ASC),电容极板A3通过开关KAS3与自电容信号线(ASC)相连,电容极板A4通过开关KAS4与自电容信号线(ASC)相连。电容极板A3和A4构成自电容Cs的极板。进行自电容测量时,开关 KAS3、KAS4与KSC闭合,模拟开关矩阵的其他开关断开,电容极板A3和A4电势相等,从而电容极板A3与A4组合形成了被测量的自电容Cs的一个极板。大地作为自电容Cs的另一个极板。自电容Cs、自电容信号线(ASC)、大地及其间的连接线构成了用于测量自电容Cs的通路,CDC测量该通路上的自电容Cs。
[0156] 进一步地,通过闭合连接自电容信号线(ASC)与其他电容端口的开关(例如,KAS1、 KAS2……),形成了进一步的电容通道,其将用于测量自电容的电容极板连接到更多的电容端口,从而该自电容的电容极板可具有更大的面积以及不同的形状。从而,根据本申请的实施例,通过配置模拟信号路由器的开关的断开或闭合形成了不同的电容通道,使得在不改变部署的硬件的情况下,CDC得以通过不同的电容通道测量不同的电容。
[0157] 图7B展示了根据本申请又一实施例的电容通道的示意图。
[0158] 图7B的例子展示了同时存在的两个电容通道,其一为互电容通道(由加粗线条指示),其二为自电容通道(由虚线线条指示)。CDC1通过互电容通道测量互电容Cm,CDC2 通过自电容通道测量自电容Cs。可选地,CDC1与CDC2同时或分时实施各自的电容测量。
[0159] 互电容通道中,开关KAE1、KAC2和对应CDC1的开关KAEC、KACC闭合,使得激励信号线(AE)、互电容输入信号线(AC)、电容端口(730、732)以及开关(KAE1、 KAC2、KAEC与KACC)形成了互电容通道。
[0160] 自电容通道中,开关KBS3、KBS4和对应CDC2的开关KSC2闭合,使得自电容信号线(ASC)、电容端口(740与742)以及开关(KBS3、KBS4与KSC2)形成了自电容通道。其中开关KBS3、KBS4同时闭合是为了扩大自电容的电容极板的面积。
[0161] 模拟开关矩阵中,除了开关KAE1、KAC2、KAEC、KACC、KBS3、KBS4与KSC2,其他开关均保持断开。
[0162] 从而,通过模拟信号路由器形成同时存在的多个电容通道,使得多个CDC通过各自的电容通道同时并行进行多个电容的测量。
[0163] 在可选的实施例中,CDC1与CDC2内部共享激励信号源,以及CDC2利用CDC1 的激励信号线端口(AEC)。在此情况下,CDC1与CDC2不能同时工作。相应地,图 4C中。模拟信号路由器提供的互电容通道与自电容通道也不能同时工作,而是分时的工作。例如,T1时刻,CDC1通过互电容通道测量互电容Cm,而在之后或不同的T2时刻, CDC2通过自电容通道测量自电容Cs。
[0164] 图8A展示了根据本申请又一实施例的模拟信号路由器的框图。
[0165] 同图7A所展示的模拟信号路由器相比,图8A的模拟信号路由器还包括模拟路由控制器。模拟路由控制器耦合模拟信号路由器的模拟开关矩阵的一个或多个开关,并控制该一个或多个开关的断开或闭合。通过设置模拟路由控制器,有助于在工作现场,改变模拟信号路由器所提供的电容通道。可以理解地,模拟路由控制器不是必须的。模拟开关矩阵的开关的断开或闭合,可由现有技术的方式在模拟路由器的生产线上和/或工作现场被设置。而模拟路由控制器接管了对模拟开关矩阵的开关的控制,并可建立更高的描述层级,例如将控制对象抽象为电容通道而非开关。从而外部例如指示模拟路由控制器创建、释放指定的电容通道,而外部不必关系构建电容通道所需的各个开关的状态。
[0166] 作为举例,图8A的模拟路由控制器中记录模拟信号路由器的模拟开关矩阵的所有开关的状态,模拟路由控制器与模拟开关矩阵的每个开关的控制端连接,开关的控制端根据收到的来自模拟路由控制器的控制信号,确定其开关的动作和/或状态。模拟路由控制器还接收外部的配置信息,以改变其所记录的模拟开关矩阵的一个或多个开关的状态。以及配置信息还指示模拟路由控制器将所记录的一个或多个开关的状态应用于一个或多个开关的控制端的时机。
[0167] 依然作为举例。模拟路由控制器被诸如CPU的内部组件或外部组件操作,作为模拟信号路由器的控制接口。CPU或CPU所访问的程序存储器可被编程,从而设置CPU操作模拟信号路由器的方式。通过操作或配置模拟路由控制器,内部或外部组件控制模拟信号路由器形成电容通道。
[0168] 作为又一个例子,模拟路由控制器包括存储器。通过对存储器编程来设置存储器所记录的模拟开关矩阵的一个或多个开关的状态,或者在不同时间模拟开关矩阵的一个或多个开关的状态。
[0169] 图8A展示的例子中,模拟路由控制器包括矩阵控制寄存器组、顺序状态控制器以及选择器。
[0170] 矩阵控制寄存器组包括多个寄存器,矩阵控制寄存器组的寄存器包括多个比特,每个比特对应模拟开关矩阵的开关之一的状态信息。在一个例子中,矩阵控制寄存器组的寄存器的比特数同模拟开关矩阵的开关数相同,从而寄存器的各比特同模拟开关矩阵的开关一一对应。在又一个例子中,矩阵控制寄存器组的寄存器的比特数小于模拟开关矩阵的开关数,例如寄存器为32比特寄存器。从而矩阵控制寄存器组的多个寄存器共同存储模拟开关矩阵的所有开关的状态信息。
[0171] 矩阵控制寄存器组中记录了用于例如多种电容通道的模拟开关矩阵的开关的状态信息。例如,矩阵控制寄存器组的每个寄存器对应于构建电容通道之一所需的模拟开关矩阵的开关的状态信息。在又一个例子中,矩阵控制寄存器组的多个(而非全部)寄存器对应于构建电容通道之一所需的模拟开关矩阵的开关的状态信息。顺序状态控制器先后选择构建某电容通道所需的多个寄存器,用这些寄存器各比特的值设置模拟开关矩阵中的多个开关的状态。
[0172] 顺序状态控制器是序列生成器、状态机或微处理器,其输出同输入对应的指定值或指定的值序列。顺序状态控制器输出的值用于指示选择矩阵控制寄存器组中的寄存器之一。可选地,矩阵控制寄存器组同选择器耦合,选择器根据顺序状态控制器的输出选择矩阵控制寄存器组的寄存器之一作为输出,并提供给模拟开关矩阵的多个开关。
[0173] 在一个例子中,矩阵控制寄存器组的寄存器的比特数同模拟开关矩阵的开关数相同,相应地,为创建一个电容通道,顺序状态控制器选择矩阵控制寄存器组的单一寄存器来设置模拟开关矩阵的每个开关的状态。在又一个例子中,矩阵控制寄存器组的寄存器的比特数小于模拟开关矩阵的开关数,相应地,为创建一个电容通道,顺序状态控制器通过多个值组成的序列选择矩阵控制寄存器组的多个寄存器来设置模拟开关矩阵的多个开关的状态。
[0174] 选择器将当前被选择的矩阵控制寄存器组的寄存器的各比特输出给模拟开关矩阵对应开关的控制端口,以控制对应开关的断开或闭合。
[0175] 矩阵控制寄存器组可被配置,以向其写入用于控制模拟开关矩阵的开关的控制信息。例如,由外部的配置端口或处理器更新矩阵控制寄存器组的寄存器的值。
[0176] 图8B展示了根据本申请又一实施例的模拟信号路由器的框图。
[0177] 图8B展示的例子中,模拟路由控制器包括寄存器810。寄存器810的比特数同模拟开关矩阵的开关数例如相同,寄存器810的比特同模拟路由控制器的模拟开关矩阵的开关一一对应,以及模拟路由控制器的寄存器810的每个比特耦合到模拟路由控制器的模拟开关矩阵的开关之一,寄存器810的比特用于控制对应开关的断开或闭合。例如,模拟开关矩阵有128个开关,相应地模拟路由控制器的寄存器810的宽度为128位。
[0178] 根据图8B的实施例,模拟路由控制器的寄存器810的值,对应了模拟信号路由器在某时刻提供的一个或多个电容通道。当寄存器810的值对应多个电容通道时,这些电容通道同时存在。响应于模拟路由控制器的寄存器810的值的更新,模拟信号路由器的模拟开关矩阵的一个或多个开关(对应发生改变的寄存器的比特)被重新设置工作状态,相应地,模拟信号路由器所提供的电容通道也发生变化。
[0179] 在可选的实施方式中,图8B的模拟路由控制器的寄存器810对应多个总线地址。例如寄存器宽度为128比特,对应32位总线的4个地址(例如,A0~A3),通过每个总线地址访问该寄存器的32比特。同样耦合到总线的诸如CPU的外部组件通过访问总线地址(A0~A3)设置寄存器,以在运行时更新模拟信号路由器所提供的电容通道。
[0180] 图8B展示的例子中,模拟路由控制器还包括矩阵控制寄存器组820与选择器。
[0181] 选择器根据诸如CPU的外部组件的指示,选择矩阵控制寄存器组820之一作为输出,用被选择的输出设置寄存器810。选择器选择输出的寄存器的各比特分别耦合到模拟信号路由器的模拟开关矩阵的开关之一,用来控制对应开关的断开或闭合状态。
[0182] 在一些情况下,总线的宽度(诸如32位)远小于模拟开关矩阵的开关数量。通过设置矩阵控制寄存器组,使得诸如CPU的外部组件能通过单一次的总线访问来输出用于设置模拟开关矩阵所需的所有状态信息,从而同时设置模拟开关矩阵的所有开关。
[0183] 可选地,为模拟开关矩阵的各开关的控制端口提供总线地址,使得外部组件得以用访问总线的方式直接设置模拟开关矩阵的开关。虽然每次设置的开关数量小等于总线宽度,但通过多个总线周期完成对模拟开关矩阵的所有开关的状态更新。以及一些情况下,相邻两次电容测量中,仅模拟开关矩阵的部分开关的状态发生变化,从而仅需更新这些开关的状态。
[0184] R‑SpiNNaker系统包括多个节点,可在更大范围内部署。通过测量可能存在于空间任何位置的(多个)电容,进而感知空间中的物体特征。R‑SpiNNaker系统包括分布于不同位置的多个R‑SpiNNaker芯片。各R‑SpiNNaker芯片包括一个或多个CDC,并连接一个或多个电容极板。CDC与电容极板被动态组合成电容测量单元。除了能改变电容极板的面积,以适配不同距离、形状、材质的待检测目标,还得以在空间/时间上协同位于不同位置的多个电容极板,以获得对待检测目标的空间/时间的诸如区分/跟踪的感知。
[0185] 图9展示了根据本申请实施例的R‑SpiNNaker系统。
[0186] 参看图9,R‑SpiNNaker系统包括两个R‑SpiNNaker芯片(900与950)。两个 R‑SpiNNaker芯片具有例如相同的配置。R‑SpiNNaker系统的各芯片具有相同的配置,有利于R‑SpiNNaker芯片大规模生产与部署。可选地,R‑SpiNNaker系统的各R‑SpiNNaker 芯片具有不同的配置,例如一些节点包括CDC,而一些节点不包括CDC,以进一步降低成本。
[0187] 两个R‑SpiNNaker芯片(900与950)各自包括模拟信号路由器(910与960)与CDC (CDC1与CDC2)。模拟信号路由器910连接CDC1,而模拟信号路由器960连接CDC2。作为举例,CDC包括共享的端口(ACC/SCA),端口(ACC/SCA)既作为互电容输入信号线端口(ACC),也可用作自电容信号线端口(SCA)。
[0188] 模拟信号路由器(例如,910或960)包括互电容输入信号线AC、跨芯片互电容输入信号线IAC,多个开关(KIACE、KIACW、KIACS与KIACN,也称为模拟信号端口耦合开关)。将模拟信号路由器的多个开关的组合称为模拟开关矩阵。互电容输入信号线AC与跨芯片互电容输入信号线IAC是对应的,并且彼此连接。互电容输入信号线AC 连接CDC的端口(ACC/SCA)。跨芯片互电容输入信号线IAC通过开关(KIACE、KIACW、 KIACS与KIACN)分别耦合到R‑SpiNNaker芯片的模拟信号端口(IACE、IACW、IACS 与IACN)。开关(KIACE、KIACW、KIACS与KIACN)同模拟信号端口(IACE、IACW、 IACS与IACN)一一对应,从而将跨芯片互电容输入信号线IAC耦合到一个或多个模拟信号端口,以及模拟信号端口(例如IACW912)仅能通过与其对应的开关(KIACW)连接到跨芯片互电容输入信号线IAC。
[0189] 作为一个例子,模拟信号路由器910的四个模拟信号端口(IACE、IACW、IACS与 IACN)都是用于跨芯片互电容输入信号线IAC的模拟信号端口,分别位于模拟信号路由器所属的芯片(节点所在的芯片)的东(E)西(W)南(S)北(N)四个方向,以便于在将芯片部署或安装在电路板等平面上时,向芯片外部东西南北各方向引出引线。图 9中,虽然出于绘图的简便目的,和/或平面拓扑的限制,示出了开关KIACS直接连接到互电容输入信号线AC,在可选的实施例中,互电容输入信号线AC不直接连接开关KIACS,而是将跨芯片互电容输入信号线IAC通过芯片的另一布线层延申到芯片的另一端(南端),并连接开关KIACS。可选地,互电容输入信号线AC直接连接开关KIACS。可以理解的,模拟信号端口(IACW(912)、IACN(914)、IACE与IACS(916))也是R‑SpiNNaker 芯片900的模拟信号端口。
[0190] 模拟信号端口与跨芯片连接线被适配来连接到芯片外部,并进一步连接另一颗容纳了包括根据本申请实施例的模拟信号路由器(例如960)的节点的芯片,从而模拟信号端口与跨芯片连接线的电特性同互电容输入信号线AC可以不同。可选地,模拟信号端口也用于连接电容极板。
[0191] 在图9的例子中,模拟信号路由器910的模拟信号端口IACW(912)连接电容极板,该电容极板相对于大地形成自电容(Cs1)。CDC1通过模拟信号路由器910的互电容输入信号线AC、跨芯片互电容输入信号线IAC、开关KIACW向连接模拟信号端口IACW (612)的电容极板施加激励并测量其自电容。模拟信号端口(IACS)(916)通过引线915连接模拟信号路由器920的模拟信号端口(IACN)(974)。
[0192] R‑SpiNNaker芯片900包括四个点对点端口(942、944、946与948),分别位于模拟信号路由器所属的芯片(节点所在的芯片)的东(E)西(W)南(S)北(N)四个方向,以便于在将芯片部署或安装在电路板等平面上时,向芯片外部东西南北各方向引出引线,以连接其他R‑SpiNNaker芯片的点对点端口与数字路由器。数字路由器将接收的配置或编程数据包转发给模拟信号路由器。例如,模拟信号路由器的模拟路由控制器接收配置或编程数据包,从中获取对模拟开关矩阵的配置或编程信息。在图9的例子中, R‑SpiNNaker芯片900的点对点端口946同R‑SpiNNaker芯片950的点对点端口992连接,从而R‑SpiNNaker芯片900的数字路由器通过点对点端口946与点对点端口992同 R‑SpiNNaker芯片950的数字路由器交换数据包,其中所交换的数据包包括配置或编程数据包和/或AER包。
[0193] 模拟信号路由器960连接CDC2。模拟信号路由器960还包括模拟信号端口(IACW (972)、IACN(974)、IACE与IACS(976))。模拟信号路由器960的模拟信号端口IACW(972)连接电容极板,该电容极板相对于大地形成自电容(Cs2)。可以理解的,模拟信号端口(IACW(972)、IACN(974)、IACE与IACS(976))也是R‑SpiNNaker 芯片950的模拟信号端口。
[0194] 根据本申请的实施例,模拟信号路由器可以910与960协同工作,以使得CDC1得以使用连接到R‑SpiNNaker芯片(900与950)的任何一个的电容极板测量电容。类似地, CDC2也能使用连接到R‑SpiNNaker芯片(900与950)的任何一个的电容极板测量电容。作为举例,闭合模拟信号路由器910的开关KIACS、模拟信号路由器960的开关KIACN 与KIACW,从而CDC1的端口(ACC/SCA)通过模拟信号路由器910的互电容输入信号线AC、跨芯片互电容输入信号线IAC(图9中未示出互电容输入信号线AC与跨芯片互电容输入信号线IAC在模拟信号路由器910在南侧的连接)、开关KIACS与模拟信号端口IACS(916),经由引线915,进而通过模拟信号路由器960的模拟信号端口IACN (974)、开关KIACN、跨芯片互电容输入信号线IAC、开关KIACW以及模拟信号端口 IACW(972)连接到电容极板(以及断开其他开关),从而CDC1得以测量与其不属于同一节点的电容极板所形成的自电容Cs2。
[0195] 作为又一个例子,闭合模拟信号路由器960的开关KIACN、模拟信号路由器910的开关KIACS与KIACW,从而CDC2的端口(ACC/SCA)通过模拟信号路由器970的互电容输入信号线AC、跨芯片互电容输入信号线IAC、开关KIACN与模拟信号端口IACN (974),经由引线915,进而通过模拟信号路由器910的模拟信号端口IACS(916)、开关KIACS、跨芯片互电容输入信号线IAC(图9中未示出同开关KIACS连接的跨芯片互电容输入信号线IAC)、开关KIACW以及模拟信号端口IACW(912)连接到电容极板(以及断开其他开关),从而CDC2得以测量自电容Cs1。
[0196] R‑SpiNNaker芯片(900与950)或其模拟信号路由器(910与960)还包括一个或多个电容端口(934、984)。电容端口用于连接R‑SpiNNaker芯片的电容极板。R‑SpiNNaker 芯片的模拟信号路由器(910与960)还包括同电容端口一一对应的电容端口耦合开关 (KAC1、KAC2、KAC3与KAC4)。电容端口耦合开关用于将其对应的电容端口连接到互电容输入信号线(AC),或断开电容端口到互电容输入信号线(AC)的连接。通过多个电容端口耦合开关同时闭合,将互电容输入信号线(AC)同时连接到多个电容端口,进而连接同这些电容端口连接的电容极板。模拟信号路由器(例如910或960)还包括 CDC耦合开关(KACC),用于控制互电容输入信号线(AC)同CDC端口(ACC/SCA) 的连通或断开。将节点的CDC同模拟信号路由器断开,以降低CDC所产生的干扰,有利于该节点的模拟信号路由器为其他节点提供信号。
[0197] 通过模拟信号路由器910和/或模拟信号路由器960,可配置地将CDC1/CDC2耦合到两个R‑SpiNNaker芯片各自的电容极板的一个或多个,并测量这些电容极板对地的自电容。R‑SpiNNaker芯片的电容极板包括通过电容端口连接的电容极板,和/或通过模拟信号端口连接的电容极板。
[0198] 图10展示了根据本申请又一实施例的R‑SpiNNaker系统。
[0199] 图10的例子中,构成R‑SpiNNaker系统的两个R‑SpiNNaker芯片各自包括模拟信号路由器(1010与1050)、CDC(CDC1与CDC2)。模拟信号路由器1010连接CDC1,而模拟信号路由器1050连接CDC2。CDC(CDC1与CDC2)包括激励信号线端口(AEC),与互电容输入信号线端口(ACC)。CDC通过激励信号线端口(AEC),与互电容输入信号线端口(ACC)测量互电容,而通过其端口之一测量自电容。
[0200] 同图9展示的R‑SpiNNaker芯片相比,图10中,R‑SpiNNaker芯片的模拟信号路由器(例如1010)还包括激励信号线(AE)以及连接激励信号线(AE)的跨芯片激励信号线(IAE)、电容端口耦合开关(KAE1‑KAE4)以及相应的电容端口、模拟信号端口 (IAEE、IAEW、IAES、IAEN)以及CDC耦合开关(KAEC)。模拟信号路由器(例如 1010)还包括可选地同步时钟信号线端口(CLK)、CDC耦合开关(KCL)、同步时钟信号线(ACLK)、开关(KCLK)以及同步时钟端口ICLK。
[0201] 跨芯片激励信号线(IAE)通过开关(KIAEE、KIAEW、KIAES、KIAEN)分别同对应的模拟信号端口(IAEE、IAEW、IAES、IAEN)耦合。开关(KIAEE、KIAEW、KIAES、KIAEN)同模拟信号端口(IAEE、IAEW、IAES、IAEN)一一对应。虽然图10 中示出激励信号线(AE)通过开关连接模拟信号端口(IAES),可以理解的,在可选的实施例中,激励信号线AE不直接通过连接模拟信号端口(IAES),而是通过跨芯片激励信号线IAE经由开关再连接模拟信号端口(IAES)。
[0202] 电容端口耦合开关(KAE1‑KAE4)同电容端口一一对应。电容端口耦合开关 (KAE1‑KAE4)用于将相应的电容端口连接到激励信号线(AE)。CDC耦合开关(KAEC) 将激励信号线AE连接到CDC的激励信号线端口(AEC)。
[0203] 激励信号线AE与互电容输入信号线AC的组合被称为连接线组。跨芯片激励信号线 IAE与跨芯片互电容输入信号线IAC的组合被称为跨芯片连接线组。
[0204] 将同一电容端口分别连接到连接线组的各连接线的多个(例如两个)电容端口耦合开关(例如,KAE1与KAC1、KAE2与KAC2)被称为子开关组。在同一时刻,子开关组的多个(两个)开关,最多仅一个闭合,从而电容端口在任意时刻至多被连接到连接线组的一条连接线。以及通过子开关组的设置,电容端口在不同时刻可被连接至连接线的任意连接线。而将多个电容端口连接到连接线组的一条连接线的多个开关(例如, KAE1‑KAE4)可以同时闭合,以将连接线同时连接到多个电容端口。
[0205] 在图10的实施例中,模拟信号端口在模拟信号路由器内部仅能连接到跨芯片连接线组的跨芯片连接线之一。例如,模拟信号路由器1010的模拟信号端口IAEN仅能连接到跨芯片激励信号线IAE,而模拟信号端口IACN仅能连接到跨芯片互电容输入信号线IAC。从而对于一个模拟信号端口,仅通过一个开关将其连接到跨芯片连接线组(进而仅能连接到跨芯片连接线组的跨芯片连接线之一)。而对于一个电容端口,通过包括多个开关的子开关组将其连接到连接线组,其中子开关组的多个开关的数量同连接线组的连接线数量相同,子开关组的开关同连接线组的连接线一一对应。
[0206] 通过这样的布置,减少模拟信号路由器1010所需要的开关数量以降低成本和复杂度,也降低模拟信号远距离传输时,开关对所传输信号的干扰。例如,模拟信号端口IACN 仅通过1个开关(KIACN)就连接到激励信号线AC,而电容端口(例如654)要经过2 个开关才连接到互电容输入信号线IAC。以及也为在芯片之间传递模拟信号预留了充足的模拟信号端口与跨芯片连接线资源。例如两个节点之间可以同时传输激励信号与对激励信号的响应。
[0207] 进一步地,跨芯片连接线(例如,IAE)通过多个开关(例如KIAEE、KIAEW、KIAES、 KIAEN)分别连接多个模拟信号端口(IAEE、IAEW、IAES、IAEN)。通过同时闭合这些开关,将跨芯片连接线同时连接到多个模拟信号端口,以将跨芯片连接线同时连接到多个节点和/或电容极板。
[0208] 模拟信号路由器的CDC耦合开关(KCL)将同步时钟信号线(ACLK)连接到CDC 的同步时钟信号线端口(CLK)。同步时钟信号线(ACLK)还通过开关(KCLK)连接同步时钟端口(ICLK)。开关(KCLK)不是必要的。可选地,同步时钟端口ICLK直接连接到同步时钟信号线(ACLK),而不经过开关(KCLK)。
[0209] 可选地,用模拟信号端口替代同步时钟端口,相应地,跨芯片连接线组还包括跨芯片同步时钟信号线(未示出),跨芯片同步时钟信号线与同步时钟连接线连接,以及开关将跨芯片同步时钟信号线耦合到模拟信号端口。
[0210] 继续参看图10,作为举例,利用CDC2测量分别连接到电容端口1014与电容端口 1054的电容极板所形成的互电容Cm。电容端口1014与1054分别位于两个R‑SpiNNaker 芯片,从而电容端口1014与1054所连接的电容极板在更大空间范围内形成互电容。进而根据本申请实施例的R‑SpiNNaker系统得以检测电容端口1014与1054所连接的电容极板对应的空间范围内出现的物体。通过闭合模拟信号路由器1050的开关KACC、KAC1,将CDC2的互电容输入信号线端口(ACC)连接到电容端口1054。以及闭合模拟信号路由器1050的开关KAEC、KIAEN,闭合模拟信号路由器1010的开关KIEAS与开关KAE3,将CDC2的激励信号线输入端口(AEC)连接到电容端口1014。CDC2向电容端口1014 连接的电容极板施加激励信号,以及从电容端口1054连接的电容极板获得对激励信号的响应,并测量互电容Cm。
[0211] 在图10的例子中,模拟开关矩阵1050的开关KAEC、激励信号线AE、跨芯片激励信号线IAE、开关KIAEN、模拟信号端口IAEN、连接模拟信号端口IAEN(1052)与模拟信号端口IAES(1012)的引线,模拟开关矩阵1010的模拟信号端口IAES(1012)、跨芯片激励连接线IAEC、开关KIAES、激励信号线AE、开关KAE3与电容端口1014,以及模拟开关矩阵1050的开关KACC、互电容输入信号线AC与开关KAC1,形成了用于测量互电容Cm的电容通道。通过改变模拟开关矩阵1010和/或模拟开关矩阵1050的开关矩阵的开关的状态,创建不同的电容通道,以使得CDC1和/或CDC2通过电容通道测量电容。电容通道是动态的。电容通道与其连接的电容极板和CDC形成了电容测量单元。
[0212] 依然作为举例,电容端口1014与1016各自连接的电容极板形成互电容Cm1;而电容端口1056与1058各自连接的电容极板形成互电容Cm2。CDC1与CDC2都可以通过模拟信号路由器1010和/或模拟信号路由器1050测量互电容Cm1或Cm2。又例如,模拟信号路由器1010的开关KAEC、KACC、KAE3与KAC4闭合(其他开关断开),使得CDC1通过激励信号线端口(AEC)向连接电容端口1014的电容极板施加激励信号,以及通过互电容输入信号线端口(ACC)从连接电容端口1016的电容极板获取互电容 Cm1对激励信号产生的响应。从而实现用CDC1测量互电容Cm1。
[0213] 依然作为举例,模拟信号路由器1010的开关KAEC与KIAES闭合,模拟信号路由器10500的开关KIAEN与KAE3闭合,使得CDC1通过激励信号线端口(AEC)向连接电容端口1056的电容极板施加激励信号;以及模拟信号路由器1010的开关KACC与 KIACS闭合,模拟信号路由器1050的开关KIACN与KAC4闭合,使得CDC1通过互电容输入信号线端口(ACC)从连接电容端口1058的电容极板获取互电容Cm2对激励信号产生的响应。其余未提到开关保持断开。
从而实现用CDC1测量互电容Cm2。
[0214] 其他实施方式,例如两个自电容或一个自电容和一个互电容的并行测量等等跨芯片协作测量电容的开关配置可同样根据需要进行开关配置。
[0215] 为了便于部署时,R‑SpiNNaker系统能易于覆盖多种或任意形状的待测量区域,在芯片的不同方向设置模拟信号端口。例如,在R‑SpiNNaker芯片的两个正交方向设置模拟信号端口,使得R‑SpiNNaker芯片可沿两个方向连接到其他R‑SpiNNaker芯片,进而形成具有网状拓扑的R‑SpiNNaker系统。
[0216] 可选地,R‑SpiNNaker芯片中的CDC还包括主动屏蔽信号线端口(SHD)(图10 中未示出),相应地,模拟信号路由器包括主动屏蔽信号线,连接主动屏蔽信号线与主动屏蔽信号线端口的开关。连接主动屏蔽信号线还通过开关连接到电容端口或模拟信号端口。
[0217] 也参看图6B与图6C,为适配R‑SpiNNaker芯片包括多个CDC的实施方式,在可选的实施方式中,模拟信号路由器的连接线组与电容通道连接线组。连接线组为多个CDC 所共享,而电容通道连接线组则同CDC一一对应连接,为每个CDC提供对应的电容通道连接线组。以及对应于每个电容端口的子开关组包括同连接线组与所有电容通道连接线组的连接线一一对应的开关。可选地,模拟信号路由器提供更多数量的电容通道连接线组,以在部署时可支持更多的CDC。以及可选地,一个或多个电容通道连接线组不连接到CDC,即这些电容通道连接线组不工作。从而在部署时,模拟信号路由器与CDC 可分别提供,而无需预先配置在一起,提高了部署的灵活性。模拟信号路由器还包括跨芯片连接线组,跨芯片连接线组包括同连接线组以及所有电容通道连接线组的连接线一一对应的跨芯片连接线。模拟信号路由器在东(E)西(W)南(S)北(N)每个方向的模拟信号端口同跨芯片连接线组的跨芯片连接线一一对应。例如,跨芯片连接线组包括5条连接线,相应地,模拟信号路由器在东(E)西(W)南(S)北(N)每个方向各包括5个模拟信号端口,分别用于连接跨芯片连接线组的对应连接线。
两个 R‑SpiNNaker芯片之间,通过模拟信号端口对应连接。例如,一个R‑SpiNNaker芯片东(E)向的5个模拟信号端口同另一个R‑SpiNNaker芯片西(W)向的5个模拟信号端口对应连接。
[0218] 图11展示了根据本申请又一实施例的R‑SpiNNaker系统。
[0219] 图11的例子中,R‑SpiNNaker系统包括4个R‑SpiNNaker芯片(1100、1120、1140 与1160)。四个芯片各自包括模拟信号路由器(1110、1130、1150与1170)与CDC(CDC1、 CDC2、CDC3与CDC4)。
[0220] 通过将多个(例如四个)芯片组成网络,得以在更大范围内布置电容极板并测量电容与其他模拟量,还扩大了SNN单元的规模,得以构建具有更强算力的SNN,和/或更多数量的SNN,以适应多种计算需求。
[0221] 在图11的例子中,每个R‑SpiNNaker芯片在东(E)西(W)南(S)北(N)(右左下上)四个方向的每个,包括2个模拟信号端口与1个点对点端口。R‑SpiNNaker系统中,R‑SpiNNaker芯片按行和/或列排布。属于相同行的R‑SpiNNaker芯片,通过东(E) 西(W)向的端口彼此连接。例如,参看图11,R‑SpiNNaker芯片1100与1120属于同一行,R‑SpiNNaker芯片1100的东(E)向的模拟信号端口(IACE与IAEE)与点对点端口,同R‑SpiNNaker芯片1120的西(W)向的模拟信号端口(IACW与IAEW)与点对点端口,对应连接。从而R‑SpiNNaker芯片1100与1120各自的数字路由器能交换数据包,而各自的模拟信号路由器能在两个芯片建立模拟信号通过并建立电容通道。又例如,R‑SpiNNaker芯片1100与1140属于同一列,R‑SpiNNaker芯片1100的南(S)向的模拟信号端口(IACS与IAES)与点对点端口,同R‑SpiNNaker芯片1140的北(N)向的模拟信号端口(IACN与IAEN)与点对点端口,对应连接。从而R‑SpiNNaker芯片1100 与1140各自的数字路由器能交换数据包,而各自的模拟信号路由器能在两个芯片建立模拟信号通过并建立电容通道。进而,通过R‑SpiNNaker芯片1100作为中转,R‑SpiNNaker 芯片
1120与1140之间也得以交换数据包,并建立电容通道。
[0222] 在图11的例子中,多个R‑SpiNNaker芯片在平面上形成R‑SpiNNaker系统时,每个 (非位于网络边界的)芯片在东西南北四个方向连接其他芯片。以此方式,简化了对更多数量的R‑SpiNNaker芯片组成R‑SpiNNaker系统时的部署,并且不会限制节点的数量。以及基于R‑SpiNNaker芯片在网络拓扑中的位置,一些芯片连接1个、2个或3个其他芯片。
[0223] 连接R‑SpiNNaker芯片的引线可具有任意的形状,从而多个R‑SpiNNaker芯片的部署不限于平面结构,而可以形成曲线或曲面。
[0224] 虽然图11中展示的R‑SpiNNaker系统每行包括2个节点,每列包括2个节点,可以理解地,在可选的实施方式中,R‑SpiNNaker系统的行与列所包括的节点数都是任意的而没有限制。R‑SpiNNaker系统的行与列的数量也是任意的。
[0225] 可选地,针对某个R‑SpiNNaker芯片,将其南(S)北(N)方向称为纵向,通过南 (S)北(N)方向(纵向)的模拟信号端口/点对点端口在纵向连接其他R‑SpiNNaker 芯片,以及通过所连接的其他R‑SpiNNaker芯片进一步连接其他R‑SpiNNaker芯片,从而在纵向延申上,所连接的R‑SpiNNaker芯片可具有任意数量。类似地,在横向(其东 (E)西(W)方向)延申上,所连接的R‑SpiNNaker芯片可具有任意数量。从而应对在不同形状的待测量区域中多种电容极板组合需要,以及在节点附近的运动测量、计算的需要等需求。
[0226] R‑SpiNNaker芯片之间通过位于R‑SpiNNaker芯片的指定方向的模拟信号端口/点对点端口连接,还有利于配置或编程各个R‑SpiNNaker芯片的模拟信号路由器的模拟开关矩阵与数字路由器。例如,一个R‑SpiNNaker芯片的东向的模拟信号端口/点对点端口仅同另一R‑SpiNNaker芯片的西向的模拟信号端口/点对点端口对应连接(而不同该另一 R‑SpiNNaker芯片的东向、南向或北向的模拟信号端口/点对点端口连接);一个 R‑SpiNNaker芯片的西向的模拟信号端口/点对点端口仅同另一R‑SpiNNaker芯片的东向的模拟信号端口/点对点端口对应连接;一个R‑SpiNNaker芯片的南向的模拟信号端口/ 点对点端口仅同另一R‑SpiNNaker芯片的北向的模拟信号端口/点对点端口对应连接(而不同另一R‑SpiNNaker芯片的南向、东向或西向的模拟信号端口/点对点端口连接);一个R‑SpiNNaker芯片的北向的模拟信号端口/点对点端口仅同另一R‑SpiNNaker芯片的南向的模拟信号端口/点对点端口对应连接。
[0227] 从而,芯片的模拟信号端口/点对点端口除了对应指定的跨芯片连接线,还带有方向属性,进而将模拟信号端口连接到跨芯片连接线的开关也带有相同的方向属性。方向属性被用于在编程或配置模拟开关矩阵时寻址所要操作的开关,也被用于在数字路由器的路由表中描述要转发数据包的点对点端口。
[0228] 进一步地,节点的模拟信号端口/点对点端口除了带有方向属性,还带有行/列属性(行号或列号),进而将模拟信号端口连接到跨芯片连接线的开关也带有相同的行/列属性。行/列属性被用于在编程或配置模拟开关矩阵时寻址所要操作的一组开关,也被用于在设置路由表时描述一组点对点端口。从而R‑SpiNNaker系统的每个芯片可被寻址,进一步简化了对各个模拟信号路由器的模拟开关矩阵的配置或编程,以及减缓了对路由表的设置。
[0229] 图11的R‑SpiNNaker系统形成了电容传感器网络。R‑SpiNNaker芯片之一的CDC 得以利用传感器网络中位于各个R‑SpiNNaker芯片所耦合的电容极板来测量电容。例如,CDC1通过电容极板1112与1114测量互电容,通过电容极板1132与1134测量互电容,通过电容极板1152与1154测量互电容,通过电容极板1172与1174测量互电容。CDC1 还能通过电容极板1112与1134测量互电容,通过组合(等电势)的电容极板1112与 1114,以及组合(等电势)的电容极板1132与1134,以测量两个组合的电容极板所形成的互电容。CDC1也能测量电容极板或组合(等电势)的多个电容极板相对于大地的自电容。CDC1还能按需要的时序,依次测量多个电容,例如,依次测量电容极板1112 与1114形成的互电容、电容极板1132与1134形成的互电容、电容极板1152与1154形成的互电容以及电容极板1172与1174形成的互电容,以例如识别物体相对于各节点的位置改变。
[0230] 在例如电子皮肤应用中,需要类似于人类条件反射和非条件反射的功能,非条件反射是指人生来就有的先天性反射。是一种比较低级的神经活动,由大脑皮层以下的神经中枢(如脑干、脊髓)参与即可完成。非条件反射包括膝跳反射、眨眼反射、缩手反射、婴儿的吮乳、排尿反射等,而条件反射是人出生以后在生活过程中逐渐形成的后天性反射,是在非条件反射的基础上,经过一定的过程,在大脑皮层参与下完成的,是一种高级的神经活动,是高级神经活动的基本方式。模块化的电子皮肤应用中,每个电子皮肤的基本单元都有一颗R‑SpiNNaker芯片,当电子皮肤基本单元受到某种外界刺激时,应具备不通过机器人大脑参与或仅通过分布式机器人大脑的部分区域参与,就能做出类似人的条件或非条件反射的快速反应决策和动作(例如,机械手接触到高温或尖锐物体时、或意外接触到人体需要立即缩手避让),因此每一个R‑SpiNNaker芯片需要一个控制单元,可以仅在本芯片内或与临近芯片协同,即可做出局部动作的决策并驱动局部动作执行器执行必须的动作。局部决策和控制执行既可以在控制单元内独立完成,也可以在计算单元与SNN单元参与下完成,甚至也可以由相关的多个芯片的SNN单元和控制单元参与下的协同完成。
[0231] 图12A展示了根据本申请又一实施例的R‑SpiNNaker芯片架构的示意图。
[0232] 图12A展示的R‑SpiNNaker芯片在图3的实施例的R‑SpiNNaker芯片基础上还集成了控制单元与GPIO单元。GPIO单元提供了驱动外部执行单元的芯片管脚。控制单元的输出连接到GPIO单元,控制单元通过GPIO单元向执行单元提供驱动信息。执行单元是例如马达、开关等,使机械手作出例如缩手避让的动作。由CPU核执行软件提供控制单元,或由硬件电路实现控制单元。
[0233] 控制单元接收数字路由器转发的数据包。数字路由器转发给控制单元的数据包是 AER包或专用于控制单元的数据包。控制单元从接收的数据包提取要实施的动作并通过 GPIO单元驱动执行单元。可选地,控制单元还包括SNN神经元,这些SNN神经元构成 SNN,接收数字路由器提供的AER包作为输出,并输出提供给GPIO单元的控制信号。依然可选地,控制单元的SNN神经元与SNN单元的SNN神经元共同构成SNN,并输出提供给GPIO单元的控制信号。
[0234] 在图12A展示的实施例中,可选地,电容端口/模拟信号端口所需的部分或全部芯片管脚也由GPIO单元提供。通过配置或编程的方式,将控制单元、模拟信号端口和/或电容端口连接到GPIO单元提供的管脚。从而芯片管脚被控制单元、模拟信号端口和/或电容端口共享。在一些应用或R‑SpiNNaker系统中的一个或多个R‑SpiNNaker芯片中,GPIO 提供的管脚被用于电容端口与模拟信号端口以采集模拟信号和/或测量电容,而另一些 R‑SpiNNaker芯片中,GPIO提供的管脚被用作驱动执行单元。芯片的管脚数量是有限的,并且同芯片的成本正相关。生产出的R‑SpiNNaker芯片包括由GPIO单元提供的多个管脚。而在应用现场部署后,通过配置或编程,为各芯片的各管脚设置指定的用途,使得具有有限数量管脚的芯片能适用于更多种应用场景或用途。从而芯片的一些管脚既可用于电容端口、模拟信号端口,也可用于驱动执行单元。可选地,芯片提供多种类型的管脚。例如,具有相对更强驱动能力的管脚,具有相对更低噪声的管脚。具有更强驱动能力的管脚适用于驱动执行单元或提供例如主动屏蔽信号,具有更低噪声的管脚适用于连接电容极板或提供跨芯片的电容通道。
[0235] 可选地,控制单元还将GPIO的模拟或数字输入信号通过数字路由器传递给计算单元进行滤波或函数模型处理,在计算单元内还将控制单元提供的信号编码为AER包。可选地或进一步地,控制单元还对R‑SpiNNaker芯片的各部件或各处理器核进行管理,例如:在R‑SpiNNaker芯片上电时为各处理器核加载代码,初始化各部件,通过设置数字路由器的路由表构建SNN,设置各SNN神经元的参数等。
[0236] R‑SpiNNaker追求低成本多芯片分布式协同应用,不追求单芯片大算力,但多芯片协同也可以形成大算力,R‑SpiNNaker单芯片只需逻辑4核(可以是物理4核或物理单核多线程模拟逻辑四核)的设计思路更加适合低成本大面积电子皮肤和电子地理皮肤的产业化应用。
[0237] 图12B展示了根据本申请又一实施例的R‑SpiNNaker芯片架构的示意图。
[0238] 在图12B展示的R‑SpiNNaker芯片基础上,图12B展示的R‑SpiNNaker芯片包括本地SNN单元与共享SNN单元。本地SNN单元与共享SNN单元各自可由CPU核或硬件电路实现,也可在单一CPU核中通过不同的线程或进程分别实现。本地SNN单元与共享SNN单元分别同数字路由器连接。可选地,本地SNN单元与共享SNN单元彼此不直接连接,因而R‑SpiNNaker芯片不采用对称多处理(SMP,Symmetrical Multi‑Processing) 结构,而是提供本地SNN单元与共享SNN单元的各自的CPU核各自具有存储器,并都连接到数字路由器,同数字路由器交换AER包。本地SNN单元中的SNN神经元需要向共享SNN单元的SNN神经元发送AER包时,需要先将AER包发送给数字路由器,数字路由器再根据路由表的信息,将AER包转发给共享SNN单元中的SNN神经元。
[0239] 设置本地SNN单元的目的有两个,第一是进行局部快速决策,例如本地SNN单元所在的R‑SpiNNaker芯片接触局部高温或局部压力超过高限阈值时,需要感知此类事件并做出底层决策;第二是进行局部底层特征参数提取,例如本地SNN单元所在的 R‑SpiNNaker芯片对已接触或即将接触的外部物体局部材质识别类别,识别外部物体接近的速度、局部接触的三维力矢量、局部接触是否有震动、震动的幅度与频率、局部接触是否有滑动滑动的方向与速度等。
[0240] 根据本申请的实施例,本地SNN单元的接收的AER包仅来源于其所在的芯片的计算单元和/或控制单元,其输出的AER包可以被数字路由器转发到其所在芯片的共享SNN 单元和/或。本地SNN单元的多个SNN神经元可构建一个或多个SNN,所构建的SNN 可进行模块化、标准化的独立学习训练,除其输出层外,本地SNN单元的SNN的神经元对于共享SNN单元或其他R‑SpiNNaker芯片的SNN是不可见的。换句话说,本地SNN 单元的神经元中,除了作为SNN的输出层的神经元外,其他SNN神经元输出的AER包不会被数字路由器转发到共享SNN单元或其他R‑SpiNNaker芯片。
[0241] 可选地,即使SNN单元包括的多个SNN神经元由例如相同CPU实现,为了设计与编程模型的简洁,SNN单元内的各SNN神经元之间的AER包的传递也由数字路由器中转。
[0242] 共享SNN单元的主要目的是构建片间SNN以进行多芯片(多CPU核)协同计算,这与SpiNNaker系统相似。大规模的SNN可以分布在多个芯片上进行协同计算。不同的是,每个共享SNN单元的SNN都可以有局部输出层,其目的是基于整个网络协同计算的结果向控制单元发出局部控制指令。在单片应用的场合共享SNN单元也可以通过数字路由器的路由表配置成本地SNN单元。
[0243] 图13A展示了根据本申请实施例的SNN单元构建SNN的示意图。
[0244] SNN由互连的多个SNN神经元构成。SNN单元包括的多个SNN神经元,被用于构建SNN。数字路由器的路由表记录了SNN神经元之间的连接关系。例如,路由表记录由某SNN神经元发出的AER包(记为S1)应当被转发到的一个或多个AER包(记为S2) (从而表示在SNN中,SNN神经元S1的输出连接到SNN神经元S2的输入,神经元S2 可以有多个)、点对点端口/网络端口、控制单元。
[0245] SNN具有指定的功能,例如,识别手指的靠近、检测物体的材质、识别目标的速度/ 移动方向等。SNN包括例如三层,输入层、中间层与输出层。各层均由SNN神经元构成。将构成输入层的SNN神经元称为输入层神经元,将构成输出层的SNN神经元称为输出层神经元,将构成中间层的SNN神经元称为中间层神经元。
[0246] SNN接收的输入是神经脉冲。神经脉冲出现的时间、数量等特征代表了要被SNN识别的信息。在图13A中,数字路由器与输入层神经元之间的竖线代表神经脉冲(也代表 AER包),竖线在水平方向的位置代表了神经脉冲出现的时间,越靠近右侧代表出现的时间越早。
[0247] 在可选的实施方式中,输入层神经元仅接收例如来自计算单元或其他SNN的输出层神经元提供的AER包。通过数字路由器的路由表中设置的路由规则,确定要转发给输入层神经元的AER包可以来自计算单元或其他SNN的输出层神经元,而不会来自中间层神经元。中间层神经元仅接收来自其所在SNN的输入层神经元或其所在SNN的中间层神经元输出的AER包,中间层神经元的输出仅提供给其所在SNN的输出层神经元。SNN 的输出层神经元仅接收其所在SNN的中间层神经元输出的AER包。SNN的输出层神经元输出的AER包可以被提供给控制单元和/或其他SNN的输入层神经元。
[0248] SNN的输出是神经脉冲。神经脉冲出现的时间、数量等特征也代表了SNN处理的结果。图13A中,SNN的输出层神经元输出的神经脉冲被提供给数字路由器(由虚线表示)。数字路由器还根据路由表将接收的AER包(代表神经脉冲)转发给控制单元和/或其他 SNN的输入层神经元。虽然图13A展示了2个数字路由器,其是为了清楚的目的,在 R‑SpiNNaker芯片中,仅提供单一的数字路由器,该路由器向SNN提供AER包,SNN 输出的AER包也提供给该数字路由器。
[0249] 图13A中,还展示了SNN的SNN神经元(圆形所代表的节点)同数字路由器之间的通信连接。SNN神经元输出的AER包先发送给数字路由器,再由数字路由器发送给指定的另一SNN神经元。通过这样的方式,简化了SNN单元与数字路由器之间的信息通路。SNN单元或SNN可能包括数量庞大的SNN神经元,而难以为每个SNN神经元同数字路由器提供专用的信息同理。而SNN单元具有同数字路由器的信息通路,SNN单元的所有SNN神经元共享该信息通路以同数字路由器交换AER包。
[0250] 可以理解地,SNN单元的各SNN神经元彼此之间可以没有区别,而是由数字路由器的路由表所提供的路由规则,描述了SNN神经元所属的层(输入层、中间层、输出层),以及SNN神经元之间的连接关系。
[0251] 图13B展示了根据本申请又一实施例的SNN单元构建SNN的示意图。
[0252] 图13B的例子中,R‑SpiNNaker芯片包括本地SNN单元与共享SNN单元,本地SNN 单元与共享SNN单元各自由CPU核提供。本地SNN单元的多个SNN神经元构成SNN。共享SNN单元的多个SNN神经元构成SNN。本地SNN单元中的SNN的输入层神经元与中间层神经元输出的AER包的转发目标都是该本地SNN的SNN神经元。仅输出层神经元输出的AER包有可能被转发给本地SNN单元之外。可选地,本地SNN单元的SNN 神经元输出的AER包不会被转发到其所属R‑SpiNNaker芯片之外,从而本地SNN单元的计算资源不在多个R‑SpiNNaker芯片之间共享。本地SNN单元中的SNN的输入层神经元所接收的AER包来自其所属R‑SpiNNaker芯片的计算单元,或者该本地SNN单元中的其他SNN。
[0253] 共享SNN单元中的SNN的输入层神经元与中间层神经元输出的AER包的转发目标都是该共享SNN的SNN神经元。仅输出层神经元输出的AER包有可能被转发给共享 SNN单元之外,包括该共享SNN单元中的不属于该SNN的其他SNN神经元,该共享 SNN单元所属R‑SpiNNaker芯片的本地SNN单元,和/或该共享SNN单元所属 R‑SpiNNaker芯片之外的其他R‑SpiNNaker芯片。共享SNN单元中的SNN的输入层神经元所接收的AER包来自该共享SNN单元所属芯片的本地SNN单元,该共享SNN单元的其他神经元,或者其他R‑SpiNNaker芯片。
[0254] 在可选的实施方式中,R‑SpiNNaker系统的多个R‑SpiNNaker芯片的共享SNN单元协同构建SNN。多个R‑SpiNNaker芯片各自的共享SNN单元为所构建的SNN提供一个或多个SNN神经元。这些R‑SpiNNaker芯片各自的数字路由器共同为所构建的SNN定义SNN神经元的拓扑,并为SNN神经元分发AER包。可选地,多个R‑SpiNNaker芯片各自的共享SNN单元协同构建SNN,所构建的SNN的输入层神经元、中间层神经元与输出层神经元可由任意的共享SNN单元提供,输入层神经元、中间层神经元与输出层神经元输出的AER包也可被发送给为该SNN提供神经元的任何共享SNN单元,输出层神经元输出的AER包还可被提供给为该SNN提供神经元的任何共享SNN单元所在 R‑SpiNNaker芯片的控制单元。
[0255] 图14展示了根据本申请又一实施例的R‑SpiNNaker芯片架构的示意图。
[0256] 图14展示的R‑SpiNNaker芯片包括4个CPU核(1420、1422、1424与1426)、数字路由器、模拟信号路由器、CDC、点对点端口、GPIO单元以及可选的模拟信号端口。
[0257] CPU核1420提供计算单元。计算单元包括由函数f(x)代表的SNN神经元计算模型与编码器。CPU核1420实现函数f(x),用于根据CDC提供的(一个或多个时间的)一个或多个电容测量值计算输出神经脉冲的时机,编码器将脉冲编码为AER包,并发送给数字路由器。
[0258] 4个CPU核分别同数字路由器直接相连,或者数字路由器作为芯片的片上总线的设备,各CPU核与数字路由器通过片上总线相连。
[0259] CPU核1422提供本地SNN单元。CPU核1426提供共享SNN单元。CPU核1424 提供控制单元,响应于从数字路由器接收AER包或其他数据包而驱动外部设置执行指定的动作。外部设备例如不属于R‑SpiNNaker芯片的组成部分,而是通过GPIO连接到 R‑SpiNNaker芯片。
[0260] 数字路由器连接位于R‑SpiNNaker芯片东、西、南与北四个方向的4个点对点连接端口。点对点端口用于同其他R‑SpiNNaker芯片的点对点端口连接,并传输AER包。点对点端口包括例如2根引线,点对点端口之间通过例如2根引线通信。可选地,CPU核 1424还提供数字路由器。
[0261] 模拟信号路由器在CDC与GPIO和/或模拟信号端口之间建立电容通道。GPIO连接到电容端口,或者GPIO的部分管脚被配置来提供电容端口。模拟信号路由器连接位于 R‑SpiNNaker芯片东、西、南与北四个方向的4组模拟信号端口。模拟信号端口用于同其他R‑SpiNNaker芯片的模拟信号端口连接,并传输模拟信号。每组模拟信号端口包括例如跨芯片激励信号线端口、跨芯片互电容输入信号线端口与跨芯片同步时钟信号线,从而一组模拟信号端口同另一芯片的一组模拟信号端口之间通过3根引线连接。
[0262] 模拟信号路由器可被配置或编程。例如,数字路由器向模拟信号路由器转发数据包来提供用于配置或编程的信息。又例如,CPU核1424作为控制单元,对模拟信号路由器实施配置或编程。
[0263] 可以理解地,在其他实施方式中,R‑SpiNNaker芯片可包括更多或更少数量的CPU 核、更多数量的CDC、更多或更少数量的模拟信号端口/点对点端口。可选地,由网络端口替代点对点接口,或者R‑SpiNNaker芯片既包括网络端口又包括点对点端口。
[0264] 依然可选地,R‑SpiNNaker芯片包括多个电容端口,每组电容端口包括4个或5个电容端口,以便于适配电容单元。
[0265] 可选地,R‑SpiNNaker芯片还包括配置端口。配置端口用于为计算单元、数字路由器、CDC、模拟信号路由器、神经单元和/或控制单元提供配置信息,依然可选地,通过配置端口调试R‑SpiNNaker芯片或输出R‑SpiNNaker芯片的状态信息。
[0266] 图15展示了根据本申请又一实施例的R‑SpiNNaker系统。
[0267] 图15的例子中,R‑SpiNNaker系统包括4个R‑SpiNNaker芯片(1510、1520、1530 与1540)。R‑SpiNNaker芯片1510带有多个CPU核与CDC。而R‑SpiNNaker芯片1520、 1530与1540同R‑SpiNNaker芯片1510不同。可选地,R‑SpiNNaker芯片1520、1530与 1540包括数字路由器、模拟信号路由器、模拟信号端口、电容端口与点对点端口,用于在R‑SpiNNaker系统中提供电容极板、传递模拟信号与转发AER包。R‑SpiNNaker芯片 1510是功能完整的R‑SpiNNaker芯片,能够测量电容,并构建SNN。R‑SpiNNaker芯片 1510能利用R‑SpiNNaker系统中的所有电容端口/模拟信号端口所连接的电容极板来测量电容,并配置R‑SpiNNaker系统的各个R‑SpiNNaker芯片的数字路由器与模拟信号路由器来形成电容通道。
[0268] 可选地,R‑SpiNNaker芯片1520、1530与1540包括处理器核并提供SNN单元(而不包括CDC)。4个R‑SpiNNaker芯片(1510、1520、1530与1540)的SNN单元提供 SNN神经元并在R‑SpiNNaker系统中构建一个或多个SNN。
[0269] 作为举例,R‑SpiNNaker芯片的电容端口连接电容单元。电容单元包括例如组成圆形的4个扇形电极与1个多功能电极。R‑SpiNNaker芯片通过一组5个电容端口连接一个电容单元。图15的例子中,每个R‑SpiNNaker芯片连接了2个电容单元。每个 R‑SpiNNaker芯片还包括4个模拟信号端口与4个点对点端口,分别位于芯片的东西南北四个方向。R‑SpiNNaker芯片1510的东侧的模拟信号端口与点对点端口同R‑SpiNNaker 芯片1520西侧的模拟信号端口与点对点端口对应连接。R‑SpiNNaker芯片1530的东侧的模拟信号端口与点对点端口同R‑SpiNNaker芯片1540西侧的模拟信号端口与点对点端口对应连接。R‑SpiNNaker芯片1510的南侧的模拟信号端口与点对点端口同R‑SpiNNaker 芯片1530北侧的模拟信号端口与点对点端口对应连接。R‑SpiNNaker芯片1520的南侧的模拟信号端口与点对点端口同R‑SpiNNaker芯片1540北侧的模拟信号端口与点对点端口对应连接。
[0270] 各R‑SpiNNaker芯片的数字路由器通过点对点端口相连,并交互数据包。所交换的数据包包括例如携带了SNN神经元的脉冲的AER包,用于配置模拟信号路由器的数据包,用于同步各R‑SpiNNaker芯片的CDC的操作的数据包等。
[0271] 图16A展示了根据本申请实施例的R‑SpiNNaker系统中构建的SNN的示意图。
[0272] 图16A中,R‑SpiNNaker系统包括2个R‑SpiNNaker芯片(1610与1620)。两个芯片各自的共享SNN单元提供SNN神经元构建了SNN(脉冲神经网络)1630。SNN 1630 的输入层神经元来自R‑SpiNNaker芯片1610的共享SNN单元,SNN 1630的中间层神经元来自R‑SpiNNaker芯片1620的共享SNN单元,SNN 1630的输出层神经元来自 R‑SpiNNaker芯片1610与1620二者的共享SNN单元。可以理解地,图16A展示的SNN 1630的SNN神经元的来源是出于举例的目的,在多种实施方式中,由R‑SpiNNaker系统的各R‑SpiNNaker系统协同构建的SNN的各SNN神经元可来自R‑SpiNNaker系统的任何R‑SpiNNaker芯片(的共享SNN单元)。
[0273] SNN 1630的SNN神经元的拓扑由R‑SpiNNaker芯片(1610与1620)的数字路由器的路由表定义。SNN 1630的一个SNN神经元为了将输出的AER包提供给同其连接的另一个SNN神经元,需要将输出的AER包提供给其所属芯片(例如1610)的数字路由器,该数字路由器将AER包转发给该另一个SNN神经元。在需要时,该数字路由器还通过另一个R‑SpiNNaker芯片(例如,1620)的数字路由器转发该AER包,以将该AER包提供给位于另一个R‑SpiNNaker芯片芯片的SNN神经元。
[0274] 在图16A的例子中,2个R‑SpiNNaker芯片(1610与1620)的本地神经单元不参与 SNN 1630的构建,以便为R‑SpiNNaker芯片自身完成感知或其他应用保留所需的计算资源。
[0275] 图16B展示了根据本申请又一实施例的R‑SpiNNaker系统中构建的SNN的示意图。
[0276] 图16B中,R‑SpiNNaker系统包括排布为3行与3列的9个R‑SpiNNaker芯片(1650、 1652、1654、1660、1662、1664、1670、1672与1674)。这些R‑SpiNNaker芯片构建了 6个SNN(1651、1653、1655、1661、1663与1671)。这些SNN的每个是独立工作且完成的SNN,又通过分层的结构协同处理任务。例如,SNN1651由R‑SpiNNaker芯片1650 的本地SNN单元提供的SNN神经元构建,SNN 1651内部的神经元之间传输的AER包仅在SpiNNaker芯片1650内部通过其数字路由器传递,而不会北转发到SpiNNaker芯片 1650外部,从而不会对图16B的R‑SpiNNaker系统的其他芯片之间的通信带宽产生影响。 SNN 1651用于感知例如SpiNNaker芯片1650所连接的电容极板或SpiNNaker芯片1650 的CDC输出的电容值所检测的物体,例如感知物体的出现、移动速度、材质等具体/明确的物理量。类似地,SNN1653由R‑SpiNNaker芯片1652的本地SNN单元提供的SNN 神经元构建,SNN 1653内部的神经元之间传输的AER包仅在SpiNNaker芯片1652内部通过其数字路由器传递。SNN1655由R‑SpiNNaker芯片1654的本地SNN单元提供的SNN 神经元构建,SNN 1655内部的神经元之间传输的AER包仅在SpiNNaker芯片1654内部通过其数字路由器传递。
[0277] SNN1661由R‑SpiNNaker芯片1660的共享SNN单元提供的SNN神经元构建,SNN 1661内部的神经元之间传输的AER包仅在SpiNNaker芯片1660内部通过其数字路由器传递。SNN1663由R‑SpiNNaker芯片1662与1664二者的共享SNN单元提供的SNN神经元构建,SNN 
1663内部的神经元之间传输的AER包借助SpiNNaker芯片1662与1664 二者的数字路由器传递。SNN1671由R‑SpiNNaker芯片1670的共享SNN单元提供的SNN 神经元构建。
[0278] 可选地,R‑SpiNNaker系统所构建的SNN,可由来自一个或多个R‑SpiNNaker芯片的共享SNN单元提供的SNN神经元所组成。
[0279] 在图16B的实施例中,SNN(1651、1653、1655)是最底层SNN,SNN(1661与 1663)是中间层SNN,SNN(1671)是上层SNN。每个SNN可被独立训练,并输出具有明确物理意义的结果,这个明确的物理意义的结果作为下一层的输入信息。在图16B 的例子中,中间层SNN是相对于最底层SNN的下一层,上层SNN是相对于中间层SNN 的下一层。
[0280] 多个功能相似或逻辑上等价的SNN处于同一层,这些SNN输出的物理结果根据不同的抽象需求或概括需求,作为更高抽象层的SNN(完整独立的SNN)的输入。每层各分区的神经网络都独立训练、各自推理。
[0281] 以机器人铠装电子皮肤触感为例,右手的各个部分(例如手掌、手背与手腕)的触感分别对应一个SNN(1651、1653与1655)。每一个SNN都输出明确的触感特征,比如接触或滑动。右手手背、手掌与手腕的触感特征被综合处理成整个右手的触感特征,由SNN 1663代表。SNN(1651、1653与1655)的输出被提供给SNN 1663作为输入。SNN 1671代表机器人右侧躯体的触觉特征,其接收SNN 1663的输入。通过依次组合抽象,构成整个机器人的触感认知。分层计算的最大优点是减少、降低神经网络各层、各区的数据通信带宽需求,传送特征比传送原始数据要节省更多的数据通信量。
[0282] 可选地,越上层的SNN,代表了越高的抽象层次,相应地所需的计算资源(例如 R‑SpiNNaker芯片)数量越少。
[0283] 依然可选地或进一步地,在各层SNN之间,AER包的传递是单向的,朝向抽象层次提升的方向。例如,代表底层SNN 1651的输出的AER包被提供给中间层SNN 1663,而反之,中间层SNN 1663输出的AER包不会被提供给底层SNN。
[0284] 以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

当前第1页 第1页 第2页 第3页