有效
数据处理装置及人工智能处理器
赵蓉、施路平、裴京、马松辰、王冠睿、马骋
清华大学
摘要
本公开涉及一种数据处理装置及人工智能处理器,所述数据处理装置应用于人工智能处理器的处理核心,该数据处理装置分别连接存储模块和计算模块,包括:地址产生模块,用于根据设定的地址产生方式生成待读取的第一数据的第一地址;数据转换模块,用于根据第一地址从存储模块读取第一数据,对读取到的第一数据进行转换,得到转换后的第二数据;将第二数据发送到计算模块;控制模块,用于根据预设的处理类别及数据类别,确定对应的地址产生方式并控制地址产生模块生成地址。通过根据处理类别及数据类别产生对应数据的地址并进行数据转换,本公开能够加快数据的访问速度,提高神经形态芯片的计算效率。
1.一种数据处理装置,其特征在于,应用于人工智能处理器的处理核心,所述人工智能处理器包括多个处理核心,每个处理核心包括存储模块、计算模块及数据处理装置,所述数据处理装置分别连接所述存储模块和所述计算模块,所述人工智能处理器包括神经形态芯片,所述神经形态芯片采用硬件电路构建神经网络,以模拟大脑的功能;所述处理核心是神经形态芯片的功能核,不同的处理核心能够处理不同的神经网络计算任务,同一处理核心能够在不同的工作周期内执行不同的神经网络计算任务;所述神经网络计算任务包括人工神经网络的计算任务、脉冲神经网络的计算任务,以及人工神经网络和脉冲神经网络的混合神经网络的计算任务;所述数据处理装置用于统一调度不同种类和/或不同精度的数据,将不同种类和/或不同精度的数据统一集中到所述数据处理装置进行处理,其中,所述不同种类和/或不同精度的数据在处理核心之间以及处理器核心内部进行数据交换;所述数据处理装置包括:地址产生模块,用于:根据设定的地址产生方式,生成待读取的第一数据的第一地址;数据转换模块,连接到所述地址产生模块,用于:根据所述第一地址从所述存储模块读取所述第一数据;对读取到的所述第一数据进行转换,得到转换后的第二数据;将所述第二数据发送到所述计算模块,以使所述计算模块进行数据计算,在接收到所述计算模块针对所述第二数据的第二计算结果时,对所述第二计算结果进行转换,得到第一计算结果;将所述第一计算结果发送到所述存储模块的第二地址;控制模块,分别连接到所述地址产生模块及所述数据转换模块,用于:根据预设的处理类别以及所述第一数据的数据类别,动态地确定对应的地址产生方式,并控制所述地址产生模块根据所述地址产生方式生成地址;所述数据转换模块包括精度转换单元,所述精度转换单元用于:根据适应于所述计算模块的数据精度,对所述第一数据进行精度转换,得到所述第二数据,根据适应于所述存储模块的数据精度,对所述第二计算结果进行精度转换,得到所述第一计算结果;所述计算模块包括乘累加器阵列,所述数据转换模块和乘累加器阵列之间设置有用于接收特定精度数据的数据线和用于接收多种精度数据的数据线;所述数据类别包括:向量、矩阵、张量、脉冲信号的时空信息编码中的至少一种,所述处理类别包括:卷积、向量点乘、张量点乘、向量累加、平均池化、数据加载、数据缓存、数据移位、数据变序及数据重组中的至少一种;所述地址产生模块包括:地址产生子模块,所述地址产生子模块包括多个地址产生单元,分别用于生成各种类别的第一数据的第一地址中的起始地址;所述地址产生单元根据不同的处理类别以及所述第一数据的数据类别进行切换,用于执行不同的功能,所述地址产生单元产生的地址通过多路选择器进行选择输出;所述地址产生模块包括:循环计算子模块,所述循环计算子模块包括多级循环计数器,用于根据各种类别的第一数据的维数,循环计算下一次待读取的第一数据的第一地址;对于神经网络计算中的不同步骤,多级循环计数器中的每一级循环对应不同的维度;响应于第一数据为张量,选用多级循环计数器中部分级别的循环,剩余级别的循环用于处理其他神经网络计算任务。
2.根据权利要求1所述的装置,其特征在于,所述地址产生模块还用于:生成所述第一数据的第一计算结果的第二地址;所述数据转换模块还用于:在接收到所述计算模块针对所述第二数据的第二计算结果时,对所述第二计算结果进行转换,得到所述第一计算结果;将所述第一计算结果发送到所述存储模块的第二地址。
3.根据权利要求1所述的装置,其特征在于,所述第一数据包括多种类别,所述地址产生模块包括:地址产生子模块,用于分别生成各种类别的第一数据的第一地址;循环计算子模块,用于根据当前待读取的第一数据的第一地址以及所述地址产生方式,循环计算下一次待读取的第一数据的第一地址。
4.根据权利要求2所述的装置,其特征在于,所述第一数据的数据类别包括:输入图像数据、参数权重数据、偏置数据中的至少一种;所述第一计算结果的数据类别包括膜电位值。
5.根据权利要求2所述的装置,其特征在于,所述精度转换单元还用于:根据适应于所述存储模块的数据精度,对所述第二计算结果进行精度转换,得到所述第一计算结果。
6.根据权利要求4所述的装置,其特征在于,所述数据转换模块还包括重整单元,所述重整单元用于:对不同精度的第一数据进行拼接或拆分处理,得到所述第二数据。
7.根据权利要求1所述的装置,其特征在于,所述控制模块还用于对所述存储模块和/或所述计算模块进行控制;所述控制模块对所述计算模块进行控制,包括:根据预设的处理类别,控制所述计算模块中参与数据计算的乘累加器的组数以及每组乘累加器的数量,以使所述计算模块进行数据计算。
8.一种人工智能处理器,其特征在于,所述人工智能处理器包括多个处理核心,每个处理核心包括存储模块、计算模块及数据处理装置,所述数据处理装置分别连接所述存储模块和所述计算模块,所述人工智能处理器包括神经形态芯片,所述神经形态芯片采用硬件电路构建神经网络,以模拟大脑的功能;所述处理核心是神经形态芯片的功能核,不同的处理核心能够处理不同的神经网络计算任务,同一处理核心能够在不同的工作周期内执行不同的神经网络计算任务;所述神经网络计算任务包括人工神经网络的计算任务、脉冲神经网络的计算任务,以及人工神经网络和脉冲神经网络的混合神经网络的计算任务;所述数据处理装置用于统一调度不同种类和/或不同精度的数据,将不同种类和/或不同精度的数据统一集中到所述数据处理装置进行处理,其中,所述不同种类和/或不同精度的数据在处理核心之间以及处理器核心内部进行数据交换;所述数据处理装置包括:地址产生模块,用于:根据设定的地址产生方式,生成待读取的第一数据的第一地址;数据转换模块,连接到所述地址产生模块,用于:根据所述第一地址从所述存储模块读取所述第一数据;对读取到的所述第一数据进行转换,得到转换后的第二数据;将所述第二数据发送到所述计算模块,以使所述计算模块进行数据计算,在接收到所述计算模块针对所述第二数据的第二计算结果时,对所述第二计算结果进行转换,得到第一计算结果;将所述第一计算结果发送到所述存储模块的第二地址;控制模块,分别连接到所述地址产生模块及所述数据转换模块,用于:根据预设的处理类别以及所述第一数据的数据类别,动态地确定对应的地址产生方式,并控制所述地址产生模块根据所述地址产生方式生成地址;所述数据转换模块包括精度转换单元,所述精度转换单元用于:根据适应于所述计算模块的数据精度,对所述第一数据进行精度转换,得到所述第二数据,根据适应于所述存储模块的数据精度,对所述第二计算结果进行精度转换,得到所述第一计算结果;所述计算模块包括乘累加器阵列,所述数据转换模块和乘累加器阵列之间设置有用于接收特定精度数据的数据线和用于接收多种精度数据的数据线;所述数据类别包括:向量、矩阵、张量、脉冲信号的时空信息编码中的至少一种,所述处理类别包括:卷积、向量点乘、张量点乘、向量累加、平均池化、数据加载、数据缓存、数据移位、数据变序及数据重组中的至少一种;所述地址产生模块包括:地址产生子模块,所述地址产生子模块包括多个地址产生单元,分别用于生成各种类别的第一数据的第一地址中的起始地址;所述地址产生单元根据不同的处理类别以及所述第一数据的数据类别进行切换,用于执行不同的功能,所述地址产生单元产生的地址通过多路选择器进行选择输出;所述地址产生模块包括:循环计算子模块,所述循环计算子模块包括多级循环计数器,用于根据各种类别的第一数据的维数,循环计算下一次待读取的第一数据的第一地址;对于神经网络计算中的不同步骤,多级循环计数器中的每一级循环对应不同的维度;响应于第一数据为张量,选用多级循环计数器中部分级别的循环,剩余级别的循环用于处理其他神经网络计算任务。




