直接内存存取方法、装置、专用计算芯片及异构计算系统制造方法及图纸

技术编号:22688716 阅读:17 留言:0更新日期:2019-11-30 03:27
本说明书实施例提供一种直接内存存取方法、装置、专用计算芯片及异构计算系统,在直接内存存取方法中,从DMA控制块指针队列中读取DMA控制块指针。根据DMA控制块指针,在系统内存中确定对应的DMA控制块。确定DMA控制块中的DMA控制信息和输入数据的总长度。根据DMA控制块指针以及总长度,将DMA控制信息和输入数据搬移至设备内存。对输入数据进行相应的计算,得到输出数据。将输出数据写入设备内存,并获取输出数据的长度。根据DMA控制信息以及输出数据的长度,将输出数据从设备内存搬移至DMA控制块。

Direct memory access method, device, dedicated computing chip and heterogeneous computing system

The embodiment of the specification provides a direct memory access method, device, dedicated computing chip and heterogeneous computing system. In the direct memory access method, DMA control block pointer is read from DMA control block pointer queue. According to the DMA control block pointer, the corresponding DMA control block is determined in the system memory. Determine the total length of DMA control information and input data in the DMA control block. Move DMA control information and input data to device memory according to DMA control block pointer and total length. Calculate the input data and get the output data. Write the output data to the device memory and get the length of the output data. According to the DMA control information and the length of the output data, the output data is moved from the device memory to the DMA control block.

【技术实现步骤摘要】
直接内存存取方法、装置、专用计算芯片及异构计算系统
本说明书一个或多个实施例涉及计算机
,尤其涉及一种直接内存存取方法、装置、专用计算芯片及异构计算系统。
技术介绍
异构计算是指由通用中央处理器(CentralProcessingUnit,CPU)进行数据处理整体流程的控制,当需要进行专用计算时,通用CPU调用专用计算芯片进行计算。具体地,通用CPU需要调用直接内存存取(DirectMemoryAccess,DMA)方法(一种通过专用的硬件模块实现内存数据的搬移方法),将专用计算的输入数据从系统内存传输到设备内存。专用计算芯片完成计算后,再把输出数据传输回系统内存。由此可以看出,在一次异构计算中,需要分别进行两次的DMA传输:输入数据的传输和输出数据的传输。具体地,输入数据的传输过程可以为:1)访问DMA描述符所在队列的指针,以读取输入数据的DMA描述符(用于描述输入数据的地址和长度)。2)访问输入数据的DMA描述符,以读取输入数据的地址和长度。3)根据输入数据的地址和长度,读取输入数据。输出数据的传输过程可以为:1)访问DMA描述符所在队列的指针,以读取输出数据的DMA描述符(用于描述输出数据的地址和长度)。2)访问输出数据的DMA描述符,以读取输出数据的地址和长度;3)根据输出数据的地址和长度,写入输出数据。综上,传统技术中,一次异构计算的过程需要执行六次访问操作。
技术实现思路
本说明书一个或多个实施例描述了一种直接内存存取方法、装置、专用计算芯片及异构计算系统,可以减小DMA传输中的数据访问次数,从而可以提高异构计算的性能。第一方面,提供了一种直接内存存取方法,包括:从直接内存存取DMA控制块指针队列中读取DMA控制块指针;根据所述DMA控制块指针,在系统内存中确定对应的DMA控制块,所述DMA控制块的内容包括DMA控制信息和输入数据;所述系统内存是指用于存储通用中央处理器CPU使用的数据的存储空间;确定所述DMA控制信息和所述输入数据的总长度;根据所述DMA控制块指针以及所述总长度,将所述DMA控制信息和所述输入数据搬移至设备内存;所述设备内存是指用于存储专用计算芯片的数据的存储空间;对所述输入数据进行相应的计算,得到输出数据;将所述输出数据写入所述设备内存;获取所述输出数据的长度;根据所述DMA控制信息以及所述输出数据的长度,将所述输出数据从所述设备内存搬移至所述DMA控制块。第二方面,提供了一种专用计算芯片,包括:直接内存存取DMA长度寄存器、DMA控制块指针队列、DMA数据传输模块以及专用计算模块;所述DMA长度寄存器,用于存储输入数据的长度以及输出数据的长度;所述DMA控制块指针队列,用于存储多个DMA控制块指针;所述DMA控制块指针指向系统内存中的DMA控制块;所述DMA控制块的内容包括DMA控制信息和输入数据;DMA数据传输模块,用于根据所述输入数据的长度、所述DMA控制信息的长度以及所述DMA控制块指针,将所述DMA控制信息以及所述输入数据从系统内存搬移至设备内存;还用于根据所述DMA控制信息以及所述输出数据的长度,将所述输出数据从所述设备内存搬移至所述系统内存;所述专用计算模块,用于对所述输入数据进行计算,并得到所述输出数据。第三方面,提供了一种异构计算系统,包括:通用中央处理器CPU、系统内存、如上述第二方面提供的专用计算芯片和设备内存;所述通用CPU,用于调用所述专用计算芯片进行异构计算;所述系统内存,用于存储所述通用CPU使用的数据;所述设备内存,用于存储所述专用计算芯片所使用的数据。第四方面,提供了一种直接内存存取装置,包括:读取单元,用于从直接内存存取DMA控制块指针队列中读取DMA控制块指针;确定单元,用于根据所述读取单元读取的所述DMA控制块指针,在系统内存中确定对应的DMA控制块,所述DMA控制块的内容包括DMA控制信息和输入数据;所述系统内存是指用于存储通用中央处理器CPU使用的数据的存储空间;所述确定单元,还用于确定所述DMA控制信息和所述输入数据的总长度;搬移单元,用于根据所述读取单元读取的所述DMA控制块指针以及所述确定单元确定的所述总长度,将所述DMA控制信息和所述输入数据搬移至设备内存;所述设备内存是指用于存储专用计算芯片的数据的存储空间;计算单元,用于对所述输入数据进行相应的计算,得到输出数据;写入单元,用于将所述计算单元计算的所述输出数据写入所述设备内存;获取单元,用于获取所述输出数据的长度;所述搬移单元,还用于根据所述DMA控制信息以及所述获取单元获取的所述输出数据的长度,将所述输出数据从所述设备内存搬移至所述DMA控制块。本说明书一个或多个实施例提供的直接内存存取方法、装置、专用计算芯片及异构计算系统,从DMA控制块指针队列中读取DMA控制块指针。根据DMA控制块指针,在系统内存中确定对应的DMA控制块。确定DMA控制块中的DMA控制信息和输入数据的总长度。根据DMA控制块指针以及总长度,将DMA控制信息和输入数据搬移至设备内存。对输入数据进行相应的计算,得到输出数据。将输出数据写入设备内存,并获取输出数据的长度。根据DMA控制信息以及输出数据的长度,将输出数据从设备内存搬移至DMA控制块。由此可以看出,本说明书提供的方案,在输入数据的传输过程,执行如下两次访问操作:第一次,访问DMA控制块指针队列,以读取DMA控制块指针。第二次,访问DMA控制块指针,以读取DMA控制信息和输入数据。相比传统的技术方案,减少了对DMA描述符的访问。在对输入数据进行相应的计算之后,可以直接根据DMA控制信息,将输出数据搬移至DMA控制块。也即输出数据的传输过程,只执行一次输出数据的访问,不需要再执行DMA描述符所在队列的指针以及输出数据的描述符的访问操作。综上,相比传统技术,两次的DMA传输可以减少3次访问操作。这可以大大提升数据的DMA传输效率,进而可以提高异构计算的性能。附图说明为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本说明书提供的异构计算系统结构示意图;图2为本说明书一个实施例提供的直接内存存取方法流程图;图3为本说明书一个实施例提供的直接内存存取装置示意图。具体实施方式下面结合附图,对本说明书提供的方案进行描述。本说明书一个实施例提供的直接内存存取方法可以应用于如图1所示的异构计算系统中,该异构计算系统可以包括:通用CPU10、系统内存20、专用计算芯片30以及设备内存40,其中,通用CPU10和专用计算芯片30也可以称为异构计算系统中的两个计算单元。...

【技术保护点】
1.一种直接内存存取方法,其特征在于,包括:/n从直接内存存取DMA控制块指针队列中读取DMA控制块指针;/n根据所述DMA控制块指针,在系统内存中确定对应的DMA控制块,所述DMA控制块的内容包括DMA控制信息和输入数据;所述系统内存是指用于存储通用中央处理器CPU使用的数据的存储空间;/n确定所述DMA控制信息和所述输入数据的总长度;/n根据所述DMA控制块指针以及所述总长度,将所述DMA控制信息和所述输入数据搬移至设备内存;所述设备内存是指用于存储专用计算芯片的数据的存储空间;/n对所述输入数据进行相应的计算,得到输出数据;/n将所述输出数据写入所述设备内存;/n获取所述输出数据的长度;/n根据所述DMA控制信息以及所述输出数据的长度,将所述输出数据从所述设备内存搬移至所述DMA控制块。/n

【技术特征摘要】
1.一种直接内存存取方法,其特征在于,包括:
从直接内存存取DMA控制块指针队列中读取DMA控制块指针;
根据所述DMA控制块指针,在系统内存中确定对应的DMA控制块,所述DMA控制块的内容包括DMA控制信息和输入数据;所述系统内存是指用于存储通用中央处理器CPU使用的数据的存储空间;
确定所述DMA控制信息和所述输入数据的总长度;
根据所述DMA控制块指针以及所述总长度,将所述DMA控制信息和所述输入数据搬移至设备内存;所述设备内存是指用于存储专用计算芯片的数据的存储空间;
对所述输入数据进行相应的计算,得到输出数据;
将所述输出数据写入所述设备内存;
获取所述输出数据的长度;
根据所述DMA控制信息以及所述输出数据的长度,将所述输出数据从所述设备内存搬移至所述DMA控制块。


2.根据权利要求1所述的方法,其特征在于,所述DMA控制信息包括所述输出数据的偏移地址;
所述根据所述DMA控制信息以及所述输出数据的长度,将所述设备内存的所述输出数据搬移到所述DMA控制块,包括:
根据所述输出数据的偏移地址以及所述输出数据的长度,将所述输出数据从所述设备内存搬移至所述DMA控制块。


3.根据权利要求1所述的方法,其特征在于,所述DMA控制信息具有固定长度;所述确定所述DMA控制信息和所述输入数据的总长度,包括:
从DMA长度寄存器中读取所述输入数据的长度;所述输入数据的长度是由所述通用CPU根据当前所执行的异构计算方法确定的;
根据所述固定长度以及所述输入数据的长度,确定所述总长度。


4.一种专用计算芯片,其特征在于,包括:直接内存存取DMA长度寄存器、DMA控制块指针队列、DMA数据传输模块以及专用计算模块;
所述DMA长度寄存器,用于存储输入数据的长度以及输出数据的长度;
所述DMA控制块指针队列,用于存储多个DMA控制块指针;所述DMA控制块指针指向系统内存中的DMA控制块;所述DMA控制块的内容包括DMA控制信息和输入数据;
DMA数据传输模块,用于根据所述输入数据的长度、所述DMA控制信息的长度以及所述DMA控制块指针,将所述DMA控制信息以及所述输入数据从系统内存搬移至设备内存;还用于根据所述DMA控制...

【专利技术属性】
技术研发人员:廖恬瑜潘国振
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利