CN113504893B - 一种智能芯片架构和高效处理数据的方法 - Google Patents
一种智能芯片架构和高效处理数据的方法 Download PDFInfo
- Publication number
- CN113504893B CN113504893B CN202110838224.XA CN202110838224A CN113504893B CN 113504893 B CN113504893 B CN 113504893B CN 202110838224 A CN202110838224 A CN 202110838224A CN 113504893 B CN113504893 B CN 113504893B
- Authority
- CN
- China
- Prior art keywords
- bus
- data
- unit
- control unit
- chip architecture
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Advance Control (AREA)
Abstract
本发明公开了一种智能芯片架构,包括:模拟转数字单元、整型转浮点数单元、浮点运算单元、存储单元、算术逻辑单元、数据传输控制单元以及总线阵列控制单元;模拟转数字单元与整型转浮点数单元连接;整型转浮点数单元与总线阵列控制单元连接,并与数据传输控制单元连接;浮点运算单元与总线阵列控制单元连接;存储单元与总线阵列控制单元连接,并与数据传输控制单元连接;算术逻辑单元与数据传输控制单元连接;数据传输控制单元还与总线阵列控制单元连接。本发明减少总线的等待周期,降低总线拥塞,提高数据处理的吞吐量和数据处理效率;双数据总线和双地址总线的模式可以有效降低智能芯片架构的流水线长度,简化架构设计,且消耗的时钟周期变短。
Description
技术领域
本发明属于计算机技术领域,具体涉及一种智能芯片架构和高效处理数据的方法。
背景技术
MCU(Microcontroller Unit,微控制单元),又可简称μC,或被称为单芯片处理器架构(Single Chip Microcontroller),通过将ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、CPU(central processing unit,中央处理器)、I/O(Input/Output,输入输出接口)集合在同一芯片中,为不同的应用场合做不同组合控制,以形成不同的智能芯片架构。现有的智能芯片架构主要存在以下缺陷:
(1)在数字信号处理中,为了保证计算的精度,或者算法的收敛,往往都需要用到浮点运算;而随着多媒体数字技术的发展和人工智能的兴起,MCU对于浮点运算的需求逐渐增加,例如在MP3和无人机等领域中使用的数字滤波和图像压缩,以及在人工智能领域中的训练学习等,都需要用到大量的浮点运算。
在做浮点乘法时,整形和浮点型数据是不能进行计算的,需要把整型数据转换成浮点型数据,在通用的MCU设计中,一般整型数据转浮点型数据都需要软件来实现,而这可能需要几十条指令周期来实现,对于实时性要求比较高的应用场景,可能会导致信号处理抖动或延迟,从而导致输出信号失真,例如在麦克风阵列中对多输入的音频进行实时采集和数字滤波,为了实现实时性的目的,往往需要MCU具有较高的运行频率,而芯片的功耗和频率的平方成正比,一味增加芯片的主频会导致芯片的功耗较高。
此外,对于浮点乘法运算,也有采用定点乘法的方式和利用单指令硬件浮点乘法器的方式。其中,定点乘法的方式存在数据的表示范围和精度都受不同程度的影响,通用性不强的缺陷;而单指令硬件浮点乘法器的方式存在需要将数据送入到处理器内核逻辑处理单元的寄存器中、需要加入多级流水线架构和多条数据总线、通用性较差以及成本较高的缺陷。
(2)处理器数据运算可分为单目运算、双目运算和三目运算。现有的MCU通常采用单数据总线和地址总线设计,在存储器和算术逻辑单元间一次只能搬运一目数据,芯片通过流水线架构设计方式可以依次搬运双目数据到达算术逻辑单元进行运算,从而实现单指令周期的双目运算。然而,当需要将数据回写内存或访问内存数据的时候,流水线需要中断或者等待,实质上是无法实现单周期指令,或者更高的执行效率。而这类架构无法适用于大数据量的并发传输和处理。
此外,由于受制于总线带宽的设计,例如从外设到内存、内存到内存、内存到外设间的大数据量访问或者DMA(Direct Memory Access,直接存储器访问))传输,往往需要总线的总裁进行分配,防止DMA占用过长时间导致CPU空闲等待,或者CPU长时间占用总线,使得外设的数据不能及时传输到内存造成数据被新的数据覆盖,为了解决这一问题,现有技术利用增加流水线的长度来提高指令的执行效率,但流水线越长,芯片架构的设计就越复杂,也越容易造成流水线死锁而需要进行强制等待或者清除流水线,且重新建立流水线需要消耗一定的时钟周期,如果频繁地清除又建立流水线,芯片的执行效率反而降低。
发明内容
本发明的目的是提供一种智能芯片架构和高效处理数据的方法,用于解决现有技术中存在的至少一个问题。
为了实现上述目的,本发明采用以下技术方案:
第一方面,本发明提供一种智能芯片架构,包括:模拟转数字单元、整型转浮点数单元、浮点运算单元、存储单元、算术逻辑单元、数据传输控制单元以及总线阵列控制单元;
所述模拟转数字单元与所述整型转浮点数单元连接;
所述整型转浮点数单元通过第一双数据总线与所述总线阵列控制单元连接,并通过第一信号总线与所述数据传输控制单元连接;
所述浮点运算单元通过第二双数据总线与所述总线阵列控制单元连接;
所述存储单元通过第三双数据总线与所述总线阵列控制单元连接,并通过第一双地址总线和第一控制总线与所述数据传输控制单元连接;
所述算术逻辑单元通过第四双数据总线和第二信号总线与所述数据传输控制单元连接;
所述数据传输控制单元还通过第五双数据总线、第二双地址总线以及第二控制总线与所述总线阵列控制单元连接。
在一种可能的设计中,还包括若干外设单元,每一所述外设单元通过第六双数据总线和第三双地址总线与所述总线阵列控制单元连接。
在一种可能的设计中,每一所述外设单元包括配置寄存器,所述外设单元通过所述第三双地址总线选中对应的所述配置寄存器,并通过所述第六双数据总线获取所述配置寄存器的配置参数。
在一种可能的设计中,所述存储单元包括随机存储子单元和非易失性存储子单元。
在一种可能的设计中,所述总线阵列控制单元包括传输门或三态总线缓冲器。
在一种可能的设计中,所述数据传输控制单元用于:
产生控制所述智能芯片架构运作的运作时序;
通过所述第二控制总线向所述总线阵列控制单元传输第一控制信号;
取指令、译码、通过所述第四数据总线将数据传输到所述算术逻辑单元执行数据运算以及通过所述第一双地址总线将数据回写至所述存储单元;
通过所述第一控制总线向所述存储单元传输第二控制信号,以选择所述第三双数据总线的数据传输通道以及所述第一双地址总线的地址传输通道。
在一种可能的设计中,所述总线阵列控制单元用于:
接收所述第一控制信号,并根据所述第一控制信号进行各数据总线间和/或各地址总线间的切换。
在一种可能的设计中,所述整型转浮点数单元用于:
通过所述第一信号总线接收所述数据传输控制单元的第三控制信号;
根据所述第三控制信号选择所述第一双数据总线的输入数据;
接收所述模拟转数字单元的整型数据;
对接收的数据进行数据转换,并通过所述第一双数据总线将转换后的数据经过所述总线阵列控制单元传输至对应的单元。
在一种可能的设计中,所述算术逻辑单元用于:
对通过所述第四双数据总线接收的数据进行算术运算,并通过所述第二信号总线进行状态标示。
第二方面,本发明提供一种高效处理数据的方法,所述方法应用如第一方面任意一种可能的设计中所述的微处理架构提高数据处理的效率。
有益效果:
1.本发明采用双数据总线和双地址总线的设计,所述数据传输控制单元根据计算机系统的指令或者所述总线阵列控制单元的工作状态,通过所述第二控制总线控制所述总线阵列控制单元进行数据总线和/地址总线工作状态的切换,从而减少总线的等待周期,降低总线拥塞,提高数据处理的吞吐量,从而提高数据处理效率;此外,双数据总线和双地址总线的模式可以有效降低智能芯片架构的流水线长度,简化架构设计,且消耗的时钟周期变短,执行效率提高。
2.本发明采用硬件结构实现的整型转浮点数单元,同时采用双数据总线实现数据传输,并采用双地址总线实现地址传输,使得浮点运算单元的两个输入操作数通过总线阵列控制单元以及数据传输控制单元,直接和随机存储单元进行读写,从而使得整型数据转浮点型数据所使用的时钟周期大大缩短,满足大量模拟信号同时进行数据转换的需求。
3.本发明通过数据传输控制单元,可以控制数据通过总线阵列控制单元,在浮点运算单元和随机存储单元间进行直接传输和参与计算,从而使得系统达到快速运算的目的,而无需像传统的智能芯片架构那样需要智能芯片架构内核参与数据调度。
4.本发明中的模拟转数字单元直接和整型转浮点数单元连接,能够实现数据的快速转化,提高运算速率。
5.本发明的结构紧凑,在生产中,可以大大简化硬件结构的设计,从而使得本发明可以在较低的主频达到传统架构在高速系统时钟下才可以进行的大数据量计算,能效比大大提高,从而实现低功耗运行。
附图说明
图1为本发明实施例中的智能芯片架构的框图;
图2为本发明实施例中数据传输控制单元控制总线阵列控制单元进行数据传输的原理图。
具体实施方式
为使本说明书实施例的目的、技术方案和优点更加清楚,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
如图1-2所示,第一方面,本发明一种智能芯片架构,包括:模拟转数字单元ADC、整型转浮点数单元UI2F、浮点运算单元FPU、存储单元、算术逻辑单元ALU、数据传输控制单元DTC以及总线阵列控制单元BCC;
所述模拟转数字单元ADC与所述整型转浮点数单元UI2F连接;
其中,需要说明的是,所述模拟转数字单元ADC用于实现模拟量转数字量,从而将数据转换成处理器能够识别的无符号的整型数据;通常来说,所述模拟转数字单元ADC转换的位数为8~24位,根据不同的应用领域,对位数的要求也不相同,一般MCU都配置为12位的数据宽度,而在音频领域可能会配置到24位来实现高保真。
其中,需要说明的是,所述模拟转数字单元ADC采用专用通道与所述整型转浮点数单元UI2F连接,例如采用并行数据线进行连接,此处不做限定,通过将模拟转数字单元ADC直接和整型转浮点数单元UI2F连接,能够实现数据的快速转化,提高运算速率。
所述整型转浮点数单元UI2F通过第一双数据总线与所述总线阵列控制单元BCC连接,并通过第一信号总线与所述数据传输控制单元DTC连接;
其中,需要说明的是,所述整型转浮点数单元UI2F是由硬件结构实现的整型数据转IEEE-754标准格式的浮点数据,从而能减少传统软件类型转换数据时所需要的指令周期。
其中,需要说明的是,所述第一双数据总线包括输出总线UFBB和输入总线UFBA,所述第一信号总线包括信号总线DUC,所述数据传输控制单元可以通过所述信号总线DUC控制所述整型转浮点数单元的输入选择。
所述浮点运算单元FPU通过第二双数据总线与所述总线阵列控制单元BCC连接;
其中,所述说明的是,所述第二双数据总线包括输入双总线FBA和FBB,还包括输出单总线FOB。
所述存储单元通过第三双数据总线与所述总线阵列控制单元BCC连接,并通过第一双地址总线和第一控制总线与所述数据传输控制单元DTC连接;
其中,需要说明的是,所述存储单元包括随机存储子单元RAM和非易失性存储子单元NVM;其中,所述随机存储子单元RAM和非易失性存储子单元NVM均通过所述第三双数据总线与所述总线阵列控制单元BCC连接,并通过第一双地址总线和第一控制总线与所述数据传输控制单元DTC连接;其中,所述第三双数据总线包括数据总线DBA和数据总线DBB,所述第一双地址总线包括地址总线ABA和地址总线ABB,所述第一控制总线包括数据选择控制线DSA和DSB,以及地址选择控制线ASA和ASB。
所述算术逻辑单元ALU通过第四双数据总线和第二信号总线与所述数据传输控制单元DTC连接;
其中,需要说明的是,所述第四双数据总线包括双输入总线CDA和CDB,以及输出总线COB,所述第二信号总线包括DACH信号总线。
所述数据传输控制单元还通过第五双数据总线、第二双地址总线以及第二控制总线与所述总线阵列控制单元连接。
其中,需要说明的是,所述第五双数据总线包括数据总线DBDA和数据总线DBDB,所述第二双地址总线包括地址总线ABDA和地址总线ABDB,所述第二控制总线包括DBCH桥控制总线。
在一种可选的实施方式中,还包括若干外设单元,每一所述外设单元通过第六双数据总线和第三双地址总线与所述总线阵列控制单元连接;其中,每一所述外设单元包括配置寄存器,所述外设单元通过所述第三双地址总线选中对应的所述配置寄存器,并通过所述第六双数据总线获取所述配置寄存器的配置参数。
其中,需要说明的是,所述外设单元包括高速外设子单元和低速外设子单元,所述高速外设子单元包括但不限于USB、以太网和SDIO等外设设备,所述低速外设子单元包括但不限于串口、SPI、定时器、ADC和DAC等设备;其中,所述第六双数据总线包括高速外设数据总线HDB和低速外设数据总线SDB,所述第三双地址总线包括高速外设地址总线HAB和低速外设地址总线SAB。
其中,需要说明的是,上述对各双数据总线和双地址总线赋予的编号中,一般默认以A结尾的总线为主总线,以B结尾的为次总线,但在实际应用中,二者并无实质的主次之分,所述数据传输控制单元会根据系统芯片和指令的运行状态进行总线选择,从而充分利用双总线的带宽进行数据传输,但如果是总线A和总线B均处于空闲状态下时,可优先选择主总线进行数据传输,此处不做具体限定。
在一种可选的实施方式中,所述数据传输控制单元用于:
产生控制所述智能芯片架构运作的运作时序,其中,所述运作时序包括但不限于所述微处理架构的芯片上电和复位时的启动时序以及内部程序运行的控制时序。
通过所述第二控制总线向所述总线阵列控制单元BCC传输第一控制信号;
具体的,通过所述DBCH桥控制总线向所述总线阵列控制单元传输第一控制信号,从而控制所述总线阵列控制单元BCC内部的总线开关,实现上述数据总线(HDB、SDB、UFBB、UFBA、DBA、DBB、FBA、FBB、FOB、DBDA和DBDB)间和上述地址总线(HAB、SAB、ABDA和ABDB)间的选通和断开,从而实现总线间的切换,实现数据的多向传输。
取指令、译码和通过所述第四数据总线将数据传输到所述算术逻辑单元ALU执行数据运算以及通过所述第一双地址总线将数据回写至所述存储单元;
具体的,所述数据传输控制单元DTC采用两级流水线,即取指和回写合为第一级,执行为第二级。得益于双数据总线和双地址总线,取指和回写操作可各使用其中的一组数据总线和地址总线,从而可以使他们合并在同一级流水线;采用双地址总线和双数据总线,可以使译码变得简单,所以译码可以在取指后利用RTL(Register-Transfer Level,寄存器传输级)的延迟进行,为执行做好准备。
其中,数据可以通过所述双输入总线CDA或输入总线CDB将数据传输到所述算术逻辑单元执行数据运算,并通过输出总线COB接收所述算术逻辑单元ALU的运算结果,进而通过所述地址总线ABA或地址总线ABB将运算结果数据回写至所述随机存储单元RAM和/或所述非易失性存储单元NVM中;其中,采用短流水线意味着一旦遇到跳转指令,可以更快地建立流水线,从而减少系统时钟执行抖动。
通过所述第一控制总线向所述存储单元传输第二控制信号,以选择所述第三双数据总线的数据传输通道以及所述第一双地址总线的地址传输通道。
具体的,所述数据传输控制单元DTC根据所述总线阵列控制单元BCC的数据总线忙碌情况,或者是系统指令,通过所述数据选择控制总线DSA和DSB控制所述随机存储单元RAM和/或所述非易失性存储单元NVM的数据传输通道,具体的,通过数据选择控制总线DSA和DSB的高低电平控制实现所述随机存储单元RAM和/或所述非易失性存储单元NVM的数据是从所述数据总线DBA上传输还是从所述数据总线DBB上传输。
具体的,所述数据传输控制单元DTC根据所述总线阵列控制单元BCC的地址总线的忙碌情况,或者是系统指令,根据所述地址选择控制总线ASA和ASB控制所述随机存储单元RAM和/或所述非易失性存储单元NVM的地址传输通道,具体的,通过地址选择控制总线ASA和ASB的高低电平控制地址数据是从所述地址总线ABA上还是从所述地址总线ABB上进入所述随机存储单元RAM和/或所述非易失性存储单元NVM内部的地址单元。
其中,需要补充说明的是,在所述数据传输控制单元DTC的内部,所述地址总线ABDA和地址总线ABA直接相连,所述地址总线ABDB和地址总线ABB直接相连。
作为一种可选的实施方式,所述总线阵列控制单元BCC用于:
接收所述第一控制信号,并根据所述第一控制信号进行各数据总线间和/或各地址总线间的切换。
具体的,所述总线阵列控制单元BCC接收所述数据传输控制单元DTC通过所述DBCH桥控制总线发送的第一控制信号,并根据所述第一控制信号实现上述数据总线(HDB、SDB、UFBB、UFBA、DBA、DBB、FBA、FBB、FOB、DBDA和DBDB)间和上述地址总线(HAB、SAB、ABDA和ABDB)间的选通和断开,从而实现总线间的切换,进而实现数据的多向传输。
作为一种可选的实施方式,所述总线阵列控制单元BCC包括传输门或三态总线缓冲器;其中,上述各数据总线和各地址总线可通过所述总线阵列控制BCC的传输门或三态总线缓冲器进行总线切换。
作为一种可选的实施方式,所述整型转浮点数单元UI2F用于:
通过所述第一信号总线接收所述数据传输控制单元DTC的第三控制信号;
具体的,所述整型转浮点数单元UI2F通过所述信号总线DUC接收所述数据传输控制单元DTC的第三控制信号,从而选择所述输入总线UFBA的输入数据。
根据所述第三控制信号选择所述第一双数据总线的输入数据;其中,所述输入数据包括但不限于所述随机存储单元RAM中的数据、所述非易失性存储单元NVM中的数据和/或所述算术逻辑单元ALU的计算结果数据。
接收所述模拟转数字单元的整型数据;
具体的,所述整型转浮点数单元UI2F通过专用数据通道接收所述模拟转数字单元ADC的整型数据。
对接收的数据进行数据转换,并通过所述第一双数据总线将转换后的数据经过所述总线阵列控制单元传输至对应的单元。
具体的,对接收到的所述随机存储单元RAM中的数据、所述非易失性存储单元NVM中的数据、所述算术逻辑单元ALU的计算结果数据和所述模拟转数字单元ADC的整型数据进行数据转换,并通过所述输出总线UFBB将转换后的数据经过所述总线阵列控制单元BCC传输至对应的单元,该单元包括但不限于随机存储单元RAM、所述非易失性存储单元、所述算术逻辑单元ALU以及所述浮点运算单元FPU。
作为一种可选的实施方式,所述算术逻辑单元ALU用于:
对通过所述第四双数据总线接收的数据进行算术运算,并通过所述第二信号总线进行状态标示。
具体的,所述算术逻辑ALU对通过所述输入总线CDA或输入总线CDB接收数据,并对数据进行算术运算,所述是算术运算包括但不限于加、减、乘、除和移位运算;然后通过输出总线COB将数据输出,同时通过所述DACH信号总线对运算后的ALU状态进行标示,其中,所述DACH信号总线还用于所述数据传输控制单元DTC译码后的控制信号总线。
其中,需要补充说明的是,为了降低整体架构的复杂度,经过所述数据传输控制单元指令译码后,可通过所述输入总线CDA传输接收移位操作的源数据,而将移位操作的结果数据放于所述输入总线CDB上进行传输;对于加、减、乘和除操作,被加、减、乘和除的数据放于所述输入总线CDA进行传输,加、减、乘和除的结果数据放于所述输入总线CDB上进行传输。
进一步的,当所述数据传输控制单元接收到移位操作的结果数据和加、减、乘和除的结果数据后,可根据系统指令和/或所述数据总线DBDA和数据总线DBDB的忙碌状态,选择空闲的总线或者目标总线向外传输数据。
在一种可选的实施方式中,所述随机存储单元RAM具体包括SRAM存储器和DRAM存储器,所述随机存储单元RAM内部采用双总线架构设计,用于实现所述SRAM存储器和DRAM存储器的同步访问,从而加快数据访问;
其中,需要说明的是,所述数据传输控制单元DTC可同时产生两个地址参数传输到地址总线ABA和地址总线ABB上,然后通过地址选择控制总线ASA和地址选择控制总线ASB来控制双口总线选择器选择内部的存储器,被选中的存储器通过数据选择控制总线DSA和数据选择控制总线DSB控制双口总线选择器输出到数据总线DBA和数据总线DBB上。
在一种可选的实施方式中,所述非易失性存储单元NVM包括但不限于可读写的Flash内存、铁电存储器和只读的ROM存储器,由于所述非易失性存储单元NVM的访问速度相对于所述随机存储单元RAM较慢,且主要用来存放代码程序和数据常量,访问频率较所述随机存储单元RAM较低,因此内部可采用单总线架构,从而降低制作复杂度和成本。
其中,需要说明的是,存储于非易失性存储单元NVM的代码可通过专用的数据总线CBUS传输到数据传输控制单元DTC进行译码;存储于非易失性存储单元NVM的常数和内存初始值可以通过数据选择控制总线DSA和数据选择控制总线DSB控制双口总线选择器输出到数据总线DBA和数据总线DBB上。
在一种可选的实施方式中,所述浮点运算单元FPU可单独作为一个数据处理单元来进行设计,从而降低架构整体的复杂度,芯片架构可以根据需求和成本进行浮点运算单元FPU的增减;其中,浮点运算单元中的运算为双目运算,所述浮点运算单元FPU的被操作数可通过输入总线FBA进行传输,其操作结果数可通过输出总线FOB进行传输。
作为本实施例的实际应用,本实施例的智能芯片架构在数字信号处理和神经网络学习中能够被广泛应用,以下对其进行具体说明:
如图2所示,由于浮点运算单元FPU具有单周期指令实现的乘加指令功能,而在数字信号处理和神经网络学习中存在大量的乘加运算,因此通过将浮点运算单元FPU应用在数字信号处理和神经网络学习中,能够极大加快运算速率。
其中,神经网络分为输入层、隐藏层和输出层,其中,隐藏层和输出层都是对上一层每一神经节点的权值乘积和,如隐藏层的输入值为其中,xij表示神经网络中第i层第j个神经元的输入值,n表示当前隐藏层的神经单元个数,o(i-1)h表示第(i-1)层隐藏层第h元的权值,b表示神经元的偏置;可见,神经单元越多,隐藏层数越多,运算的数量也越庞大,单乘法运算的时间复杂度即可达到o(n2)级别,若不采用单指令周期的浮点运算单元FPU进行运算,时间复杂度会非常大。
基于上述分析可知,数字滤波和神经网络学习具有高度相似性,均为有结构规律的数学运算。则在所述数据传输控制单元DTC在进行译码时,若所述输入总线FBA和输入总线FBB空闲,可以直接将数据传输到浮点运算单元FPU。而由于在实际应用中乘加级数一般都远大于16个或者32个,而传统的MCU架构中寄存器数量较少,因此在乘加的级数大于寄存器数目时,部分变量和参数往往需要进行压栈出栈处理,而这样无疑会进一步消耗系统时钟。
而在本实施例中,所述数字滤波器的系数或者所述神经学习网络的神经元权值都存放在一段连续的非易失性存储单元或随机存储单元中,例如图2中的x1n...x1n-N中,滤波器的历史值或神经网络的上一层神经元的输出则存放在另一段连续的非易失性存储单元或随机存储单元中,如图2中的xkn...xkn-N中,则数据传输控制单元DTC通过控制总线阵列控制单元BCC内部的总线开关,实现总线切换,将x1n...x1n-N和xkn...xkn-N中的数字滤波器的系数、神经元权值、滤波器的历史值和/或上一层神经元的输出通过数据总线FBA和数据总线FBB传输到浮点运算单元FPU进行运算,而浮点运算单元FPU的运算结果可通过数据总线FOB输出存入到图2中的y0...y0-M中。
其中,需要说明的是,采用本实施例的智能芯片架构实现数字信号处理和神经网络学习中的运算,不同于传统的向量处理器,传统的向量处理器虽然一个指令可以处理多个数据的乘加,但是需要的的总线宽度和同时所需处理的乘数加成倍数关系,设计难度较大,而本实施例的智能芯片架构虽然无法一条指令同时执行多个运算,但是结构简单,RTL版图线路也大大缩小,有利于减少晶圆面积和掩膜层数,从而降低成本。
基于上述公开的内容,本实施例具有如下有益效果:
1.本实施例采用双数据总线和双地址总线的设计,所述数据传输控制单元根据根据计算机系统的指令或者所述总线阵列控制单元的工作状态,通过所述第二控制总线控制所述总线阵列控制单元进行数据总线和/地址总线工作状态的切换,从而减少总线的等待周期,降低总线拥塞,提高数据处理的吞吐量,从而提高数据处理效率;此外,双数据总线和双地址总线的模式可以有效降低智能芯片架构的流水线长度,简化架构设计,且消耗的时钟周期变短,执行效率提高。
2.本实施例采用硬件结构实现的整型转浮点数单元,同时采用双数据总线实现数据传输,并采用双地址总线实现地址传输,使得浮点运算单元的两个输入操作数通过总线阵列控制单元以及数据传输控制单元,直接和随机存储单元进行读写,从而使得整型数据转浮点型数据所使用的时钟周期大大缩短,满足大量模拟信号同时进行数据转换的需求。
3.本实施例通过数据传输控制单元,可以控制数据通过总线阵列控制单元,在浮点运算单元和随机存储单元间进行直接传输和参与计算,从而使得系统达到快速运算的目的,而无需像传统的智能芯片架构那样需要智能芯片架构内核参与数据调度。
5.本实施例的结构紧凑,在生产中,可以大大简化硬件结构的设计,从而使得本发明可以在较低的主频达到传统架构在高速系统时钟下才可以进行的大数据量计算,能效比大大提高,从而实现低功耗运行。
第二方面,本发明提供一种高效处理数据的方法,所述方法应用如第一方面任意一种可能的设计中所述的微处理架构提高数据处理的效率。
其中,需要说明的是,所述方法应用如如第一方面任意一种可能的设计中所述的微处理架构,具体可实现数字信号处理和神经网络学习中的数据的高效处理,当然可以理解的是,所述方法并不限于仅于应用与上述两种场景中,同样适用于其他任何可利用所述智能芯片架构进行数据处理的场景中,此处不做限定。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种智能芯片架构,其特征在于,包括:模拟转数字单元、整型转浮点数单元、浮点运算单元、存储单元、算术逻辑单元、数据传输控制单元以及总线阵列控制单元;
所述模拟转数字单元与所述整型转浮点数单元连接;
所述整型转浮点数单元通过第一双数据总线与所述总线阵列控制单元连接,并通过第一信号总线与所述数据传输控制单元连接;
所述浮点运算单元通过第二双数据总线与所述总线阵列控制单元连接;
所述存储单元通过第三双数据总线与所述总线阵列控制单元连接,并通过第一双地址总线和第一控制总线与所述数据传输控制单元连接;
所述算术逻辑单元通过第四双数据总线和第二信号总线与所述数据传输控制单元连接;
所述数据传输控制单元还通过第五双数据总线、第二双地址总线以及第二控制总线与所述总线阵列控制单元连接。
2.根据权利要求1所述的智能芯片架构,其特征在于,还包括若干外设单元,每一所述外设单元通过第六双数据总线和第三双地址总线与所述总线阵列控制单元连接。
3.根据权利要求2所述的智能芯片架构,其特征在于,每一所述外设单元包括配置寄存器,所述外设单元通过所述第三双地址总线选中对应的所述配置寄存器,并通过所述第六双数据总线获取所述配置寄存器的配置参数。
4.根据权利要求1所述的智能芯片架构,其特征在于,所述存储单元包括随机存储子单元和非易失性存储子单元。
5.根据权利要求1所述的智能芯片架构,其特征在于,所述总线阵列控制单元包括传输门或三态总线缓冲器。
6.根据权利要求1所述的智能芯片架构,其特征在于,所述数据传输控制单元用于:
产生控制所述智能芯片架构运作的运作时序;
通过所述第二控制总线向所述总线阵列控制单元传输第一控制信号;
取指令、译码和通过所述第四双数据总线将数据传输到所述算术逻辑单元执行数据运算以及通过所述第一双地址总线将数据回写至所述存储单元;
通过所述第一控制总线向所述存储单元传输第二控制信号,以选择所述第三双数据总线的数据传输通道以及所述第一双地址总线的地址传输通道。
7.根据权利要求6所述的智能芯片架构,其特征在于,所述总线阵列控制单元用于:
接收所述第一控制信号,并根据所述第一控制信号进行各数据总线间和/或各地址总线间的切换。
8.根据权利要求1所述的智能芯片架构,其特征在于,所述整型转浮点数单元用于:
通过所述第一信号总线接收所述数据传输控制单元的第三控制信号;
根据所述第三控制信号选择所述第一双数据总线的输入数据;
接收所述模拟转数字单元的整型数据;
对接收的数据进行数据转换,并通过所述第一双数据总线将转换后的数据经过所述总线阵列控制单元传输至对应的单元。
9.根据权利要求1所述的智能芯片架构,其特征在于,所述算术逻辑单元用于:
对通过所述第四双数据总线接收的数据进行算术运算,并通过所述第二信号总线进行状态标示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110838224.XA CN113504893B (zh) | 2021-07-23 | 2021-07-23 | 一种智能芯片架构和高效处理数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110838224.XA CN113504893B (zh) | 2021-07-23 | 2021-07-23 | 一种智能芯片架构和高效处理数据的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113504893A CN113504893A (zh) | 2021-10-15 |
CN113504893B true CN113504893B (zh) | 2022-08-26 |
Family
ID=78014527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110838224.XA Active CN113504893B (zh) | 2021-07-23 | 2021-07-23 | 一种智能芯片架构和高效处理数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113504893B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5666300A (en) * | 1994-12-22 | 1997-09-09 | Motorola, Inc. | Power reduction in a data processing system using pipeline registers and method therefor |
CN1180427A (zh) * | 1996-02-28 | 1998-04-29 | 爱特梅尔股份有限公司 | 以单精度或双精度进行算术运算的系统 |
CN1279785A (zh) * | 1997-09-23 | 2001-01-10 | 依科技术股份有限公司 | 采用多端口存储器的智能数据总线接口 |
CN101256546A (zh) * | 2007-03-01 | 2008-09-03 | 黄新亚 | 32位微处理器 |
CN101408934A (zh) * | 2008-11-12 | 2009-04-15 | 杭州晟元芯片技术有限公司 | 内嵌式指纹重构加速器和动态指纹重构方法 |
CN104572011A (zh) * | 2014-12-22 | 2015-04-29 | 上海交通大学 | 基于fpga的通用矩阵定点乘法器及其计算方法 |
CN111123818A (zh) * | 2019-11-05 | 2020-05-08 | 珠海格力电器股份有限公司 | 一种plc浮点数和定点数相互转换控制系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE212007000102U1 (de) * | 2007-09-11 | 2010-03-18 | Core Logic, Inc. | Rekonfigurierbarer Array-Prozessor für Gleitkomma-Operationen |
CN111078190B (zh) * | 2019-11-13 | 2021-06-18 | 珠海格力电器股份有限公司 | 一种小型plc的单精度浮点数算术运算控制系统及方法 |
-
2021
- 2021-07-23 CN CN202110838224.XA patent/CN113504893B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5666300A (en) * | 1994-12-22 | 1997-09-09 | Motorola, Inc. | Power reduction in a data processing system using pipeline registers and method therefor |
CN1180427A (zh) * | 1996-02-28 | 1998-04-29 | 爱特梅尔股份有限公司 | 以单精度或双精度进行算术运算的系统 |
CN1279785A (zh) * | 1997-09-23 | 2001-01-10 | 依科技术股份有限公司 | 采用多端口存储器的智能数据总线接口 |
CN101256546A (zh) * | 2007-03-01 | 2008-09-03 | 黄新亚 | 32位微处理器 |
CN101408934A (zh) * | 2008-11-12 | 2009-04-15 | 杭州晟元芯片技术有限公司 | 内嵌式指纹重构加速器和动态指纹重构方法 |
CN104572011A (zh) * | 2014-12-22 | 2015-04-29 | 上海交通大学 | 基于fpga的通用矩阵定点乘法器及其计算方法 |
CN111123818A (zh) * | 2019-11-05 | 2020-05-08 | 珠海格力电器股份有限公司 | 一种plc浮点数和定点数相互转换控制系统及方法 |
Non-Patent Citations (2)
Title |
---|
The next-generation 64b SPARC core in a T4 SoC processor;J. L. Shin et al.;《2012 IEEE International Solid-State Circuits Conference》;20120403;第60-62页 * |
五级流水PIC16C5x MCU IP Core设计;苏玲珑;《中国优秀硕士学位论文全文数据库-信息科技辑》;20081116;第2008年卷(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113504893A (zh) | 2021-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107729989B (zh) | 一种用于执行人工神经网络正向运算的装置及方法 | |
CN109284817B (zh) | 深度可分离卷积神经网络处理架构/方法/系统及介质 | |
WO2019218896A1 (zh) | 计算方法以及相关产品 | |
TWI795519B (zh) | 計算裝置、機器學習運算裝置、組合處理裝置、神經網絡芯片、電子設備、板卡及執行機器學習計算的方法 | |
Kim et al. | A 125 GOPS 583 mW network-on-chip based parallel processor with bio-inspired visual attention engine | |
CN111105023B (zh) | 数据流重构方法及可重构数据流处理器 | |
CN110059797B (zh) | 一种计算装置及相关产品 | |
CN111047022A (zh) | 一种计算装置及相关产品 | |
WO2022142479A1 (zh) | 一种硬件加速器、数据处理方法、系统级芯片及介质 | |
Huang et al. | IECA: An in-execution configuration CNN accelerator with 30.55 GOPS/mm² area efficiency | |
CN111860773B (zh) | 处理装置和用于信息处理的方法 | |
CN111930681B (zh) | 一种计算装置及相关产品 | |
CN115456155A (zh) | 一种多核存算处理器架构 | |
CN111079908B (zh) | 片上网络数据处理方法、存储介质、计算机设备和装置 | |
CN110059809B (zh) | 一种计算装置及相关产品 | |
CN111506344A (zh) | 一种基于脉动阵列架构的深度学习硬件系统 | |
CN113504893B (zh) | 一种智能芯片架构和高效处理数据的方法 | |
CN111368967B (zh) | 一种神经网络计算装置和方法 | |
CN111078286B (zh) | 数据通信方法、计算系统和存储介质 | |
CN111078625B (zh) | 片上网络处理系统和片上网络数据处理方法 | |
CN111078624B (zh) | 片上网络处理系统和片上网络数据处理方法 | |
CN111078623B (zh) | 片上网络处理系统和片上网络数据处理方法 | |
CN111368987B (zh) | 一种神经网络计算装置和方法 | |
CN111368986B (zh) | 一种神经网络计算装置和方法 | |
CN111198714B (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 |