CN112559404B - 一种数据调度装置、方法和加速处理芯片 - Google Patents

一种数据调度装置、方法和加速处理芯片 Download PDF

Info

Publication number
CN112559404B
CN112559404B CN202011398223.XA CN202011398223A CN112559404B CN 112559404 B CN112559404 B CN 112559404B CN 202011398223 A CN202011398223 A CN 202011398223A CN 112559404 B CN112559404 B CN 112559404B
Authority
CN
China
Prior art keywords
data
synchronous
processing unit
module
scheduling
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
CN202011398223.XA
Other languages
English (en)
Other versions
CN112559404A (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.)
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Original Assignee
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center 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 Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd filed Critical Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority to CN202011398223.XA priority Critical patent/CN112559404B/zh
Publication of CN112559404A publication Critical patent/CN112559404A/zh
Application granted granted Critical
Publication of CN112559404B publication Critical patent/CN112559404B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

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)
  • Information Transfer Systems (AREA)
  • Multi Processors (AREA)

Abstract

本申请提供一种数据调度装置、方法和加速处理芯片,数据调度装置通过片载的输入缓冲器和输入缓冲器替代了本地DDR缓存,在移除本地DDR之后可以降低加速板卡的系统复杂度和硬件成本,可以充分释放PCIe的带宽性能;在有限的片上缓存资源的约束下,进行去中心化调度,将调度控制分解为请求分解模块、配置接口模块、输入调度模块、输出调度模块、状态接口模块和响应合成模块,各个模块异步工作,顺序处理任务队列中的任务,从而实现任务间的流水处理,有效地保证了任务请求之间背靠背的无缝链接,增加了数据处理单元的利用率,从而提高了整体系统的数据吞吐量。

Description

一种数据调度装置、方法和加速处理芯片
技术领域
本申请涉及数据调度技术领域,特别涉及一种数据调度装置、方法和加速处理芯片。
背景技术
随着大数据、AI(Artificial Intelligence,人工智能)、5G等新兴产业的迅速发展,各式应用场景层出不群,存储计算系统当中的通用CPU处理压力持续增大,再加上通用CPU(Central Processing Unit,中央处理器)对某些计算任务的执行效率不高,这都不断地推高了存储计算系统中CPU的占用率,CPU处理能力的瓶颈最终会限制存储计算系统整体性能的提升与扩展。
相关技术中采用调度控制中心进行数据的调度,请参考图1,图1为相关技术的数据处理业务的流程示意图,其中,在加速处理芯片内需要一个统一的调度控制中心,它的具体实现可以是专用硬件电路或者通用微控制器辅以相应软件程序,按照数据业务处理流程,顺序执行如下调度步骤:
1.调度控制中心首先需要通过PCIe(Peripheral component interconnectexpress,外设高速互联)接口从主机侧DDR((Double Data Rate,双倍速率)内取回待处理数据块的配置信息;2.在调度控制中心拿到配置信息后,需要对其进行解析,并和数据处理单元进行握,若其处于空闲状态,则写入相应配置后启动数据处理操作;于此同时,还需要根据数据输入缓冲的状态(填充深度)不断地从主机侧DDR中调入数据,这个过程因数据块大小的不同又耗时若干个us;3.在输出结果数据的方向上,调度控制中心也需要根据数据输出缓冲的状态(填充深度)不断地调出数据到主机侧DDR中,并在数据处理单元处理结束后,读取最终的状态信息(包括处理后数据块的大小和错误码等);4.最后,调度控制中心将该数据块的结果信息封装,并通过PCIe总线传输到主机侧DDR中,通知主机拿取处理后的数据结果,传输上百个字节的反馈信息耗时约1us左右。
但是面对每秒数十万次的IO请求时,请参考图2,图2为相关技术对应的任务处理流水示意图,都无法实时地照顾到每个请求,并最终实现各项硬件资源之间的无缝衔接只能数据块依次处理,系统的数据吞吐率低,数据处理单元的利用率低。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
本申请的目的是提供一种数据调度装置、方法和加速处理芯片,增加了数据处理单元的利用率,从而提高了整体系统的数据吞吐量。其具体方案如下:
本申请提供了一种数据调度装置,包括:
请求分解模块,用于将主机DDR发送的数据块的请求配置信息进行分解,得到多个子配置信息,并将所述子配置信息写入配置FIFO、同步FIFO1、同步FIFO2、同步FIFO3中;
配置接口模块,用于根据所述配置FIFO对数据处理单元进行配置;
输入调度模块,用于当输入缓冲器还存在剩余空间时,通过配置PCIe DMA从所述主机DDR按照所述同步FIFO1取回待处理数据块至所述输入缓冲器,以使所述数据处理单元的输入数据不断流;
输出调度模块,用于通过配置PCIe DMA将所述数据处理单元处理待处理数据块得到的结果数据按照所述同步FIFO2从所述输出缓冲器传输至所述主机DDR,以使所述数据处理单元不被输出数据流反压;
状态接口模块,用于接收所述数据处理单元的任务完成时的结果状态信息,并将所述结果状态信息传递给响应合成模块;
所述响应合成模块,用于将所述结果状态信息封装,并通过配置PCIe DMA根据所述同步FIFO3传输至所述主机DDR。
优选地,所述配置接口模块,用于:
监控所述数据处理单元的处理状态;
当所述处理状态是闲状态时,将所述配置FIFO中的下一信息写入实时数据处理单元的寄存器中,以便所述数据处理单元进行数据处理。
优选地,所述输入调度模块,用于:
通过配置PCIe DMA从所述主机DDR取回所述待处理数据块至所述输入缓冲器;
在当前请求的所有源数据都调入所述输入缓冲器后,若所述输入缓冲器存在剩余空间,则从所述同步FIFO1中读取下一个信息,继续调入数据至所述输入缓冲器中。
优选地,所述输出调度模块,用于:
当所述结果数据的大小为确定值,则通过配置PCIe DMA将所述数据处理单元处理待处理数据块得到的结果数据,按照所述同步FIFO2中的与所述确定值对应的所述存放结果数据空间大小搬运至所述主机DDR中。
优选地,所述输出调度模块,用于:
实时监控所述状态接口模块的状态FIFO的填充状态;
当检测到所述填充状态非空,则从所述状态FIFO读取实际产生的所述结果数据的大小;
依据实际产生的所述结果数据的大小,将所述输出缓冲器中剩余的数据一次或分多次按照所述同步FIFO2中的存放结果数据地址传输至所述主机DDR。
优选地,所述响应合成模块,用于:
当判定所述同步FIFO3和同步FIFO4的内容均为非空,则将所述结果状态信息封装;
其中,所述同步FIFO4是所述输出调度模块将所述状态FIFO的相关内容存入同步FIFO4,用以形成响应封装。
本申请提供了一种数据调度方法,包括:
请求分解模块将主机DDR发送的数据块的请求配置信息进行分解,得到多个子配置信息,并将所述子配置信息写入配置FIFO、同步FIFO1、同步FIFO2、同步FIFO3中;
配置接口模块根据所述配置FIFO对数据处理单元进行配置;
当输入缓冲器还存在剩余空间时,输入调度模块通过配置PCIe DMA从所述主机DDR按照所述同步FIFO1取回待处理数据块至所述输入缓冲器,以使所述数据处理单元的输入数据不断流;
输出调度模块通过配置PCIe DMA将所述数据处理单元处理待处理数据块得到的结果数据按照所述同步FIFO2从所述输出缓冲器传输至所述主机DDR,以使所述数据处理单元不被输出数据流反压;
状态接口模块接收所述数据处理单元的任务完成时的结果状态信息,并将所述结果状态信息传递给响应合成模块;
所述响应合成模块将所述结果状态信息封装,并通过配置PCIe DMA根据所述同步FIFO3传输至所述主机DDR。
优选地,所述配置接口模块根据配置FIFO对数据处理单元进行配置,包括:
所述配置接口模块监控所述数据处理单元的处理状态;
当所述处理状态是闲状态时,将所述配置FIFO中的下一信息写入实时数据处理单元的寄存器中,以便所述数据处理单元进行数据处理。
优选地,所述当所述输入缓冲器还存在剩余空间时,输入调度模块通过配置PCIeDMA从所述主机DDR按照同步FIFO1取回待处理数据块至所述输入缓冲器,包括:
所述输入调度模块通过配置PCIe DMA从所述主机DDR取回所述待处理数据块至所述输入缓冲器;
在当前请求的所有源数据都调入所述输入缓冲器后,若所述输入缓冲器存在剩余空间,则从所述同步FIFO1中读取下一个信息,继续调入数据至所述输入缓冲器中。
本申请提供了一种加速处理芯片,包括:
输入缓冲器;
输出缓冲器;
数据处理单元;
如上所述的数据调度装置。
本申请提供了一种数据调度装置,包括:请求分解模块,用于将主机DDR发送的数据块的请求配置信息进行分解,得到多个子配置信息,并将子配置信息写入配置FIFO、同步FIFO1、同步FIFO2、同步FIFO3中;配置接口模块,用于根据配置FIFO对数据处理单元进行配置;输入调度模块,用于当输入缓冲器还存在剩余空间时,通过配置PCIe DMA从主机DDR按照同步FIFO1取回待处理数据块至输入缓冲器,以使数据处理单元的输入数据不断流;输出调度模块,用于通过配置PCIe DMA将数据处理单元处理待处理数据块得到的结果数据按照同步FIFO2从输出缓冲器传输至主机DDR,以使数据处理单元不被输出数据流反压;状态接口模块,用于接收数据处理单元的任务完成时的结果状态信息,并将结果状态信息传递给响应合成模块;响应合成模块,用于将结果状态信息封装,并通过配置PCIe DMA根据同步FIFO3传输至主机DDR。
可见,本申请通过片载的输入缓冲器和输入缓冲器替代了本地DDR缓存,在移除本地DDR之后可以降低加速板卡的系统复杂度和硬件成本;打破了板卡上本地DDR的带宽需求瓶颈(2倍于PCIe带宽),可以充分释放PCIe的带宽性能;在有限的片上缓存资源的约束下,进行去中心化调度,将调度控制分解为请求分解模块、配置接口模块、输入调度模块、输出调度模块、状态接口模块和响应合成模块,各个模块异步工作,顺序处理任务队列中的任务,从而实现任务间的流水处理,有效地保证了任务请求之间“背靠背”的无缝链接,增加了数据处理单元的利用率,从而提高了整体系统的数据吞吐量。
本申请同时还提供了数据调度方法和加速处理芯片,均具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为相关技术的数据处理业务的流程示意图;
图2为相关技术对应的任务处理流水示意图;
图3为本申请实施例所提供的一种数据调度装置的结构示意图;
图4为本申请实施例提供的一种加速板卡与主机之间的数据链路示意图;
图5为本申请实施例提供的另一种加速板卡与主机之间的数据链路示意图;
图6为本申请实施例提供的一种任务处理流水示意图;
图7为本申请实施例所提供的一种数据调度方法的流程示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
相关技术在加速处理芯片内设置统一的调度控制中心,它的具体实现可以是专用硬件电路或者通用微控制器辅以相应软件程序,按照数据业务处理流程,顺序执行调度步骤。但是面对每秒数十万次的IO请求时,无法实时地照顾到每个请求,并最终实现各项硬件资源之间的无缝衔接只能数据块依次处理,系统的数据吞吐率低,数据处理单元的利用率低。
基于上述技术问题,本实施例提供一种数据调度装置,具体请参考图3,图3为本申请实施例所提供的一种数据调度装置的结构示意图,具体包括:
请求分解模块310,用于将主机DDR发送的数据块的请求配置信息进行分解,得到多个子配置信息,并将子配置信息写入配置FIFO(First Input First Output,先入先出)、同步FIFO1、同步FIFO2、同步FIFO3中;
配置接口模块320,用于根据配置FIFO对数据处理单元进行配置;
输入调度模块330,用于当输入缓冲器还存在剩余空间时,通过配置PCIe DMA(Direct Memory Access,直接存储器访问)从主机DDR按照同步FIFO1取回待处理数据块至输入缓冲器,以使数据处理单元的输入数据不断流;
输出调度模块340,用于通过配置PCIe DMA将数据处理单元处理待处理数据块得到的结果数据按照同步FIFO2从输出缓冲器传输至主机DDR,以使数据处理单元不被输出数据流反压;
状态接口模块350,用于接收数据处理单元的任务完成时的结果状态信息,并将结果状态信息传递给响应合成模块360;
响应合成模块360,用于将结果状态信息封装,并通过配置PCIe DMA根据同步FIFO3传输至主机DDR。
其中,配置FIFO包括源数据大小、存放结果数据空间大小、数据处理单元配置信息;同步FIFO1包括:源数据地址、实时源数据大小;同步FIFO2包括存放结果数据地址、存放结果数据空间大小;同步FIFO3包括结果状态信息写回地址和回调函数地址。
请参考图4,图4为本申请实施例提供的一种加速板卡与主机之间的数据链路示意图,其中,输入调度模块330,负责实时的监控输入缓冲器的填充状态,并通过配置PCIe DMA从主机端取回待处理的数据至输入缓冲,保证数据处理单元的输入数据不断流。配置接口模块320,负责对接数据处理单元,监控数据处理单元的忙/闲状态,并将任务配置的子配置信息写入数据处理单元的寄存器中后,启动数据处理。输出调度模块340,负责实时的监控输出缓冲器的填充状态,并通过配置PCIe DMA将处理后的结果数据从输出缓冲器传输至主机DDR,保证数据处理单元不被输出数据流反压。状态接口模块350,负责接受数据处理任务完成时的结果状态信息,并将该信息传递给响应合成模块360。响应合成模块360,负责将数据处理任务结果状态封装并通过配置PCIe DMA将其传输至预先指定的主机DDR的对应内存储空间。各个调度子模块异步工作,顺序处理任务队列里面的任务,从而实现任务间的流水处理。
基于上述技术方案,本实施例通过片载的输入缓冲器和输入缓冲器替代了本地DDR缓存,在移除本地DDR之后可以降低加速板卡的系统复杂度和硬件成本;打破了板卡上本地DDR的带宽需求瓶颈(2倍于PCIe带宽),可以充分释放PCIe的带宽性能;在有限的片上缓存资源的约束下,进行去中心化调度,将调度控制分解为请求分解模块310、配置接口模块320、输入调度模块330、输出调度模块340、状态接口模块350和响应合成模块360,各个模块异步工作,顺序处理任务队列中的任务,从而实现任务间的流水处理,有效地保证了任务请求之间“背靠背”的无缝链接,增加了数据处理单元的利用率,从而提高了整体系统的数据吞吐量。
在另一种可实现的实施方式中,请参考图5,图5为本申请实施例提供的另一种加速板卡与主机之间的数据链路示意图。
调动控制的去中心化,按照职能划分,将调度控制依次分解成六个分立的调度子模块。
其中,请求分解模块310,负责通过配置PCIe DMA从主机DDR取回请求配置信息,并进行信息分解,并将子配置信息压入(push)各个调度子模块同步FIFO当中,具体信息元素到各个FIFO的映射关系参见表1。
表1
Figure BDA0002816110620000081
各个FIFO中对应单个请求的信息长度和格式固定,各个调度子模块可以清晰定位出各个请求之间的边界。
进一步的,配置接口模块320,用于:监控数据处理单元的处理状态;当处理状态是闲状态时,将配置FIFO中的下一信息写入实时数据处理单元的寄存器中,以便数据处理单元进行数据处理。其中,该配置接口模块320简化为配置FIFO,入口接收请求分解模块310压入的配置信息,出口直接对接数据处理单元,数据处理单元在当前任务结束后,立即检查配置FIFO是否为空(是否有待处理的任务),若非空,则按约定的配置信息格式读取配置信息,并自动开始下一个数据处理任务。整个过程中,不需要和调度控制握手,实现了背靠背的数据处理任务衔接。
进一步的,输入调度模块330,用于:通过配置PCIe DMA从主机DDR取回待处理数据块至输入缓冲器;在当前请求的所有源数据都调入输入缓冲器后,若输入缓冲器存在剩余空间,则从同步FIFO1中读取下一个信息,继续调入数据至输入缓冲器中。其中,输入调度模块330,负责实时的监控输入缓冲器的填充状态,并通过配置PCIe DMA从主机DDR取回待处理数据块至输入缓冲器,在当前请求的所有源数据都调入输入缓冲器后,如果输入缓冲器内还有剩余空间,则从同步FIFO1中在读取下一个请求的源数据地址和大小,继续调入数据,不必等待数据处理单元当前请求处理结束后才能调入下一个请求的待处理数据,最大可能地抵消了PCIe总线在H2C(Host to client,主机端到客户机端)方向上的时延特性,保证数据处理单元的输入数据不会断流。
进一步的,输出调度模块340,用于:当结果数据的大小为确定值,则通过配置PCIeDMA将数据处理单元处理待处理数据块得到的结果数据,按照同步FIFO2中的与确定值对应的存放结果数据空间大小搬运至主机DDR中。
进一步的,输出调度模块340,用于:实时监控状态接口模块350的状态FIFO的填充状态;当检测到填充状态非空,则从状态FIFO读取实际产生的结果数据的大小;依据实际产生的结果数据的大小,将输出缓冲器中剩余的数据一次或分多次按照同步FIFO2中的存放结果数据地址传输至主机DDR。
其中,输出调度模块340,负责实时的监控输出缓冲器的填充状态,并通过配置PCIe DMA将处理后的结果数据从输出缓冲器传输至主机DDR。
有关处理后数据块的大小,依据处理算法特性,一般有两种情况,一种是输出的结果数据有着确定值,比如“纠删”计算,单个校验数据块的大小和单个输入数据块的大小一致,输出调度模块340只需要按事先约定好的数据大小来调度数据搬运到主机DDR。
另外一种情况则是最终产生数据块大小不确定,只有在最后一个输入数据处理结束后才能最终确定输出数据库的结果数据的大小,比如“数据压缩”。这种情况就需要实时监控状态接口模块350的(状态FIFO)的填充状态,一旦检测到为“非空”,则表征当前处理任务结束,需要立即从状态FIFO读取出如下的关键信息:a)实际消耗的数据大小(源数据大小);b)实际产生的结果数据的大小;c)状态/错误代码;
依据实际产生的结果数据的大小,将输出缓冲器中剩余的数据一次性或分多次(依据搬运的颗粒度设定)传输至主机DDR。
在完成数据调度后,输出调度模块340还需将状态FIFO的相关内容存入同步FIFO4,用以形成响应封装。此后,若同步FIFO2非空,则再从中取出一个请求的配置信息执行相应的调度操作。
进一步的,响应合成模块360,用于:当判定同步FIFO3和同步FIFO4的内容均为非空,则将结果状态信息封装;其中,同步FIFO4是输出调度模块340将状态FIFO的相关内容存入同步FIFO4,用以形成响应封装。其中,合同步FIFO3和同步FIFO4的内容(均为非空),负责将数据处理任务结果状态封装并通过配置PCIe DMA将其传输至预先指定的主机DDR的对应内存储空间。
请参考图6,图6为本申请实施例提供的一种任务处理流水示意图,所实现的任务间流水,其中,请求分解模块依次接收到请求A、B、C等的请求配置信息,请求A进行分解得到的子配置信息包括请求A1、请求A2、请求A3、请求A4,可见,在某一时刻(虚线标识处),各个功能模块可异步服务于不同的请求,这样就最大化的提高了数据处理单元的利用率和系统整体的数据吞吐率。
可见,通过片载的输入/输出缓冲器替代了本地DDR缓存,在移除本地DDR之后可以降低加速板卡的系统复杂度和硬件成本;打破了板卡上本地DDR的带宽需求瓶颈(2倍于PCIe带宽),可以充分释放PCIe的带宽性能。在有限的片上缓存资源的约束下,去中心化的调度控制方法有效地保证了任务请求之间“背靠背”的无缝链接,增加了数据处理单元的利用率,从而提高了整体系统的数据吞吐量。
下面对本申请实施例提供的一种数据调度方法进行介绍,下文描述的数据调度方法与上文描述的数据调度装置可相互对应参照,参考图7,图7为本申请实施例所提供的一种数据调度方法的流程示意图,包括:
S701、请求分解模块将主机DDR发送的数据块的请求配置信息进行分解,得到多个子配置信息,并将子配置信息写入配置FIFO、同步FIFO1、同步FIFO2、同步FIFO3中;
S702、配置接口模块根据配置FIFO对数据处理单元进行配置;
S703、当输入缓冲器还存在剩余空间时,输入调度模块通过配置PCIe DMA从主机DDR按照同步FIFO1取回待处理数据块至输入缓冲器,以使数据处理单元的输入数据不断流;
S704、输出调度模块通过配置PCIe DMA将数据处理单元处理待处理数据块得到的结果数据按照同步FIFO2从输出缓冲器传输至主机DDR,以使数据处理单元不被输出数据流反压;
S705、状态接口模块接收数据处理单元的任务完成时的结果状态信息,并将结果状态信息传递给响应合成模块;
S706、响应合成模块将结果状态信息封装,并通过配置PCIe DMA根据同步FIFO3传输至主机DDR。
优选地,配置接口模块根据配置FIFO对数据处理单元进行配置,包括:
配置接口模块监控数据处理单元的处理状态;
当处理状态是闲状态时,将配置FIFO中的下一信息写入实时数据处理单元的寄存器中,以便数据处理单元进行数据处理。
优选地,当输入缓冲器还存在剩余空间时,输入调度模块通过配置PCIe DMA从主机DDR按照同步FIFO1取回待处理数据块至输入缓冲器,包括:
输入调度模块通过配置PCIe DMA从主机DDR取回待处理数据块至输入缓冲器;
在当前请求的所有源数据都调入输入缓冲器后,若输入缓冲器存在剩余空间,则从同步FIFO1中读取下一个信息,继续调入数据至输入缓冲器中。
优选地,输出调度模块通过配置PCIe DMA将数据处理单元处理待处理数据块得到的结果数据按照同步FIFO2从输出缓冲器传输至主机DDR,包括:
当结果数据的大小为确定值,则通过配置PCIe DMA将数据处理单元处理待处理数据块得到的结果数据,按照同步FIFO2中的与确定值对应的存放结果数据空间大小搬运至主机DDR中。
优选地,输出调度模块通过配置PCIe DMA将数据处理单元处理待处理数据块得到的结果数据按照同步FIFO2从输出缓冲器传输至主机DDR,包括:
实时监控状态接口模块的状态FIFO的填充状态;
当检测到填充状态非空,则从状态FIFO读取实际产生的结果数据的大小;
依据实际产生的结果数据的大小,将输出缓冲器中剩余的数据一次或分多次按照同步FIFO2中的存放结果数据地址传输至主机DDR。
优选地,响应合成模块将结果状态信息封装,包括:
当判定同步FIFO3和同步FIFO4的内容均为非空,则将结果状态信息封装;
其中,同步FIFO4是输出调度模块将状态FIFO的相关内容存入同步FIFO4,用以形成响应封装。
下面对本申请实施例提供的一种加速处理芯片进行介绍,下文描述的加速处理芯片与上文描述的装置可相互对应参照。
一种加速处理芯片,包括:
输入缓冲器;
输出缓冲器;
数据处理单元;
如上述的数据调度装置。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种数据调度装置、方法和加速处理芯片进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

Claims (10)

1.一种数据调度装置,其特征在于,包括:
请求分解模块,用于将主机DDR发送的数据块的请求配置信息进行分解,得到多个子配置信息,并将所述子配置信息写入配置FIFO、同步FIFO1、同步FIFO2和同步FIFO3中;
配置接口模块,用于根据所述配置FIFO对数据处理单元进行配置;
输入调度模块,用于当输入缓冲器还存在剩余空间时,根据所述同步FIFO1,通过配置PCIe DMA从所述主机DDR取回待处理数据块至所述输入缓冲器,以使所述数据处理单元的输入数据不断流;
输出调度模块,用于根据所述同步FIFO2,通过配置PCIe DMA将所述数据处理单元处理所述待处理数据块得到的结果数据,从输出缓冲器传输至所述主机DDR,以使所述数据处理单元不被输出数据流反压;
状态接口模块,用于接收所述数据处理单元的任务完成时的结果状态信息,并将所述结果状态信息传递给响应合成模块;
所述响应合成模块,用于将所述结果状态信息封装,并通过配置PCIe DMA根据所述同步FIFO3传输至所述主机DDR。
2.根据权利要求1所述的数据调度装置,其特征在于,所述配置接口模块,用于:
监控所述数据处理单元的处理状态;
当所述处理状态是闲状态时,将所述配置FIFO中的下一信息写入所述数据处理单元的寄存器中,以便所述数据处理单元进行数据处理。
3.根据权利要求2所述的数据调度装置,其特征在于,所述输入调度模块,用于:
通过配置PCIe DMA从所述主机DDR取回所述待处理数据块至所述输入缓冲器;
在当前请求的所有源数据都调入所述输入缓冲器后,若所述输入缓冲器存在剩余空间,则从所述同步FIFO1中读取下一个信息,继续调入数据至所述输入缓冲器中。
4.根据权利要求3所述的数据调度装置,其特征在于,所述输出调度模块,用于:
当所述结果数据的大小为确定值,则通过配置PCIe DMA将所述数据处理单元处理待处理数据块得到的结果数据,根据所述同步FIFO2,将与所述确定值对应的所述结果数据空间大小传输至所述主机DDR中。
5.根据权利要求3所述的数据调度装置,其特征在于,所述输出调度模块,用于:
实时监控所述状态接口模块的状态FIFO的填充状态;
当检测到所述填充状态非空,则从所述状态FIFO读取实际产生的所述结果数据的大小;
依据实际产生的所述结果数据的大小,将所述输出缓冲器中剩余的数据一次或分多次按照所述同步FIFO2中的存放结果数据地址传输至所述主机DDR。
6.根据权利要求1所述的数据调度装置,其特征在于,所述响应合成模块,用于:
当判定所述同步FIFO3和同步FIFO4的内容均为非空,则将所述结果状态信息封装;
其中,所述同步FIFO4是所述输出调度模块将状态FIFO的相关内容存入同步FIFO4,用以形成响应封装。
7.一种数据调度方法,其特征在于,包括:
请求分解模块将主机DDR发送的数据块的请求配置信息进行分解,得到多个子配置信息,并将所述子配置信息写入配置FIFO、同步FIFO1、同步FIFO2和同步FIFO3中;
配置接口模块根据所述配置FIFO对数据处理单元进行配置;
当输入缓冲器还存在剩余空间时,输入调度模块根据所述同步FIFO1,通过配置PCIeDMA从所述主机DDR取回待处理数据块至所述输入缓冲器,以使所述数据处理单元的输入数据不断流;
输出调度模块根据所述同步FIFO2,通过配置PCIe DMA将所述数据处理单元处理所述待处理数据块得到的结果数据,从输出缓冲器传输至所述主机DDR,以使所述数据处理单元不被输出数据流反压;
状态接口模块接收所述数据处理单元的任务完成时的结果状态信息,并将所述结果状态信息传递给响应合成模块;
所述响应合成模块将所述结果状态信息封装,并通过配置PCIe DMA根据所述同步FIFO3传输至所述主机DDR。
8.根据权利要求7所述的数据调度方法,其特征在于,所述配置接口模块根据配置FIFO对数据处理单元进行配置,包括:
所述配置接口模块监控所述数据处理单元的处理状态;
当所述处理状态是闲状态时,将所述配置FIFO中的下一信息写入所述数据处理单元的寄存器中,以便所述数据处理单元进行数据处理。
9.根据权利要求7所述的数据调度方法,其特征在于,所述当输入缓冲器还存在剩余空间时,输入调度模块通过配置PCIe DMA从所述主机DDR按照同步FIFO1取回待处理数据块至所述输入缓冲器,包括:
所述输入调度模块通过配置PCIe DMA从所述主机DDR取回所述待处理数据块至所述输入缓冲器;
在当前请求的所有源数据都调入所述输入缓冲器后,若所述输入缓冲器存在剩余空间,则从所述同步FIFO1中读取下一个信息,继续调入数据至所述输入缓冲器中。
10.一种加速处理芯片,其特征在于,包括:
输入缓冲器;
输出缓冲器;
数据处理单元;
如权利要求1至6任一项所述的数据调度装置。
CN202011398223.XA 2020-12-03 2020-12-03 一种数据调度装置、方法和加速处理芯片 Active CN112559404B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011398223.XA CN112559404B (zh) 2020-12-03 2020-12-03 一种数据调度装置、方法和加速处理芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011398223.XA CN112559404B (zh) 2020-12-03 2020-12-03 一种数据调度装置、方法和加速处理芯片

Publications (2)

Publication Number Publication Date
CN112559404A CN112559404A (zh) 2021-03-26
CN112559404B true CN112559404B (zh) 2023-02-24

Family

ID=75047875

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011398223.XA Active CN112559404B (zh) 2020-12-03 2020-12-03 一种数据调度装置、方法和加速处理芯片

Country Status (1)

Country Link
CN (1) CN112559404B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114153506A (zh) * 2021-11-26 2022-03-08 上海弘积信息科技有限公司 一种负载均衡设备中驱动安全加速芯片的新方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109471816A (zh) * 2018-11-06 2019-03-15 西安微电子技术研究所 一种基于描述符的pcie总线dma控制器及数据传输控制方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020176430A1 (en) * 2001-01-25 2002-11-28 Sangha Onkar S. Buffer management for communication systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109471816A (zh) * 2018-11-06 2019-03-15 西安微电子技术研究所 一种基于描述符的pcie总线dma控制器及数据传输控制方法

Also Published As

Publication number Publication date
CN112559404A (zh) 2021-03-26

Similar Documents

Publication Publication Date Title
CN113849293B (zh) 数据处理方法、装置、系统及计算机可读存储介质
JP2007079789A (ja) 計算機システム及びイベント処理方法
WO2016189294A1 (en) Single-chip multi-processor communication
CN113590512B (zh) 可直连外设设备的自启动dma装置及应用
US20240143392A1 (en) Task scheduling method, chip, and electronic device
CN112559404B (zh) 一种数据调度装置、方法和加速处理芯片
CN112491426A (zh) 面向多核dsp的服务组件通信架构及任务调度、数据交互方法
US8135851B2 (en) Object request broker for accelerating object-oriented communications and method
CN116737083B (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
US11941440B2 (en) System and method for queuing commands in a deep learning processor
CN112306827A (zh) 日志采集装置、方法和计算机可读存储介质
CN115563038A (zh) 基于dma控制器的数据处理系统、方法和数据处理设备
CN115562887A (zh) 基于数据组包的核间数据通信方法、系统、设备及介质
CN114168626A (zh) 一种数据库操作的处理方法、装置、设备及介质
US8176117B2 (en) Accelerator for object-oriented communications and method
JP2013539577A (ja) インタラプト・ベースのコマンド処理
CN212873459U (zh) 一种用于数据压缩存储的系统
CN110891032A (zh) 一种人脸数据并行下发方法、装置及电子设备
CN114399034B (zh) 用于直接存储器访问装置的数据搬运方法
CN115145864B (zh) 数据处理方法、系统、电子设备和存储介质
CN116521097B (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
CN112835823B (zh) 存储控制器应答发送方法
US20240184624A1 (en) Method and system for sequencing artificial intelligence (ai) jobs for execution at ai accelerators
CN117478616A (zh) 报文处理系统及报文处理方法
CN117573230A (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