一种人工神经网络计算核的制作方法

文档序号:10687679阅读:454来源:国知局
一种人工神经网络计算核的制作方法
【专利摘要】本发明涉及一种人工神经网络计算核,包括:一路由器模块、至少一神经元计算模块、至少一核控制器,所述神经元计算模块与所述核控制器一一对应。所述路由器模块接收并解析外部输入数据,并将解析后的地址信息和轴突值信息送入对应的神经元计算模块;以及将所述神经元计算模块输出的神经元计算结果发送至目标地址,并向该神经元计算模块对应的核控制器发送本帧数据处理完成标志。所述神经元计算模块用于进行神经元计算,并将神经元计算结果发送至所述路由器模块。所述核控制器在接收到所述本帧数据处理完成标志后进入下一神经元周期。利用本发明提供的人工神经网络计算核可以实现多个人工神经网络计算核的组网。
【专利说明】
一种人工神经网络计算核
技术领域
[0001 ]本发明属于人工神经网络计算领域,特别涉及一种神经元计算单元。
【背景技术】
[0002] 人工神经网络是借鉴生物大脑突触-神经元结构演化而成的计算模型,能并行地 进行大规模复杂运算,并具有高度非线性、自适应性的特点。与生物大脑神经网络结构类 似,人工神经网络可定义为由神经元计算单元、轴突单元、树突单元、突触单元等基本结构 组成。神经元计算单元是最基本的计算单元,能进行简单的数学运算;轴突单元负责输出神 经元计算结果,一个神经元有一个轴突;树突单元是神经元计算的输入,一个神经元可有多 个树突;突触单元表示上一神经元轴突和下一神经元树突联接的权重;神经元与神经元间 通过轴突、突触、树突形成分层联接从而构成神经网络。
[0003] 人工神经网络由多层神经元计算单元联接而成,通过大量分布式的简单运算单元 相互作用实现并行复杂非线性计算,具有强大的信息处理能力。在研究人工神经网络计算 模型时,常用的计算设备如通用计算机往往会出现计算效能低,耗时长,能耗高等缺点。近 年来,部分研究机构针对人工神经网络的特点研发出通用的神经网络计算芯片,如IBM的 TrueNorth,初步达到了芯片中进行人工神经网络运算的目的。然而,目前多数神经网络计 算芯片采用的是将计算单元(神经元)和联接单元(突触矩阵)分离的设计思路,由于采用了 固定规模全联接的布局方式,从而限制了单核中神经元的联接数,同时在非全联接神经网 络的应用中,也会造成未联接突触点位存储资源的浪费。

【发明内容】

[0004] 有鉴于此,确有必要提供一种可以实现灵活组网的神经网络计算芯片。
[0005] -种人工神经网络计算核,包括:一路由器模块、至少一神经元计算模块、至少一 核控制器,所述神经元计算模块与所述核控制器一一对应;所述路由器模块,用于接收并解 析外部输入数据,并将解析后的地址信息和轴突值信息送入对应的神经元计算模块;所述 神经元计算模块,用于进行神经元计算,并将神经元计算结果发送至所述路由器模块;所述 路由器模块,还用于将所述神经元计算模块输出的神经元计算结果发送至目标地址,并向 该神经元计算模块对应的核控制器发送本帧数据处理完成标志;所述核控制器,用于在接 收到所述本帧数据处理完成标志后进入下一神经元周期。
[0006] 与现有技术相比较,利用本发明提供的人工神经网络计算核可以实现多个人工神 经网络计算核的组网,实现计算核的柔性拓展以及存储资源的有效利用,增强了计算核的 适应性,避免额外的资源开销。
【附图说明】
[0007] 图1为本发明第一实施例提供的神经元计算单元示意图。
[0008] 图2为本发明第二实施例提供的神经元计算模块示意图。
[0009] 图3为本发明第三实施例提供的人工神经网络计算核示意图。
[0010] 图4为本发明第四实施例提供的人工神经网络计算核示意图。
[0011] 图5为本发明第四实施例提供的人工神经网络计算核核间传输数据帧格式。
[0012] 图6为本发明提供的人工神经网络计算核路由器数据收发流程图。
[0013] 图7为本发明提供的人工神经网络计算核神经元计算模块计算结果发送流程图。
[0014] 图8为本发明第五实施例提供的人工神经网络计算核示意图。
[0015] 图9为本发明提供的人工神经网络计算核组网示意图。 「00161 Φ恶元仳箝马谥昍
' 如下【具体实施方式】将结合上述附图进一步说明本发明。 '
【具体实施方式】
[0017] 下面将结合附图及具体实施例,对本发明提供的人工神经网络计算核作进一步的 详细说明。
[0018] 请参见图1,本发明第一实施例提供一种神经元计算单元210,包括解码模块211、 地址权重模块212、乘法器213、累加器214。
[0019]所述解码模块211用于接收神经网络信息并解析。所述神经网络信息包括地址信 息和轴突值信息,所述解码模块211将其中的地址信息送入所述地址权重模块212,将轴突 值信息送入所述乘法器213。
[0020] 所述地址权重模块212中存储地址权重对列表,实现对输入到该地址权重模块212 的地址信息进行匹配。若输入地址与地址权重模块212中已存储的地址信息匹配,则地址权 重模块212向乘法器213输出相对应的权重值,输出的权重值为一定范围内变化的数值;若 输入地址与已存储的地址信息不匹配,则地址权重模块212向乘法器213输出零值。此外,所 述地址权重模块212还可以根据匹配判断结果设置地址有效标志状态。具体为,若输入地址 与地址权重模块212中已存储的地址信息匹配,所述地址权重模块212发出地址有效标志, 若输入地址与地址权重模块212中已存储的地址信息不匹配,所述地址权重模块212不改变 地址有效标志状态。
[0021] 所述乘法器213接收所述地址权重模块212输出的权重值以及所述解码模块211输 出的轴突值,将所述权重值与轴突值相乘,并将乘积送入累加器214。
[0022] 所述累加器214实现将乘法器213输出的计算结果进行累加并输出。
[0023] 本发明第一实施例提供的神经元计算单元210实现了寻址与计算一体化,通过采 用寻址与计算一体化设计,突破了固定规模全联接的布局方式对神经元计算单元数目的限 制,同时由于采取了地址匹配的联接方式,避免了无用联接造成的资源浪费,从而实现柔性 拓展以及存储资源的有效利用,增强了神经网络计算效率。
[0024] 本发明第二实施例进一步提供一种神经元计算模块,用于建立神经元间联接关系 及进行神经元计算。请参见图2,所述神经元计算模块200包括:多个神经元计算单元210、发 送缓存及接口 220、函数信息表230。
[0025] 所述多个神经元计算单元210接收来自外部的地址信息和轴突值信息,并对所述 地址信息进行判断,若接收到的地址信息与自身存储的地址信息匹配,则对该接收到的信 息进行神经网络计算,并将计算结果及地址有效标志发送至所述发送缓存及接口 220,若接 收到的地址信息与自身存储的地址信息不匹配,则不对该接收到的信息进行神经网络计 算。
[0026] 本实施例中所述多个神经元计算单元中每一神经元计算单元进一步包括:解码模 块211、地址权重模块212、乘法器213、累加器214。本实施例中的神经元计算单元与本发明 第一实施例提供的神经元计算单元210结构与功能基本相同,本实施例中所述地址权重模 块212还用于当输入地址与地址权重模块212中已存储的地址信息匹配,则地址权重模块 212向乘法器213输出相对应的权重值,并向发送缓存及接口 220发出地址有效标志;若输入 地址与已存储的地址信息不匹配,则地址权重模块212向乘法器213输出零值,且不改变地 址有效标志状态。
[0027] 所述发送缓存及接口 220用于在外部全局时钟gclk触发时将所述多个神经元计算 单元210的计算结果及地址有效标志进行锁存,并清零各神经元计算单元210的地址有效标 志,以及将指定的神经元计算结果输出至所述函数信息表230并获取转换结果。
[0028] 所述函数信息表230将所述神经元计算结果转换为对应的函数值。
[0029] 本发明第二实施例提供的神经元计算模块中单个神经元计算单元将寻址与计算 合二为一,可同时进行神经元寻址与计算,通过采用寻址与计算一体化设计,突破了固定规 模全联接的布局方式对神经元计算单元数目的限制,同时由于采取了地址匹配的联接方 式,避免了无用联接造成的资源浪费,从而实现柔性拓展以及存储资源的有效利用,增强了 神经网络计算效率。
[0030] 本发明第三实施例提供一种人工神经网络计算核,包括:神经元计算模块、核控制 器。所述神经元计算模块用于进行神经元计算,并在所述核控制器的控制下进入不同神经 元计算结果的发送流程。所述神经元计算模块可以为现有的各种神经元计算模块,本实施 例中以本发明第二实施例提供的神经元计算模块200为例进行说明。具体请参见图3,人工 神经网络计算核10包括神经元计算模块200、核控制器300。
[0031 ] 所述核控制器300通过发出神经元周期N_peri和比较脉冲N_data_comp控制人工 神经网络计算核10进入不同神经元计算结果的发送流程。当进入新的神经元周期时,通过 输出比较脉冲N_data_comp触发神经元计算结果的比较、输出,并等待数据处理结果标志R_ N_data_doneSN_data_null有效以进入新的神经元周期。所述核控制器300在全局时钟 gclk触发下进入新一轮神经元计算结果的发送周期。
[0032]所述神经元计算模块200用于建立神经元间联接关系及进行神经元计算,与本发 明第二实施例提供的神经元计算模块结构与功能基本相同,本实施例中所述发送缓存及接 口 220在全局时钟gclk触发时将各神经元计算单元210的计算结果及地址有效标志进行锁 存,并清零各神经元计算单元210的地址有效标志,此后所述核控制器300发出比较脉冲N_ data_comp,神经元计算模块200接收到所述比较脉WN_data_comp后,读取序号与当前神经 元周期N_peri相同的神经元地址有效标志,若为有效,则将该神经元计算结果送入函数信 息表230并获取转换结果,若为无效,则向核控制器300发出数据无效标志N_data_nul 1,驱 动核控制器300进入下一神经元周期。所述发送缓存及接口 220当判断地址有效标志为有效 时,将函数信息表230的转换结果通过SPI接口输出,同时清零对应神经元计算单元210的累 加器214,当判断地址有效标志为无效时,不对累加器214进行处理,同时发出数据无效标志 N_data_null,驱动核控制器300进入下一神经元周期。
[0033]本发明第三实施例提供的人工神经网络计算核10通过采用寻址与计算一体化设 计思路,可动态配置核中神经元计算单元数目,也可改变单个神经元计算单元的联接数。
[0034]本发明第四实施例提供一种人工神经网络计算核,包括路由器模块、神经元计算 模块、核控制器。所述神经元计算模块用于进行神经元计算,并将神经元计算结果发送至所 述路由器模块。所述神经元计算模块可以为现有的各种神经元计算模块,本实施例中以本 发明第二实施例提供的神经元计算模块200为例进行说明。具体请参见图4,人工神经网络 计算核20包括路由器模块100、神经元计算模块200、核控制器300。
[0035]本实施例与第三实施例区别在于增加了路由器模块100,现对该路由器模块100进 行详细说明。
[0036]所述路由器模块100用于接收并解析外部输入数据,并将解析后的地址信息和轴 突值信息送入对应的神经元计算模块200;以及将所述神经元计算模块200输出的神经元计 算结果发送至目标地址,并向核控制器300发送本帧数据处理完成标志。
[0037]所述路由器模块100进一步包括:路由控制器110、核间交互缓存及接口、路由信息 表160、神经元-路由器接口 170。其中所述核间交互缓存及接口进一步包括上左下右四个发 送接收缓存及接口,即上发送接收缓存及接口 120、左发送接收缓存及接口 130、下发送接收 缓存及接口 140、右发送接收缓存及接口 150。实际应用中发送接收缓存及其数据接口的数 目可以根据具体需求而做适当的变化。所述路由器模块100与外部数据交互采用串行外设 接口(Serial Peripheral Interface,SPI)。上左下右四个发送接收缓存为核间交互缓存 区。所述神经元-路由器接口 170用于接收神经元计算模块200输出的神经元计算结果,本实 施例中采用SPI接口,仅能存储一帧计算结果。
[0038]所述路由器模块100接收数据时,外部接口(包括相邻路由器模块的核间交互缓存 及接口以及本地神经元接口)向该路由器模块100发送缓存非空标志,提示本地路由器模块 100进行数据接收。此时外部接口工作于从模式,本地接口工作于主模式。若本地路由器模 块100中对应方向接收缓存未满,则按照先入先出规则发动一帧数据接收,并向路由控制器 110发出接收缓存非空标志,提示路由控制器110对接收缓存中数据帧进行处理;若本地路 由器模块100中对应方向接收缓存已满,则不进行数据接收,外部发送缓存等待数据发送。
[0039] 所述路由器模块100发送数据时,路由控制器110先读取发送缓存状态。若发送缓 存未满,则将待发送数据帧按照先入先出规则写入发送缓存,同时向外部接口送出发送缓 存非空标志,等待外部接收;若发送缓存已满,则路由控制器110跳过此帧数据发送,读取下 一帧数据并解析。
[0040] 所述路由控制器110是路由数据解析及传输控制的核心。其按照上发送接收缓存 及接口 120,左发送接收缓存及接口 130,下发送接收缓存及接口 140,右发送接收缓存及接 口 150,神经元-路由器接口 170的顺序依次读取各接收缓存是否为空。若为非空,则读取一 帧数据进行解析;若为空,则跳至下一方向接收缓存。
[0041]请参见图5,该图为人工神经网络计算核核间传输数据帧格式,即核间交互缓存中 存储的一帧数据格式,该数据帧包括:目标核地址字段、核内神经元计算模块地址字段、轴 突地址字段、神经元输出字段。具体在本实施例中,所述目标核地址字段进一步包括:左右 方向目标核地址字段、上下方向目标核地址字段。其中,左右方向目标核地址字段、上下方 向目标核地址字段分别为8比特有符号数,最高位为0代表向左或向上,最高位为1代表向右 或向下;核内神经元计算模块地址字段为4比特无符号数,代表某个核内神经元计算模块; 轴突地址字段为8比特无符号数,用于神经元计算模块内神经元计算单元进行地址匹配;神 经元输出字段分为8比特无符号数。所述神经元-路由器接口 170存储的数据帧格式仅包括 图5数据帧中的神经元输出字段。单个人工神经网络计算核发出数据帧所能到达的网络位 置、核中神经元计算模块数目及单个神经元计算单元所能联接的轴突地址数目上限由该核 间传输数据帧确定。需要说明的是,本实施例只是给出了一种具体的数据帧形式,实际应用 中数据帧中各字段的顺序及比特数可做适当调整。
[0042]所述路由控制器110读取核间交互缓存一帧数据后进行数据解析。若为发送至本 地的数据帧,即数据帧的左右方向目标核地址、上下方向目标核地址均为〇,则去掉数据帧 中的目标核地址字段,同时解析核内神经元计算模块地址并将轴突地址和神经元输出两字 段送入目标神经元计算模块中,而后清除接收缓存中被解析数据帧;若不为发送至本地的 数据帧,则按照先左右,后上下的顺序将目标核地址减1,而后检测目标发送缓存是否为满, 若为满则不作处理同时跳至读取下一方向接收缓存,若不为满则将处理后的数据帧送入发 送缓存中等待发送,同时清除接收缓存中被解析数据帧。
[0043] 所述路由控制器110读取神经元-路由器接口 170接收缓存一帧数据后,以核控制 器300输出的当前神经元周作路由信息表160的输入,提取路由信息表160中存储 的不同神经元目标地址,并将地址与读取的神经元输出进行组帧,同时检测目标发送缓存 是否为满,若为满则不作处理同时跳至读取下一方向接收缓存,若不为满则将处理后的数 据帧送入发送缓存中等待发送,同时清除神经元-路由器接口 170接收缓存中被解析数据帧 并向核控制器300发送本帧数据处理完成标志R_N_data_done,驱动核控制器300进入下一 神经元周期。所述神经元-路由器接口 170在神经元计算模块200发出数据有效标志N_data_ en后,若接收缓存未满则启动接收一帧数据,若接收缓存已满则保持接收等待。神经元计算 模块200在向神经元-路由器接口 170成功发送一帧数据后清空数据有效标志N_data_en。
[0044] 所述路由信息表160中存储的是不同神经元的目标地址,输入为当前神经元周期, 输出为对应的目标地址。
[0045] 所述人工神经网络计算核20运行流程包括路由器数据收发和神经元计算模块计 算结果发送两个部分,请参见图6,所述路由器数据收发包含以下步骤: S101,路由器模块100等待接收神经网络数据包; S102,路由器模块100接收到神经网络数据包并解析; 5103, 路由器模块100判断接收到的神经网络数据包是否发往本地,若是则执行S105, 若否则执行S104; 5104, 按先左右后上下的顺序将该神经网络数据包中目标核地址减1后送入发送缓存, 返回S101; S105,将该神经网络数据包中的轴突地址和轴突值送入神经元计算模块200,该神经网 络数据包被传递至每个神经元计算单元; 5106, 每个神经元计算单元判断所述轴突地址是否与自身存储地址匹配,若是则执行 S107,若否则返回S101; 5107, 神经元计算单元输出与所述轴突地址对应的权重值,将该权重值与所述轴突值 相乘后送入累加器,返回S101。
[0046] 请参见图7,所述神经元计算模块200计算结果发送包含以下步骤: S201,等待全局时钟触发生效; 5202, 判断全局时钟触发是否生效,若是则执行S203,若否则返回S201; 5203, 将各神经元计算模块累加器结果锁存至对应的发送缓存及接口; 5204, 判断各发送缓存及接口是否接收到对应的核控制器发出的比较脉冲,若是则执 行S205,若否则返回S204; 5205, 读取地址数值与当前神经元周期相同的神经元计算模块发送缓存中及接口中的 数据; S206,判断该数据是否有效,若是则执行S207,若否则执行S215; S207,将该数据输入函数查找表并输出结果; 5208, 判断该输出结果是否有效,若是则执行S209,若否则执行S215; 5209, 将该输出结果送至缓存等待路由器接收,清零对应神经元累加器; 5210, 等待路由器空闲,若路由器空闲则执行S211,若路由器不空闲则返回S210; S211,路由器模块启动一次神经元计算模块缓存数据接收; 5212, 判断神经元计算模块发出信息是否处理完成,若是则执行S213,若否则返回 S212; 5213, 路由器模块向核控制器发信息处理完成脉冲; 5214, 核控制器判断是否最后一个神经元周期,若是则返回S201,若否则执行S216; 5215, 向核控制器发信息数据无效脉冲; 5216, 核控制器驱动神经元周期更替,发出比较脉冲,返回S204。
[0047]本发明第四实施例提供的人工神经网络计算核20采用单路由器单神经元计算模 块的工作方式,通过路由器模块100实现多个人工神经网络计算核20的组网。
[0048]本发明第五实施例提供一种人工神经网络计算核,包括一路由器模块、多个神经 元计算模块、多个核控制器,所述多个神经元计算模块与所述多个核控制器一一对应。本实 施例与第三实施例区别在于,第三实施例为单路由单神经元计算模块的配置,而本实施例 为单路由多神经元计算模块的配置,即单一路由器模块可与多个神经元计算模块建立联 接。
[0049]本实施例具体以单路由四神经元计算模块为例进行说明,实际应用中经元计算模 块的数量可以根据具体需求而做适当的变化。请参见图8,一种人工神经网络计算核30,包 括路由器模块400、第一神经元计算模块200a、第一核控制器300a、第二神经元计算模块 200b、第二核控制器300b、第三神经元计算模块200c、第三核控制器300c、第四神经元计算 模块200d、第四核控制器300d。
[0050]所述路由器模块400与第三实施例中的路由器模块100区别在于,路由器模块400 包括了多个神经元-路由器接口,即第一神经元-路由器接口 471、第二神经元-路由器接口 472、第三神经元-路由器接口 473、第四神经元-路由器接口 474。每组核控制器、神经元计算 模块、神经元-路由器接口分别同路由控制器410按实施例三中单路由单神经元计算模块的 配置方式建立联接。
[0051]本发明第四实施例提供的人工神经网络计算核30中一个路由器模块对应多个神 经元计算模块,若该多个神经元计算模块具有相同或相近的功能,可以实现聚类计算,可降 低路由器节点数、提高传输带宽。实现计算核的柔性拓展以及存储资源的有效利用,以增强 计算核的适应性,避免额外的资源开销。
[0052]请参见图9,本发明进一步提供一种人工神经网络计算系统,包括多个人工神经网 络计算核40,该多个人工神经网络计算核40通过路由器模块100实现多个方向的相互联接。 实施例中仅给出了包含有9个人工神经网络计算核40的情形,且每一人工神经网络计算核 40包含有4个发送接收缓存及接口,实现上下左右4个方向的相互联接。可以理解,实际应用 中人工神经网络计算核的数目及每一人工神经网络计算核中包含的发送接收缓存及接口 数目可以依据实际的应用情形而改变。
[0053]本实施例提供了一种通过将多个人工神经网络计算核40组网形成的人工神经网 络计算系统,实现了多人工神经网络计算核40的网络连接。
[0054]另外,本领域技术人员还可以在本发明精神内做其它变化,当然,这些依据本发明 精神所做的变化,都应包含在本发明所要求保护的范围之内。
【主权项】
1. 一种人工神经网络计算核,其特征在于,包括:一路由器模块、至少一神经元计算模 块、至少一核控制器,所述神经元计算模块与所述核控制器一一对应; 所述路由器模块,用于接收并解析外部输入数据,并将解析后的地址信息和轴突值信 息送入对应的神经元计算模块; 所述神经元计算模块,用于进行神经元计算,并将神经元计算结果发送至所述路由器 模块; 所述路由器模块,还用于将所述神经元计算模块输出的神经元计算结果发送至目标地 址,并向该神经元计算模块对应的核控制器发送本帧数据处理完成标志; 所述核控制器,用于在接收到所述本帧数据处理完成标志后进入下一神经元周期。2. 如权利要求1所述的人工神经网络计算核,其特征在于,该人工神经网络计算核包括 一路由器模块、N个神经元计算模块、N个核控制器,所述N个神经元计算模块与所述N个核控 制器一一对应,N为大于1的整数。3. 如权利要求1所述的人工神经网络计算核,其特征在于, 所述核控制器,还用于向自身对应的神经元计算模块发出神经元周期和比较脉冲; 所述神经元计算模块,还用于在接收到自身对应的核控制器发出的比较脉冲后,读取 地址数值与当前神经元周期相同的神经元地址有效标志,若为有效则将该神经元计算结果 进行转换,若为无效则向自身对应的核控制器发出数据无效标志; 所述神经元计算模块,还用于判断转换后的神经元计算结果是否有效,若为有效则将 该换后的神经元计算结果发送至所述路由器模块,若为无效则向自身对应的核控制器发出 数据无效标志; 所述核控制器,还用于在接收到自身对应的神经元计算模块发送的数据无效标志后进 入下一神经元周期。4. 如权利要求3所述的人工神经网络计算核,其特征在于,所述神经元计算模块包括多 个神经元计算单元、发送缓存及接口、函数信息表; 所述多个神经元计算单元,接收并解析所述路由器模块发送的地址信息和轴突值信 息,若接收到的地址信息与神经元计算单元自身存储的地址信息匹配,则该神经元计算单 元对该接收到的信息进行神经网络计算,并将计算结果及地址有效标志发送至所述发送缓 存及接口,若接收到的地址信息与神经元计算单元自身存储的地址信息不匹配,则不对该 接收到的信息进行神经网络计算; 所述发送缓存及接口,用于在外部全局时钟触发时将所述多个神经元计算单元的计算 结果及地址有效标志进行锁存,并清零所述多个神经元计算单元的地址有效标志;以及在 接收到自身对应的核控制器发出的比较脉冲后,读取序号与当前神经元周期相同的神经元 地址有效标志,若为有效,所述发送缓存及接口将该神经元计算结果送入所述函数信息表 并获取转换结果,若为无效,所述发送缓存及接口向自身对应的核控制器发出数据无效标 志; 所述函数信息表,将所述神经元计算结果转换为对应的函数值; 所述发送缓存及接口,还用于判断所述转换结果是否有效,若为有效,所述发送缓存及 接口将该转换结果输出,若为无效,所述发送缓存及接口向自身对应的核控制器发出数据 无效标志。5. 如权利要求4所述的人工神经网络计算核,其特征在于,所述路由器模块进一步包 括:神经元-路由器接口、路由控制器、路由信息表、核间交互缓存及接口; 所述神经元-路由器接口,用于接收所述神经元计算模块输出的神经元计算结果; 所述路由控制器,用于读取所述神经元-路由器接口输出的的神经元计算结果,以及将 与该神经元计算模块对应的核控制器输出的当前神经元周期发送至所述路由信息表; 所述路由信息表,用于存储不同神经元的目标地址,将所述路由控制器输入的当前神 经元周期转换为对应的目标地址; 所述路由控制器,还用于将所述路由信息表输出的目标地址与所述神经元计算结果组 成第一数据帧,并将该第一数据帧送入所述核间交互缓存及接口; 所述核间交互缓存及接口,用于发送所述第一数据帧。6. 如权利要求5所述的人工神经网络计算核,其特征在于,所述第一数据帧包括: 目标核地址字段,存储目标人工神经网络计算核地址; 核内神经元计算模块地址字段,存储目标人工神经网络计算核内目标神经元计算模块 地址; 轴突地址字段,存储目标神经元计算模块内目标神经元计算单元地址; 神经元输出字段,存储神经元计算结果。7. 如权利要求6所述的人工神经网络计算核,其特征在于, 所述核间交互缓存及接口,还用于接收外部神经网络数据包; 所述路由控制器,还用于解析所述外部神经网络数据包,若所述外部神经网络数据包 为发送至本地的数据包,则将该外部神经网络数据包中的轴突地址和轴突值送入目标神经 元计算模块,若所述外部神经网络数据包不为发送至本地的数据包,则对该外部神经网络 数据包中的目标核地址进行更新,并将该更新后的外部神经网络数据包送入所述核间交互 缓存及接口。8. 如权利要求7任一权利要求所述的人工神经网络计算核,其特征在于,所述神经元-路由器接口采用串行外设接口,该串行外设接口作为发送方时工作于从模式,作为接收方 时工作于主模式。9. 如权利要求8任一权利要求所述的人工神经网络计算核,其特征在于,所述核间交互 缓存及接口采用串行外设接口,该串行外设接口作为发送方时工作于从模式,作为接收方 时工作于主模式。10. -种如权利要求9所述的人工神经网络计算核的数据接收方法,其特征在于,包括 以下步骤: S101,所述路由器模块等待接收神经网络数据包; 5102, 所述路由器模块接收到神经网络数据包并解析; 5103, 所述路由器模判断接收到的神经网络数据包是否发往本地,若是则执行S105,若 否则执行S104; 5104, 按先左右后上下的顺序将该神经网络数据包中目标核地址减1后送入发送缓存, 返回S101; 5105, 将该神经网络数据包中的轴突地址和轴突值送入神经元计算模块,该神经网络 数据包被传递至每个神经元计算单元; 5106, 每个神经元计算单元判断所述轴突地址是否与自身存储地址匹配,若是则执行 S107,若否则返回S101; 5107, 神经元计算单元输出与所述轴突地址对应的权重值,将该权重值与所述轴突值 相乘后送入累加器,返回S101。11. 一种如权利要求9所述的人工神经网络计算核的数据发送方法,其特征在于,包括 以下步骤: S201,等待全局时钟触发生效; 5202, 判断全局时钟触发是否生效,若是则执行S203,若否则返回S201; 5203, 将各神经元计算模块累加器结果锁存至对应的发送缓存及接口; 5204, 判断各发送缓存及接口是否接收到对应的核控制器发出的比较脉冲,若是则执 行S205,若否则返回S204; 5205, 读取地址数值与当前神经元周期相同的神经元计算模块发送缓存中及接口中的 数据; S206,判断该数据是否有效,若是则执行S207,若否则执行S215; S207,将该数据输入函数查找表并输出结果; 5208, 判断该输出结果是否有效,若是则执行S209,若否则执行S215; 5209, 将该输出结果送至缓存等待路由器接收,清零对应神经元累加器; 5210, 等待路由器空闲,若路由器空闲则执行S211,若路由器不空闲则返回S210; S211,路由器模块启动一次神经元计算模块缓存数据接收; 5212, 判断神经元计算模块发出信息是否处理完成,若是则执行S213,若否则返回 S212; 5213, 路由器模块向核控制器发信息处理完成脉冲; 5214, 核控制器判断是否最后一个神经元周期,若是则返回S201,若否则执行S216; 5215, 向核控制器发信息数据无效脉冲; S216,核控制器驱动神经元周期更替,发出比较脉冲,返回S204。
【文档编号】G06N3/063GK106056212SQ201610354206
【公开日】2016年10月26日
【申请日】2016年5月25日
【发明人】马骋, 张震, 王世凯, 李晶, 熊剑平, 朱荣
【申请人】清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1