CN114442908B - 一种用于数据处理的硬件加速系统及芯片 - Google Patents

一种用于数据处理的硬件加速系统及芯片 Download PDF

Info

Publication number
CN114442908B
CN114442908B CN202011221797.XA CN202011221797A CN114442908B CN 114442908 B CN114442908 B CN 114442908B CN 202011221797 A CN202011221797 A CN 202011221797A CN 114442908 B CN114442908 B CN 114442908B
Authority
CN
China
Prior art keywords
data
unit
processed
block
ddr
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
Application number
CN202011221797.XA
Other languages
English (en)
Other versions
CN114442908A (zh
Inventor
何再生
肖刚军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Amicro Semiconductor Co Ltd
Original Assignee
Zhuhai Amicro Semiconductor Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhuhai Amicro Semiconductor Co Ltd filed Critical Zhuhai Amicro Semiconductor Co Ltd
Priority to CN202011221797.XA priority Critical patent/CN114442908B/zh
Priority to PCT/CN2021/098175 priority patent/WO2022095439A1/zh
Priority to US18/035,504 priority patent/US20240021239A1/en
Publication of CN114442908A publication Critical patent/CN114442908A/zh
Application granted granted Critical
Publication of CN114442908B publication Critical patent/CN114442908B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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 Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Image Input (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

本发明公开一种用于数据处理的硬件加速系统及芯片,该硬件加速系统用于读写其外部的DDR存储单元,该硬件加速系统包括控制单元、数据读取单元、SRAM专用存储单元、寄存器配置单元、运算单元和数据回写单元,在控制单元的监测控制下,对于每一块待处理数据块,数据读取单元只使用一次读操作就完成从所述DDR存储单元内读取出当前一块待处理数据块,数据回写单元只使用一次写操作就完成当前一块待处理数据块的所有运算结果回写到所述DDR存储单元内,因此针对一块待处理数据块,所述硬件加速系统对DDR的访问只有一次读取和一次写入,不需要增大SRAM容量,减少不必要的CPU干预,同时也降低对于DDR的访问次数。

Description

一种用于数据处理的硬件加速系统及芯片
技术领域
本发明涉及数据处理的技术领域,具体涉及一种用于数据处理的硬件加速系统及芯片。
背景技术
当前随着图像和视频的像素越来越大,图像和视频流处理起来也越来越困难,对于硬件的要求也越来越高,不但要求处理器主频要高(因为软件参与过多,所以处理器主频至少达到1GHz以上的频率才行),存储器介质(主要是DDR和SRAM)容量也要大,访问速度更是越快越好。相应的,为了满足这些要求,芯片的成本也是一路走高,对于工艺制程的要求也是越来越高,以致于一般的企业根本就做不了这些高端芯片。
对于需要处理的大量数据而言,现在的一般方式是CPU软件从大容量存储进行频繁的数据读取,中间结果回写,再读取,再运算,再回写,如此迭代处理,直到将所有的处理步骤完成。这种做法由于需要频繁的访问DDR,因此对于DDR的带宽要求很高,带来的后果就是系统总的带宽需求增大,功耗增大,影响系统性能。另一种做法是将CPU内设的SRAM容量增大,以便减少对于DDR的读取和回写的次数。这样做虽然可以在一定程度上降低对于DDR的访问次数,减小对于DDR的带宽需求,但是带来的后果是SRAM的面积增大,成本上升。
发明内容
针对上述技术问题,本发明基于已有的普通工艺制程,提出一种新的数据处理架构,在对处理器主频要求不高的情况下,对大数据的处理方面能够做到硬件自动读取,计算处理,回写,起标志位,自动读取,计算处理,回写,起标志位等数据循环处理,减少了软件干预,降低对于DDR的访问次数,减小对于DDR的带宽需求,降低了硬件规模,从而减小了芯片成本。具体的技术方案如下:
一种用于数据处理的硬件加速系统,该硬件加速系统用于读写其外部的DDR存储单元,该硬件加速系统包括控制单元、数据读取单元、SRAM专用存储单元、寄存器配置单元和运算单元;控制单元与寄存器配置单元存在电性连接关系,数据读取单元与控制单元存在电性连接关系,数据读取单元与DDR存储单元存在电性连接关系,数据读取单元,用于在控制单元的读取控制作用下,利用寄存器配置单元当前保存的分块传输信息,通过一次读操作完成从DDR存储单元内读取出当前一块待处理数据块;SRAM专用存储单元与数据读取单元存在电性连接,数据读取单元用于将当前一块待处理数据块写入SRAM专用存储单元;SRAM专用存储单元与运算单元存在电性连接,运算单元与控制单元存在电性连接关系,控制单元,用于监测到数据读取单元完成当前一块待处理数据块的读取操作后,启动运算单元按照预设的逻辑运算结构对写入SRAM专用存储单元的当前一块待处理数据块进行运算处理,使得SRAM专用存储单元的带宽全部被运算单元占用;控制单元,还用于在运算单元完成当前一块待处理数据块的运算处理后,刷新寄存器配置单元当前保存的分块传输信息,以将所述DDR存储单元内存储的基于下一块待处理数据块的分块传输信息替换当前保存的分块传输信息;其中,所述分块传输信息包括:当前一块待处理数据块的起始地址、当前一块待处理数据块的数据传输长度、当前一块待处理数据块经过所述运算单元运算处理得到的运算结果的回写地址 、以及当前一块待处理数据块经过所述运算单元运算处理得到的运算结果的数据长度;起始地址和回写地址都是所述DDR存储单元的数据存储地址。
与现有技术相比,本技术方案在所述控制单元的监测控制下,对于每一块待处理数据块,所述数据读取单元只使用一次读操作就完成从所述DDR存储单元内读取出当前一块待处理数据块,而所述SRAM专用存储单元需要接受外部单元多次读写访问,以确保所述运算单元在不依赖CPU 的前提下完成当前一块待处理数据块的运算处理,使得之前需要频繁访问DDR的大批量数据的操作转移为频繁访问专有的SRAM中的数据块,不需要增大SRAM容量,减少CPU的不必要干预,同时也降低DDR的访问次数,减小所述硬件加速系统对于DDR的带宽需求。
进一步地,所述硬件加速系统还包括数据回写单元,用于在所述控制单元监测到所述运算单元输出基于当前一块待处理数据块的最后一个运算结果后,根据所述当前保存的分块传输信息,采用单次写的方式或突发写的方式将这些运算结果回写到所述DDR存储单元内,使得数据回写单元通过一次写操作完成当前一块待处理数据块的所有运算结果回写到所述DDR存储单元内。在本技术方案中,所述数据回写单元只使用一次写操作就完成当前一块待处理数据块的所有运算结果回写到所述DDR存储单元内,使得所述硬件加速系统针对一块待处理数据块,对DDR的访问只有一次读取和一次写入,节省下DDR带宽,提升了数据处理速度。
进一步地,所述控制单元,还用于在所述运算单元完成所述DDR存储单元内所有的待处理数据块的运算处理后,发出中断指令通知CPU,以使CPU开启处理已写入所述DDR存储单元的运算结果。该技术方案可以利用中断条件通知CPU对寄存器配置单元或所述DDR存储单元刷新处理,可以支持处理的无限的数据量,适合应用于大批量实时采集的连续多帧图像数据或激光点云数据。
进一步地,当所述数据读取单元从所述DDR存储单元内读取出第一块待处理数据块之前,CPU将所述分块传输信息写入所述寄存器配置单元,使得所述数据读取单元每次从DDR存储单元内读取出一块所述待处理数据块;当CPU将所述分块传输信息写入所述寄存器配置单元后,所述控制单元启动所述数据读取单元从所述DDR存储单元内读取出第一块待处理数据块。从而实现:除了最开始的时候CPU配置寄存器配置单元以及结束全部的待处理数据的运算后发送中断给CPU以外,整个过程都不再需要CPU的参与,对CPU资源占用几乎忽略。
进一步地,在所述控制单元的读取控制作用下,所述数据读取单元从所述DDR存储单元内读取的待处理数据块是:所述DDR存储单元内部存储的所有待处理数据按照支持实时刷新的分块传输信息的数据量分配为一块或一块以上的待处理数据块。该技术方案避免读写SRAM的过程中,出现SRAM的容量过大的现象,减小SRAM的占用面积。
进一步地,基于所述寄存器配置单元保存的分块传输信息,所述数据读取单元每次读取的待处理数据块的数据量是不同的。从而灵活地配置分块传输的数据块的数据量,适应各种场景下的数据处理速度需求。
进一步地,所述待处理数据块的数据量是根据外部输入所述DDR存储单元的图像的帧率设置的,以支持所述硬件加速系统及时分块处理所述DDR存储单元内存储的图像数据;或者,所述待处理数据块的数据量是根据外部输入所述DDR存储单元的激光数据的帧率设置的,以支持所述硬件加速系统及时分块处理所述DDR存储单元内存储的激光点云地图。适用于加速处理多帧图像或激光点云地图分割的场合。
进一步地,所述SRAM专用存储单元的空间容量配置为:所述数据读取单元每次读取到的待处理数据块中的数据量、以及所述数据读取单元原先存在的中间数据的数据量的和值。该技术方案为所述SRAM专用存储单元预留冗余内存空间,保证所述数据读取单元能够接收当前一次读操作下的所有需要处理的数据块,便于所述运算单元在执行运算操作时独占所述数据读取单元的带宽。
一种芯片,该芯片包括前述技术方案中的硬件加速系统。该芯片根据实际硬件情况(包括DDR存储器和片内的SRAM存储单元的内存容量),自动对大批量数据进行分割,降低了对外围存储器的带宽要求,进而依赖芯片内部的数据处理架构完成读取数据块、处理数据块,回写运算结果,几乎全程硬件处理,减小了软件干预,特别是在处理海量数据时,CPU软件只要预先设置好寄存器配置单元,或者根据中断条件对寄存器配置单元进行刷新,可以分块处理的数据量是无限的,不受实时采集的图像帧的数目或激光点云的数量的约束。
附图说明
图1为本发明公开的一种用于数据处理的硬件加速系统框架示意图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步说明。以下实施方式中所涉及到的各模块均为逻辑电路单元,一个逻辑电路单元可以是一个物理单元、也可以是由多个逻辑器件按照一定的读写时序和信号逻辑变化组合而成的状态机,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本发明实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本发明实施方式中不存在其它的单元。需要说明的是,本发明所描述的DDR是指图1所示的DDR存储单元,本发明所描述的SRAM是指图1所示的SRAM专用存储单元。
如图1所示,本发明实施例公开一种用于数据处理的硬件加速系统,该硬件加速系统用于读写其外部的DDR存储单元,该硬件加速系统包括控制单元、数据读取单元、SRAM专用存储单元、寄存器配置单元、运算单元;控制单元与寄存器配置单元存在电性连接关系,控制单元的一数据命令端口与寄存器配置单元对应的数据命令端口存在信号收发关系,控制单元可以自动刷新寄存器配置单元。
数据读取单元与控制单元存在电性连接关系,这个电性连接关系是信号收发响应关系的端口间的连接关系,包括命令端口;数据读取单元与DDR存储单元存在电性连接关系,这个电性连接关系是数据收发响应关系的端口间的连接关系,包括地址端口和数据端口;数据读取单元,用于在控制单元的读取控制作用下,利用寄存器配置单元当前保存的分块传输信息,通过一次读操作完成从DDR存储单元内读取出当前一块待处理数据块,并缓存到数据读取单元内设的FIFO内部;其中,所述分块传输信息包括:当前一块待处理数据块的起始地址、当前一块待处理数据块的数据传输长度、当前一块待处理数据块经过所述运算单元运算处理得到的运算结果的回写地址 、以及当前一块待处理数据块经过所述运算单元运算处理得到的运算结果的数据长度;起始地址和回写地址都是所述DDR存储单元的数据存储地址。这些分块传输信息表示向控制单元和数据读取单元配置的硬件电路可执行的字节内存操作信息。
优选地,当所述数据读取单元从所述DDR存储单元内读取出第一块待处理数据块之前,CPU将所述分块传输信息写入所述寄存器配置单元,使得所述数据读取单元每次从DDR存储单元内只能读取出一块待处理数据块,而不是逐个数据地读取出来,需要说明的是,这种将大批量数据切分成小块数据,然后进行链式传输的方法叫做链表传输方式。
SRAM专用存储单元与数据读取单元存在电性连接,SRAM专用存储单元作为一种存储器,存在的电性连接关系是数据收发响应关系的端口间的连接关系,包括地址端口、数据端口和命令端口;数据读取单元用于将当前一块待处理数据块写入SRAM专用存储单元,SRAM专用存储单元用于自动读取接收数据所述读取单元所读取的待处理数据块,其中,所述SRAM专用存储单元的空间容量配置为:所述数据读取单元每次读取到的待处理数据块中的数据量、以及所述数据读取单元原先存在的中间数据的数据量的和值,为所述SRAM专用存储单元预留冗余内存空间,保证所述数据读取单元能够接收当前一次读操作下的所有需要处理的数据块,便于所述运算单元在执行运算操作时独占所述数据读取单元的带宽。其中,每次读取到的待处理数据块中的数据量作为所述DDR存储单元内部存储的所有待处理数据的划分单位,每次读取到的待处理数据块中的数据量作为所述待处理数据块的数据传输长度,可被硬件电路识别的内存信息。
SRAM专用存储单元与运算单元存在电性连接,存在的电性连接关系是数据收发响应关系的端口间的连接关系,包括地址端口、数据端口和命令端口;运算单元与控制单元存在电性连接关系,这个电性连接关系是信号收发响应关系的端口间的连接关系,包括命令端口;控制单元,用于监测到数据读取单元完成当前一块待处理数据块的读取操作后,启动运算单元按照预设的逻辑运算结构对当前一块待处理数据块进行运算处理,当所述数据读取单元将当前一块待处理数据块写入到所述SRAM专用存储单元以后,所述运算单元使用所述SRAM专用存储单元的待处理数据进行运算时,就可以做到独占这个SRAM专用存储单元,实现SRAM专用存储单元的带宽全部被运算单元占用。这样,虽然频繁访问SRAM专用存储单元的数据块,但是对于占用DDR带宽的影响就降到最低了。
控制单元在运算单元完成当前一块待处理数据块的全部运算处理后,刷新寄存器配置单元当前保存的分块传输信息,将所述DDR存储单元内存储的基于下一块待处理数据块的分块传输信息替换当前保存的分块传输信息,其中,寄存器配置单元被刷新后,保存下来的分块传输信息包括下一块待处理数据块的数据传输长度;然后在所述控制单元的读取控制作用下,所述数据读取单元利用寄存器配置单元当前保存的分块传输信息,即所述数据读取单元利用寄存器配置单元保存的基于下一块待处理数据块的分块传输信息,执行一次读操作完成从DDR存储单元内读取出下一块待处理数据块,再写入所述SRAM专用存储单元;然后,在所述控制单元的监测控制下,当所述数据读取单元完成下一块待处理数据块的读取操作后,启动所述运算单元按照预设的逻辑运算结构对下一块待处理数据块进行运算处理,使得SRAM专用存储单元的带宽又一次保持被运算单元占用,因而,所述用于数据处理的硬件加速系统在分块读取处理所述DDR存储单元内部的待处理数据块的过程中,通过所述控制单元调用各个模块单元重复上述传输运算过程,实现对大批量的数据分块传输和运算处理,形成硬件迭代处理大批量数据的数字电路的状态机机制。
与现有技术相比,本实施例在所述控制单元的监测控制下,对于每一块待处理数据块,所述数据读取单元只使用一次读操作就完成从所述DDR存储单元内读取出当前一块待处理数据块,而所述SRAM专用存储单元需要接受外部单元多次读写访问,以确保所述运算单元在不依赖CPU 的前提下完成当前一块待处理数据块的运算处理,使得之前需要频繁访问DDR的大批量数据的操作转移为频繁访问专有的SRAM中的数据块,不需要增大SRAM容量,减少不需要CPU的干预,同时也降低对于DDR的访问次数,减小所述硬件加速系统对于DDR的带宽需求。
在上述实施例中,所述硬件加速系统还包括数据回写单元,所述运算单元每计算处理SRAM专用存储单元传输的一块待处理数据块中的一个数据而输出一个运算结果时,这个运算结果继续传输到数据回写单元,这个数据回写单元也内设有FIFO缓存区,用于缓存这个运算结果;当所述控制单元监测到所述运算单元输出基于当前一块待处理数据块的最后一个运算结果后,根据当前保存的分块传输信息,采用单次写的方式或突发写的方式将这些运算结果回写到所述DDR存储单元内,具体地,当所述运算单元输出的运算结果的数量比较大,即所述运算单元输出的运算结果的数据长度,比如6字节或6字节以上达到所述控制单元配置的一个突发传输长度,则在所述控制单元配置的AHB总线协议命令参数的控制作用下,以突发写的方式(突发传输的方式)将这些运算结果回写到所述DDR存储单元内;具体地,当所述运算单元输出的运算结果的数据长度比较少,比如2个,达到所述控制单元配置的一个单次传输长度,则在所述控制单元配置的AHB总线协议命令参数的控制作用下,以单次写的方式(单次传输的方式)将这些运算结果回写到所述DDR存储单元内;从而使得数据回写单元通过一次写操作完成当前一块待处理数据块的所有运算结果回写到所述DDR存储单元内。因此,在本实施例中,所述数据回写单元只使用一次写操作就完成当前一块待处理数据块的所有运算结果回写到所述DDR存储单元内,实现所述硬件加速系统针对一块待处理数据块,对DDR的访问只有一次读取和一次写入;省下了DDR带宽,提升了数据处理速度。
优选地,本实施例以最小的数据量(数据传输长度)为单位,对所述DDR存储单元内存储的大批量的数据进行分割处理,将每一分割出的待处理数据块的开始地址、数据传输长度、以及运算处理后的回写地址等信息存储起来,作为可供所述控制单元调用的所述分块传输信息,在开始从所述DDR存储单元内读取出第一块待处理数据块之前,CPU会将第一次传输所需的分块传输信息写到所述寄存器配置单元中,作为所述数据读取单元第一次读取待处理数据块所需的所述分块传输信息,再启动传输;当CPU将所述分块传输信息写入所述寄存器配置单元后,所述控制单元启动所述数据读取单元从所述DDR存储单元内读取出第一块待处理数据块,其中,所述分块传输信息包括:当前一块待处理数据块的起始地址、当前一块待处理数据块的数据传输长度、当前一块待处理数据块经过所述运算单元运算处理得到的运算结果的回写地址、以及当前一块待处理数据块经过所述运算单元运算处理得到的运算结果的数据长度;比如所述数据读取单元要传输1KB数据,如果这1KB的数据是32位的,那这1KB的数据长度是256(存储取值范围),即1个字节长度。因此所述寄存器配置单元内当前配置的分块传输信息,用于指示所述硬件加速系统当前读写外部的所述DDR存储单元的地址信息,保证所述硬件加速系统一次性读取当前一块待处理数据块的操作正常执行,保证所述硬件加速系统突发写运算结果的操作正常执行。当所述运算单元完成当前一块待处理数据块的全部运算处理后,所述控制单元自动刷新寄存器配置单元当前保存的分块传输信息,以将所述DDR存储单元内存储的基于下一块待处理数据块的分块传输信息替换当前保存的分块传输信息,而不是由CPU刷新寄存器配置单元当前保存的分块传输信息,其中,寄存器配置单元被刷新后,保存下来的分块传输信息包括下一块待处理数据块的数据传输长度、下一块待处理数据块的起始地址、下一块待处理数据块经过所述运算单元运算处理得到的运算结果的回写地址、以及下一块待处理数据块经过所述运算单元运算处理得到的运算结果的数据长度。因此所述寄存器配置单元内刷新后的分块传输信息,用于指示所述硬件加速系统下一次读写外部的所述DDR存储单元的地址信息,保证所述硬件加速系统一次性读取下一块待处理数据块的操作正常执行,保证所述硬件加速系统下一次突发写运算结果的操作正常执行。
在本实施例中,当所述控制单元还用于在所述运算单元完成所述DDR存储单元内所有的待处理数据块的运算处理后,发出中断指令通知CPU,以使CPU开启处理已写入所述DDR存储单元的运算结果。本实施例可以利用中断条件通知CPU对寄存器配置单元或所述DDR存储单元刷新处理,可以支持处理的无限的数据量(数据长度),适合应用于大批量实时采集的连续帧图像数据或激光点云数据。从而实现:除了最开始从所述DDR存储单元内读取待处理数据块的时候CPU配置寄存器配置单元、以及全部运算结束并输出给所述数据回写单元时发中断送给CPU以外,整个过程都不再需要CPU的参与,对CPU资源占用几乎忽略。
在本实施例中,所述控制单元起到了一个协处理器的作用,作为一个主机模块,根据数据读取单元、寄存器配置单元、运算单元和数据回写单元的监测状态及时完成读取、运算和回写操作,响应速度快,不需要CPU干预,同时减少了对于DDR的访问;在此基础上,本实施例基于所述寄存器配置单元当前保存的分块传输信息,控制所述数据读取单元每次从DDR存储单元内读取出一块所述待处理数据块;其中起始地址和回写地址都是所述DDR存储单元的数据存储地址。所述分块传输信息指示所述硬件加速系统读写外部的所述DDR存储单元的地址信息和数据传输长度信息,保证所述硬件加速系统一次性读取每一块待处理数据块的操作有序执行,也保证所述硬件加速系统内的运算结果的突发写操作有序进行。
优选地,在所述控制单元的读取控制作用下,所述数据读取单元从所述DDR存储单元内读取的待处理数据块是:所述DDR存储单元内部存储的所有待处理数据按照支持实时刷新的分块传输信息的数据长度划分为一块或一块以上的待处理数据块,本实施例将大批量的待处理数据划分为一块或一块以上的待处理数据块后,所述控制单元的读取控制作用下需要按照实时刷新的分块传输信息先后有序读取所述DDR存储单元的不同待处理数据块,增大SRAM专用存储单元的访问次数,减小SRAM专用存储单元每次缓存分担的数据传输长度。优选地,基于所述寄存器配置单元保存的分块传输信息,所述数据读取单元每次读取的待处理数据块的数据长度和地址都是不同的。从而灵活地配置分块传输的数据块的数据长度和地址信息,适应各种场景下的数据处理速度需求。
作为一种实施例,按照寄存器配置单元当前保存的分块传输信息,从所述DDR存储单元内部的待处理数据分割出一块数据传输长度为6字节的待处理数据块,并由所述数据读取单元一次读取出来,即由所述DDR存储单元分块传输至所述数据读取单元,再按照前述实施例的方式在所述硬件加速系统进行运算处理;当输出这个数据传输长度为6字节的待处理数据块的运算结果后,或认为结束这个数据传输长度为6字节的待处理数据块的运算处理之后,寄存器配置单元当前保存的分块传输信息被所述控制单元刷新为基于下一块待处理数据块的分块传输信息,然后按照寄存器配置单元刷新获取的新的分块传输信息,从所述DDR存储单元内部的待处理数据分割出一块数据传输长度为8字节的待处理数据块,并由所述数据读取单元一次读取出来,即由所述DDR存储单元分块传输至所述数据读取单元,再按照前述实施例的方式在所述硬件加速系统进行运算处理;如此迭代处理直到所述DDR存储单元内部存储的所有待处理数据被分块传输入所述硬件加速系统中。避免读写SRAM的过程中增大SRAM的容量,减小SRAM的占用面积。
优选地,所述待处理数据块的数据量是根据外部输入所述DDR存储单元的图像的帧率设置的,以支持所述硬件加速系统在CPU少干预的前提下,及时分块处理所述DDR存储单元内存储的图像数据,节省所述DDR存储单元的带宽资源,特别适用于加速处理多帧图像的场合。或者,所述待处理数据块的数据量是根据外部输入所述DDR存储单元的激光数据的帧率设置的,以支持所述硬件加速系统及时分块处理所述DDR存储单元内存储的激光点云地图。适用于加速处理多帧图像或激光点云地图分割的场合。其中,所述待处理数据块的数据量等于待处理数据块的数据传输长度。
优选地,所述SRAM专用存储单元的空间容量配置为:所述数据读取单元每次读取到的待处理数据块中的数据量、以及所述数据读取单元原先存在的中间数据的数据量的和值,其中,存在一些中间数据与已读取入所述数据读取单元的待处理数据块共存,这些中间数据也是要写入所述SRAM专用存储单元。本实施例为所述SRAM专用存储单元预留冗余内存空间,保证所述数据读取单元能够接收每一次读操作下(每一次从所述DDR存储单元读取一块待处理数据块)的所有需要处理的数据块,便于所述运算单元在执行运算操作时独占所述数据读取单元的带宽。其中,待处理数据块的数据量等于待处理数据块的数据传输长度。
一种芯片,该芯片包括前述技术方案中的硬件加速系统。该芯片根据实际硬件情况(包括DDR存储器和片内的SRAM存储单元的内存容量),自动对大批量数据进行分割,降低了对外围存储器的带宽要求,在不增大片内SRAM 容量的基础上,降低对于DDR的访问次数,减小对于DDR的带宽需求;同时依赖芯片内部的数据处理架构完成读取数据块、处理数据块,回写运算结果,几乎全程硬件处理,减小了软件干预,特别是在处理海量数据时,CPU软件只要预先设置好寄存器配置单元,或者根据中断条件对寄存器配置单元进行刷新,可以分块处理的数据量是无限的,不受实时采集的图像帧的数目或激光点云数据的数目的约束。
需要说明的是,前述的数据读取单元、前述的控制单元、前述的运算单元、前述数据回写单元都是由硬件语言实现的状态机,其中前述的控制单元作为主状态机,其它的作为子状态机,主状态机是由状态寄存器和组合逻辑电路构成,用于根据寄存器配置单元内配置的分块传输信息分批次调度子状态机的自动运转,以实现所述待处理数据的读写迭代处理,使得本发明实施例中涉及的功能单元模块均由数字运算电路组成。
需要说明的是,所述DDR存储单元和所述SRAM专用存储单元的内部都是存储阵列,所述DDR存储单元理解为前述背景技术中的DDR,DDR的带宽是所述DDR存储单元的带宽;所述SRAM专用存储单元理解为前述背景技术中的SRAM。将待处理数据“填”进去,和表格的检索原理一样,先指定一个行,再指定一个列,就准确地找到所必需的单元格,这就是内存芯片寻址的基本原理。对于内存,这个单元格可称为存储单元,那么这个表格(存储阵列)就是逻辑 Bank(Logical Bank,下面简称Bank)。所述数据读取单元与所述DDR存储单元的分块传输(将大量的数据切分成小块数据,然后进行前述实施例的链式传输的方式)的过程中,每一块待处理数据块发出的起始地址不一定是对齐的,也实现对存储空间(逻辑 Bank)的一种划分,以这种划分为前提进行时,待处理数据块发出的起始地址是由每一次分块传输的待处理数据块的宽度(数据量)来决定的;所述数据回写单元与所述DDR存储单元的突发传输过程中,每一次突发传输的起始地址都是对齐的,可实现对存储空间(逻辑 Bank)的一种划分,在外部访问突发读取或者突发写入数据时,要以这种划分为前提进行,对齐地址是由每拍传输的数据宽度来决定的。
在本申请所提供的实施例中,应该理解到,所揭露的系统、芯片,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目。

Claims (8)

1.一种用于数据处理的硬件加速系统,该硬件加速系统用于读写其外部的DDR存储单元,其特征在于,该硬件加速系统包括控制单元、数据读取单元、SRAM专用存储单元、寄存器配置单元和运算单元;
控制单元与寄存器配置单元存在电性连接关系,数据读取单元与控制单元存在电性连接关系,数据读取单元与DDR存储单元存在电性连接关系,数据读取单元,用于在控制单元的读取控制作用下,利用寄存器配置单元当前保存的分块传输信息,通过一次读操作完成从DDR存储单元内读取出当前一块待处理数据块;SRAM专用存储单元与数据读取单元存在电性连接,数据读取单元用于将当前一块待处理数据块写入SRAM专用存储单元;
SRAM专用存储单元与运算单元存在电性连接,运算单元与控制单元存在电性连接关系,控制单元,用于监测到数据读取单元完成当前一块待处理数据块的读取操作后,启动运算单元按照预设的逻辑运算结构对写入SRAM专用存储单元的当前一块待处理数据块进行运算处理,使得SRAM专用存储单元的带宽全部被运算单元占用;所述SRAM专用存储单元的空间容量配置为:所述数据读取单元每次读取到的待处理数据块中的数据量、以及所述数据读取单元原先存在的中间数据的数据量的和值;
控制单元,还用于在运算单元完成当前一块待处理数据块的运算处理后,刷新寄存器配置单元当前保存的分块传输信息,以将所述DDR存储单元内存储的基于下一块待处理数据块的分块传输信息替换当前保存的分块传输信息;
其中,所述分块传输信息包括:当前一块待处理数据块的起始地址、当前一块待处理数据块的数据传输长度、当前一块待处理数据块经过所述运算单元运算处理得到的运算结果的回写地址、以及当前一块待处理数据块经过所述运算单元运算处理得到的运算结果的数据长度;起始地址和回写地址都是所述DDR存储单元的数据存储地址。
2.根据权利要求1所述硬件加速系统,其特征在于,所述硬件加速系统还包括数据回写单元,用于在所述控制单元监测到所述运算单元输出基于当前一块待处理数据块的最后一个运算结果后,根据所述当前保存的分块传输信息,采用单次写的方式或突发写的方式将这些运算结果回写到所述DDR存储单元内,使得数据回写单元通过一次写操作完成当前一块待处理数据块的所有运算结果回写到所述DDR存储单元内。
3.根据权利要求2所述硬件加速系统,其特征在于,所述控制单元,还用于在所述运算单元完成所述DDR存储单元内所有的待处理数据块的运算处理后,发出中断指令通知CPU,以使CPU开启处理已写入所述DDR存储单元的运算结果。
4.根据权利要求3所述硬件加速系统,其特征在于,当所述数据读取单元从所述DDR存储单元内读取出第一块待处理数据块之前,CPU将所述分块传输信息写入所述寄存器配置单元;
当CPU将所述分块传输信息写入所述寄存器配置单元后,所述控制单元启动所述数据读取单元从所述DDR存储单元内读取出第一块待处理数据块。
5.根据权利要求4所述硬件加速系统,其特征在于,在所述控制单元的读取控制作用下,所述数据读取单元从所述DDR存储单元内读取的待处理数据块是:所述DDR存储单元内部存储的所有待处理数据按照支持实时刷新的分块传输信息的数据量划分为一块或一块以上的待处理数据块。
6.根据权利要求1所述硬件加速系统,其特征在于,基于所述寄存器配置单元保存的分块传输信息,所述数据读取单元每次读取的待处理数据块的数据量是不同的,其中,待处理数据块的数据量等于待处理数据块的数据传输长度。
7.根据权利要求6所述硬件加速系统,其特征在于,所述待处理数据块的数据量是根据外部输入所述DDR存储单元的图像的帧率设置的,以支持所述硬件加速系统及时分块处理所述DDR存储单元内存储的图像数据;或者,所述待处理数据块的数据量是根据外部输入所述DDR存储单元的激光数据的帧率设置的,以支持所述硬件加速系统及时分块处理所述DDR存储单元内存储的激光点云地图。
8.一种芯片,其特征在于,该芯片包括权利要求1至7任一项所述的硬件加速系统。
CN202011221797.XA 2020-11-05 2020-11-05 一种用于数据处理的硬件加速系统及芯片 Active CN114442908B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202011221797.XA CN114442908B (zh) 2020-11-05 2020-11-05 一种用于数据处理的硬件加速系统及芯片
PCT/CN2021/098175 WO2022095439A1 (zh) 2020-11-05 2021-06-03 一种用于数据处理的硬件加速系统及芯片
US18/035,504 US20240021239A1 (en) 2020-11-05 2021-06-03 Hardware Acceleration System for Data Processing, and Chip

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011221797.XA CN114442908B (zh) 2020-11-05 2020-11-05 一种用于数据处理的硬件加速系统及芯片

Publications (2)

Publication Number Publication Date
CN114442908A CN114442908A (zh) 2022-05-06
CN114442908B true CN114442908B (zh) 2023-08-11

Family

ID=81361744

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011221797.XA Active CN114442908B (zh) 2020-11-05 2020-11-05 一种用于数据处理的硬件加速系统及芯片

Country Status (3)

Country Link
US (1) US20240021239A1 (zh)
CN (1) CN114442908B (zh)
WO (1) WO2022095439A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115599717B (zh) * 2022-11-15 2023-03-10 浪潮电子信息产业股份有限公司 一种数据搬移方法、装置、设备及介质
CN117373501B (zh) * 2023-12-08 2024-04-09 深圳星云智联科技有限公司 统计业务执行速率提升方法及相关装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1783203A (zh) * 2004-12-03 2006-06-07 深圳迈瑞生物医疗电子股份有限公司 硬件加速显示水平线段的装置及其方法
CN102044062A (zh) * 2010-12-23 2011-05-04 福州瑞芯微电子有限公司 基于图像块处理实现图像xy轴镜像和180度旋转系统
CN106959936A (zh) * 2016-01-08 2017-07-18 福州瑞芯微电子股份有限公司 一种fft的硬件加速实现装置及方法
CN107657581A (zh) * 2017-09-28 2018-02-02 中国人民解放军国防科技大学 一种卷积神经网络cnn硬件加速器及加速方法
CN108415859A (zh) * 2018-04-28 2018-08-17 珠海市微半导体有限公司 一种激光陀螺仪数据的硬件加速电路
CN108958800A (zh) * 2018-06-15 2018-12-07 中国电子科技集团公司第五十二研究所 一种基于fpga硬件加速的ddr管理控制系统
CN109857702A (zh) * 2019-04-18 2019-06-07 珠海市一微半导体有限公司 一种基于机器人的激光雷达数据读写控制系统及芯片
WO2020034500A1 (zh) * 2018-08-14 2020-02-20 珠海市一微半导体有限公司 一种基于二值化算法的加速控制系统、芯片及机器人
CN111142808A (zh) * 2020-04-08 2020-05-12 浙江欣奕华智能科技有限公司 存取设备及存取方法
CN111679286A (zh) * 2020-05-12 2020-09-18 珠海市一微半导体有限公司 一种基于硬件加速的激光定位系统及芯片

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100369024C (zh) * 2005-01-17 2008-02-13 北京中星微电子有限公司 直接存储访问控制装置和图像处理系统以及传输方法
CN111126589B (zh) * 2019-12-31 2022-05-20 昆仑芯(北京)科技有限公司 神经网络数据处理装置、方法和电子设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1783203A (zh) * 2004-12-03 2006-06-07 深圳迈瑞生物医疗电子股份有限公司 硬件加速显示水平线段的装置及其方法
CN102044062A (zh) * 2010-12-23 2011-05-04 福州瑞芯微电子有限公司 基于图像块处理实现图像xy轴镜像和180度旋转系统
CN106959936A (zh) * 2016-01-08 2017-07-18 福州瑞芯微电子股份有限公司 一种fft的硬件加速实现装置及方法
CN107657581A (zh) * 2017-09-28 2018-02-02 中国人民解放军国防科技大学 一种卷积神经网络cnn硬件加速器及加速方法
CN108415859A (zh) * 2018-04-28 2018-08-17 珠海市微半导体有限公司 一种激光陀螺仪数据的硬件加速电路
CN108958800A (zh) * 2018-06-15 2018-12-07 中国电子科技集团公司第五十二研究所 一种基于fpga硬件加速的ddr管理控制系统
WO2020034500A1 (zh) * 2018-08-14 2020-02-20 珠海市一微半导体有限公司 一种基于二值化算法的加速控制系统、芯片及机器人
CN109857702A (zh) * 2019-04-18 2019-06-07 珠海市一微半导体有限公司 一种基于机器人的激光雷达数据读写控制系统及芯片
CN111142808A (zh) * 2020-04-08 2020-05-12 浙江欣奕华智能科技有限公司 存取设备及存取方法
CN111679286A (zh) * 2020-05-12 2020-09-18 珠海市一微半导体有限公司 一种基于硬件加速的激光定位系统及芯片

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Optimizing remote accesses for offloaded kernels: Application to high-level synthesis for FPGA;Christophe Alias et al.;IEEE;全文 *

Also Published As

Publication number Publication date
WO2022095439A1 (zh) 2022-05-12
CN114442908A (zh) 2022-05-06
US20240021239A1 (en) 2024-01-18

Similar Documents

Publication Publication Date Title
EP0870303B1 (en) High performance universal multi-port internally cached dynamic random access memory system, architecture and method
US7729200B2 (en) Memory device, memory controller and memory system
US6553449B1 (en) System and method for providing concurrent row and column commands
US8918589B2 (en) Memory controller, memory system, semiconductor integrated circuit, and memory control method
KR19990007287A (ko) 반도체 집적회로, 컴퓨터 시스템, 데이터 처리장치 및 데이터 처리방법
CN107077882B (zh) 一种dram刷新方法、装置和系统
CN114442908B (zh) 一种用于数据处理的硬件加速系统及芯片
CN112506823B (zh) 一种fpga数据读写方法、装置、设备及可读存储介质
JP2001022638A (ja) 情報処理システム
US6247104B1 (en) Memory access control circuit
CN100536021C (zh) 大容量高速缓冲存储器
US5703810A (en) DRAM for texture mapping
CN117215491A (zh) 一种快速数据访问方法、快速数据访问装置及光模块
US6542958B1 (en) Software control of DRAM refresh to reduce power consumption in a data processing system
US8244929B2 (en) Data processing apparatus
KR101560015B1 (ko) 메모리 영역으로의 복수의 프로세서의 액세스를 제어하는 방법 및 상기 방법을 구현하기 위한 메시지 메모리를 구비한 통신 모듈
JPH113324A (ja) メモリ内蔵のデータ処理装置及び処理システム
US20010040581A1 (en) Shared memory graphics accelerator system
CN116226032A (zh) 用于ddr存储器的读控制系统
US20240295973A1 (en) Memory circuit
US20240070093A1 (en) Asymmetric Read-Write Sequence for Interconnected Dies
WO2023089778A1 (ja) メモリ回路
CN116069389A (zh) 一种mcu访问系统
CN117130976A (zh) 存储器、片上系统、终端及数据读写方法
KR100754361B1 (ko) 데이터 입출력 파워 공유가 가능한 다중 포트 메모리 장치

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