CN112418419B - 一种面向神经网络处理的按优先级调度的数据输出电路结构 - Google Patents
一种面向神经网络处理的按优先级调度的数据输出电路结构 Download PDFInfo
- Publication number
- CN112418419B CN112418419B CN202011306945.8A CN202011306945A CN112418419B CN 112418419 B CN112418419 B CN 112418419B CN 202011306945 A CN202011306945 A CN 202011306945A CN 112418419 B CN112418419 B CN 112418419B
- Authority
- CN
- China
- Prior art keywords
- unit module
- bus
- data
- unit
- priority
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Multi Processors (AREA)
Abstract
本发明属于集成电路设计领域,具体为一种面向神经网络处理的按优先级调度的数据输出电路结构,整体结构主要由四部分组成:用于决定水平方向运算单元数据传输优先级的X‑bus单元模块,用于决定垂直方向运算单元数据传输优先级的Y‑bus单元模块,用于参数填充的后缀配置单元模块,用于与存储单元交互的地址计算单元模块。该电路采用两级总线形式,预先在两级总线上设置数据传输优先级,规范数据传输顺序的同时避免数据堵塞和总线闲置。同时为提升数据复用度和数据访存的效率,本发明设计了更好服务于四维地址计算的地址计算单元,通过内部历史信息表保证数据的有序写回。本发明能够有效的提升神经网络处理中的输出结果传输效率。
Description
技术领域
本发明属于集成电路设计领域,具体涉及一种面向神经网络处理的按优先级调度的数据输出电路结构。
背景技术
神经网络算法在计算机视觉、语音识别以及机器人控制等重要领域都得到了良好应用,但是各类应用也对神经网络算法的精度和复杂度不断提出更高的要求,导致算法的实现面临一系列挑战性问题。最近的神经网络处理器架构研究表明,基于阵列并行的空间型处理器架构,搭配行固定数据流策略,并搭配特定的数据传输通路,能够很好的利用神经网络算法本身内部的高并行性和高复用度,从而大大减少数据的访存次数,提升处理器整体能效比。
因片上存储空间有限,神经网络处理器会产生大量的中间结果,数据输出通路的硬件实现关键在于如何高效写回中间结果的同时避免数据竞争导致电路阻塞和因总线闲置导致的资源浪费问题。对于数据竞争而言,可以采用预先为所有的运算单元设置数据传输优先级,在一个周期或者多个周期内遍历所有的运算单元,按照优先级设置写回中间结果,但是随着阵列规模的增大,这种直接遍历的时钟延迟会很大。另一种方法是通过预先设定数据传输优先级搭配两级总线形式,对运算阵列进行切割,对两级总线来说,拥有更快的运算单元遍历速度,减少时钟延迟,搭配优先级的设置能够快速定位需要写回中间结果的运算单元,大大提升数据传输效率。本设计提出了基于行固定数据流策略,预先设置运算单元数据传输优先级,采用两级总线结构,完成输出数据的高效传输。
发明内容
为了克服现有技术的不足,本发明的目的在于提供一种面向神经网络处理的按优先级调度的数据输出电路结构,预先为各个运算单元配置数据传输优先级,采用两级总线结构,完成输出数据的有序写回。
本发明提出的一种面向神经网络处理的按优先级调度的数据输出电路结构,包括X-bus单元模块,Y-bus单元模块,后缀配置单元模块和地址计算单元模块;其中:
X-bus单元模块,沿水平方向为该行上的卷积运算单元设置传输优先级,按照优先级接受运算单元的中间结果;
Y-bus单元模块,沿垂直方向为所有与之连接的X-bus设置传输优先级,按照传输优先级传输来自X-bus上的中间结果;
后缀配置单元模块,用于在输出结果数据包中添加标识号和坐标信息,用于后续四维地址的计算;
地址计算单元模块,服务于更适用于神经网络计算和软件开发人员的四维访存地址的计算;
运算单元与X-bus单元模块之间设有后缀配置单元模块,该后缀配置单元模块输入来自运算单元的中间结果,输出以数据包的形式传输;X-bus单元模块与Y-bus单元模块之间设有后缀配置单元模块,该后缀配置单元模块输入为来自X-bus的数据包,输出会对输入的数据包进行进一步的填充;
首先运算单元输入为来自运算阵列的中间结果,经过与之连接的后缀配置单元添加x坐标和列标识号;每个时钟周期内,X-bus单元模块都会遍历所有的运算单元,一旦运算单元产生中间结果,按照数据优先级高低接受运算单元的中间结果,并将中间结果发送到与之连接的后缀配置单元模块,添加y坐标和行标识号;如果多行卷积运算单元同时产生结果,Y-bus单元模块按照预先设置的数据优先级传输X-bus上的中间结果数据包,并将数据包发送到地址计算单元模块得到四维段地址,最终完成输出数据的传输。
本发明中,所述地址计算单元模块包括记录通道和宽度方向地址的历史信息表单元和通过运算单元坐标信息和ID信息得到高度方向地址和通道方向起始地址的翻译单元,其中历史信息表单元内部包含168个寄存器和一个168路多路选择器构成,每次由输入的坐标信息选中需要更新的寄存器,翻译单元包含四路选择器,每路由两个加法器和一个乘法器组成,其功能为乘累加,用作运算单元坐标信息和ID信息的地址转换。
本发明中,运算单元将计算得到的中间结果发送到与之连接的后缀配置单元模块,在其中添加x坐标和列标识号信息,X-bus模块根据数据传输优先级收集该行上的中间结果,并发送到与之连接的后缀配置单元模块,在其中添加y坐标和行标识号信息,Y-bus根据传输优先级选定最终的中间结果数据包发送到地址计算模块,获得中间结果的四维段地址,最终写回到存储单元。通过Y-bus与X-bus相互配合,完成了数据的有序写回,避免因数据竞争带来的各种问题,包括运算单元中间结果始终无法写回导致运算通路堵塞或者运算单元未产生中间结果导致总线资源浪费,提升了数据写回效率。
本发明的有益效果在于:本发明采用两级总线形式,预先在两级总线上设置数据传输优先级,规范数据传输顺序的同时避免数据堵塞和总线闲置。同时为提升数据复用度和数据访存的效率,本文设计了更好服务于四维地址计算的地址计算单元,通过内部历史信息表保证数据的有序写回。本发明能够有效的提升神经网络处理中的输出结果传输效率。
附图说明
图1为按优先级调度的数据输出电路结构的基本框图。
图2为位于运算单元和X-bus单元模块之间的后缀配置单元输出数据包格式。
图3为X-bus单元模块结构图。
图4为位于Y-bus单元模块和X-bus单元模块之间的后缀配置单元输出数据包格式。
图5为Y-bus单元模块结构图。
图6为地址计算单元模块结构图。
图7为历史信息表单元结构图。
图8为高度方向地址计算单元电路结构图。
图9为本发明的结构示意图。
图中标号:1为X-bus单元模块,2为Y-bus单元模块,3为后缀配置单元模块,4为地址计算单元模块。
具体实施方式
下面通过实施例结合附图进一步说明本发明。
实施例1:按优先级调度的数据输出电路结构基本框图如图1所示。该设计的工作流程如下:输入为来自运算阵列的中间结果,经过与之连接的后缀配置单元添加x坐标和列标识号。每个时钟周期内,X-bus单元模块1都会遍历所有的运算单元,一旦运算单元产生中间结果,按照数据优先级高低接受运算单元的中间结果,并将中间结果发送到与之连接的后缀配置单元模块3,添加y坐标和行标识号。如果多行卷积运算单元同时产生结果,Y-bus单元模块2按照预先设置的数据优先级传输X-bus上的中间结果数据包,并将数据包发送到地址计算单元模块4得到四维段地址,最终完成输出数据的传输。
位于运算单元和X-bus单元之间的后缀配置单元模块3,输入为来自运算单元的中间结果,输出以数据包的形式传输,该数据包格式如图2所示。
X-bus单元模块1如图3所示,其中输入数据包Packet是数据数组,X代表此运算单元的x坐标轴,S代表预先设置的数据传输优先级。多个输入数据包经过选择器得到最终的输出的数据包和坐标信息。
位于X-bus单元模块1和Y-bus单元模块2之间的后缀配置单元模块3,输入为来自X-bus的数据包,输出会对输入的数据包进行进一步填充,填充后的数据包格式如图4所示。
Y-bus单元模块2如图5所示,其中输入数据包Packet来自于X-bus模块单元和Y-bus单元模块2的后缀配置单元模块3,S代表预先设置的数据传输优先级。多个输入数据包经过选择得到最终的数据包。
为减少中间结果写回到控制单元带来的延迟开销,本文的数据输出电路与存储心疼直接通过四维地址进行交互,该功能由电路的地址计算单元负责,共有两部分组成,分别为标识号信息转移单元和历史信息记录表,如图6所示。其中到通道地址的计算分为两个部分,分别是数据写回地址和运算单元的基地址。基地址的运算需要用到部分映射参数和后缀配置单元中的标识号数值。数据写回地址依赖及地址与当前数据包的地址进行累加,得益于运算单元运算的规整性,数据包的写回地址具有规律性。因此本设计引入历史信息表单元,通过数据包中的坐标信息选中寄存器,根据写回次数自动加一就可以计算得到当前数据的通道地址,其结构如图7所示。高度方向地址与映射参数,输出激励和数据输出电路的列标识号数值密切相关,该部分的电路如图8所示。宽度方向地址的计算与行固定数据流策略息息相关,所有的卷积核完成累加之后滑动窗口,产生下一位置的中间结果。
Claims (1)
1.一种面向神经网络处理的按优先级调度的数据输出电路,其特征在于:电路结构包括X-bus单元模块,Y-bus单元模块,后缀配置单元模块和地址计算单元模块;其中:
X-bus单元模块,沿水平方向为行的卷积运算单元设置传输优先级,按照优先级接受运算单元的中间结果;
Y-bus单元模块,沿垂直方向为所有与之连接的X-bus设置传输优先级,按照传输优先级传输来自X-bus上的中间结果;
后缀配置单元模块,用于在输出结果数据包中添加标识号和坐标信息,用于后续四维地址的计算;
地址计算单元模块,服务于更适用于神经网络计算和软件开发人员的四维访存地址的计算;
运算单元与X-bus单元模块之间设有后缀配置单元模块,该后缀配置单元模块输入来自运算单元的中间结果,输出以数据包的形式传输;X-bus单元模块与Y-bus单元模块之间设有后缀配置单元模块,该后缀配置单元模块输入为来自X-bus的数据包,输出会对输入的数据包进行进一步的填充;
首先运算单元输入为来自运算阵列的中间结果,经过与之连接的后缀配置单元添加x坐标和列标识号;每个时钟周期内,X-bus单元模块都会遍历所有的运算单元,一旦运算单元产生中间结果,按照数据优先级高低接受运算单元的中间结果,并将中间结果发送到与之连接的后缀配置单元模块,添加y坐标和行标识号;如果多行卷积运算单元同时产生结果,Y-bus单元模块按照预先设置的数据优先级传输X-bus上的中间结果数据包,并将数据包发送到地址计算单元模块得到四维段地址,最终完成输出数据的传输;
所述地址计算单元模块包括记录通道和宽度方向地址的历史信息表单元和通过运算单元坐标信息和ID信息得到高度方向地址和通道方向起始地址的翻译单元,其中历史信息表单元内部包含168个寄存器和一个168路多路选择器构成,每次由输入的坐标信息选中需要更新的寄存器,翻译单元包含四路选择器,每路由两个加法器和一个乘法器组成,其功能为乘累加,用作运算单元坐标信息和ID信息的地址转换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011306945.8A CN112418419B (zh) | 2020-11-20 | 2020-11-20 | 一种面向神经网络处理的按优先级调度的数据输出电路结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011306945.8A CN112418419B (zh) | 2020-11-20 | 2020-11-20 | 一种面向神经网络处理的按优先级调度的数据输出电路结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112418419A CN112418419A (zh) | 2021-02-26 |
CN112418419B true CN112418419B (zh) | 2022-10-11 |
Family
ID=74774655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011306945.8A Active CN112418419B (zh) | 2020-11-20 | 2020-11-20 | 一种面向神经网络处理的按优先级调度的数据输出电路结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112418419B (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7007128B2 (en) * | 2004-01-07 | 2006-02-28 | International Business Machines Corporation | Multiprocessor data processing system having a data routing mechanism regulated through control communication |
US7512729B2 (en) * | 2005-03-31 | 2009-03-31 | Intel Corporation | Method and apparatus for a high efficiency two-stage rotating priority arbiter with predictable arbitration latency |
CN107341547B (zh) * | 2016-04-29 | 2021-04-20 | 中科寒武纪科技股份有限公司 | 一种用于执行卷积神经网络训练的装置和方法 |
CN107220200B (zh) * | 2017-06-15 | 2020-02-14 | 西安微电子技术研究所 | 基于动态优先级的时间触发以太网数据管理系统及方法 |
CN108416434B (zh) * | 2018-02-07 | 2021-06-04 | 复旦大学 | 针对神经网络的卷积层与全连接层进行加速的电路结构 |
CN111343069A (zh) * | 2020-04-15 | 2020-06-26 | 联合华芯电子有限公司 | 基于机器人感知系统的分布式控制通信总线及机器人 |
CN111882051B (zh) * | 2020-07-29 | 2022-05-20 | 复旦大学 | 一种面向神经网络处理的全局广播数据输入电路 |
-
2020
- 2020-11-20 CN CN202011306945.8A patent/CN112418419B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112418419A (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108108809B (zh) | 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法 | |
CN110458279B (zh) | 一种基于fpga的二值神经网络加速方法及系统 | |
CN104899182B (zh) | 一种支持可变分块的矩阵乘加速方法 | |
CN111897579B (zh) | 图像数据处理方法、装置、计算机设备和存储介质 | |
US11775430B1 (en) | Memory access for multiple circuit components | |
CN111738433B (zh) | 一种可重配置的卷积硬件加速器 | |
CN110096310B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN112487750B (zh) | 一种基于存内计算的卷积加速计算系统及方法 | |
CN117933314A (zh) | 处理装置、处理方法、芯片及电子装置 | |
CN110119807B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN112905530A (zh) | 片上架构、池化计算加速器阵列、单元以及控制方法 | |
CN111610963B (zh) | 芯片结构及其乘加计算引擎 | |
CN112418419B (zh) | 一种面向神经网络处理的按优先级调度的数据输出电路结构 | |
CN110457648A (zh) | 一种用于lu分解的脉动阵列结构的实现方法 | |
CN111047005A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111045959B (zh) | 一种基于存储优化的复杂算法变量映射方法 | |
CN111260070B (zh) | 运算方法、装置及相关产品 | |
Xiao et al. | FGPA: Fine-grained pipelined acceleration for depthwise separable CNN in resource constraint scenarios | |
Wu et al. | Efficient inference of large-scale and lightweight convolutional neural networks on FPGA | |
CN113869507B (zh) | 一种基于脉动阵列的神经网络加速器卷积计算装置与方法 | |
CN117291240B (zh) | 卷积神经网络加速器及电子设备 | |
JP2003244190A (ja) | データフロー制御スイッチ用プロセッサ及びデータフロー制御スイッチ | |
CN112330524B (zh) | 一种在图像跟踪系统中快速实现卷积的装置和方法 | |
CN112230884B (zh) | 目标检测硬件加速器及加速方法 | |
CN111124497B (zh) | 运算方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |