数据处理方法及装置与流程

文档序号:16068263发布日期:2018-11-24 12:53阅读:153来源:国知局

本申请涉及通信技术领域,尤其涉及一种数据处理方法及装置。

背景技术

目前通用加速器如图形处理器(graphicprocessingunit,gpu)或者现场可编程门阵列(field-programmablegatearray,fpga)等主要是采用大容量高带宽的外部存储。随着新的领域计算需求的发展,例如神经网络算法的卷积核加速,运算量比传统算法提高2个数量级,对数据量的需求也相应提升,gpu、fpga等传统通用加速器的加速瓶颈主要受仿存带宽的制约。在功耗上仿问外部存储的功耗占90%以上。为了解决访问外部存储造成功耗较高的问题。现有技术采用大容量的片上存储。而为了配合大容量的片上存储。相应的,网络设备可以采用多核心的互联的设计方法。

在多核心的互联技术中,传统的通用加速器如gpu、fpga加速卡通过高延迟的低速接口,比如通用输入/输出(generalpurposeinputoutput,gpio)、串行外设接口(serialperipheralinterface,spi)、通用异步收发传输器(universalasynchronousreceiver/transmitter,uart)等做总线控制器的初始化、激活高速总线,以及板级调试。而作为主设备的中央处理器(centralprocessingunit,cpu)与gpu、fpga加速卡等从设备之间通过低速接口进行初始化、激活高速总线,以及板级调试时,存在数据传输较低的问题。



技术实现要素:

本申请提供一种数据处理方法及装置,一方面可以提高数据传输效率;另一方面可以缓解数据处理装置之间的通道阻塞问题。

第一方面,本申请提供一种数据处理方法,包括:第一通信单元向第二通信单元发送操作命令;该操作命令包括:至少一个字段;并接收第二通信单元根据操作命令向第一通信单元发送的反馈命令;反馈命令包括:至少一个字段中的每个字段对应的反馈信息;其中,按照反馈信息的发送顺序,第一个反馈信息至倒数第二个反馈信息中的至少一个反馈信息的开始发送时间早于操作命令的接收结束时间。

本申请的有益效果是:通过执行该数据处理方法,使得第二通信单元无需等到接收到整个操作命令之后,才对操作命令中的各个字段进行反馈,从而提高了数据传输效率。进而降低第二通信单元之间的切换时长,并且可以缓解第一通信单元与第二通信单元之间的通道阻塞问题。

可选地,操作命令为以下任一项:读请求命令、读确认命令、写请求命令和写确认命令。

可选地,当操作命令为读请求命令、读确认命令或者写确认命令时,该操作命令包括:操作类型和操作对应的目的地址;相应的,第一通信单元向第二通信单元发送操作命令;并接收第二通信单元根据操作命令向第一通信单元发送的反馈命令,包括:第一通信单元向第二通信单元发送操作类型;第一通信单元接收第二通信单元发送的操作类型对应的第一反馈信息;若第一通信单元根据操作类型和第一反馈信息判断操作类型正确,则第一通信单元向第二通信单元发送目的地址;第一通信单元接收第二通信单元发送的目的地址对应的第二反馈信息。

可选地,当操作命令为读请求命令、读确认命令或者写确认命令时,操作命令包括:操作类型和操作对应的目的地址;相应的,第一通信单元向第二通信单元发送操作命令;并接收第二通信单元根据操作命令向第一通信单元发送的反馈命令,包括:第一通信单元向第二通信单元发送所述操作类型;第一通信单元接收操作类型对应的第一反馈信息的同时,向第二通信单元发送目的地址;第一通信单元接收目的地址对应的第二反馈信息。

即当操作命令为读请求命令、读确认命令或者写确认命令时,操作命令包括:操作类型和操作对应的目的地址,可以通过执行上述两种可选方式,从而使得第二通信单元无需等到接收到整个操作命令之后,才对操作命令中的各个字段进行反馈,从而提高了数据传输效率。进而降低第二通信单元之间的切换时长,并且可以缓解第一通信单元与第二通信单元之间的通道阻塞问题。

可选地,当操作命令为写请求命令时,操作命令包括:操作类型、操作对应的目的地址和待操作数据;相应的,第一通信单元向第二通信单元发送操作命令;并接收第二通信单元根据操作命令向第一通信单元发送的反馈命令,包括:第一通信单元向第二通信单元发送操作类型;第一通信单元接收第二通信单元发送的操作类型对应的第一反馈信息;若第一通信单元根据操作类型和第一反馈信息判断操作类型正确,则第一通信单元向第二通信单元发送目的地址;第一通信单元接收第二通信单元发送的目的地址对应的第二反馈信息;若第一通信单元根据目的地址和第二反馈信息判断目的地址正确,则第一通信单元向第二通信单元发送待操作数据;第一通信单元接收第二通信单元发送的待操作数据对应的第三反馈信息。

可选地,当操作命令为写请求命令时,操作命令包括:操作类型、操作对应的目的地址和待操作数据;相应的,第一通信单元向第二通信单元发送操作命令;并接收第二通信单元根据操作命令向第一通信单元发送的反馈命令,包括:第一通信单元向第二通信单元发送操作类型;第一通信单元接收操作类型对应的第一反馈信息的同时,向第二通信单元发送目的地址;第一通信单元接收目的地址对应的第二反馈信息的同时,向第二通信单元发送待操作数据;第一通信单元接收待操作数据对应的第三反馈信息。

即当操作命令为写请求命令时,操作命令包括:操作类型、操作对应的目的地址和待操作数据,可以通过执行上述两种可选方式,从而使得第二通信单元无需等到接收到整个操作命令之后,才对操作命令中的各个字段进行反馈,从而提高了数据传输效率。进而降低第二通信单元之间的切换时长,并且可以缓解第一通信单元与第二通信单元之间的通道阻塞问题。

可选地,还包括:若操作命令为写确认命令,且第一通信单元根据写确认命令确认写操作失败,则第一通信单元重发写确认命令对应的写请求命令;其中,第一通信单元重发写请求操作所采用的线程与第一通信单元首次发送的另一操作命令采用的线程不同。

本申请中,当写操作执行失败时,第一通信单元重发写请求操作所采用的线程可以与第一通信单元首次发送的另一操作命令采用的线程不同。从而提高数据处理效率。

可选地,第一通信单元重发写确认命令对应的写请求命令,包括:第一通信单元统计写操作失败的次数;若写操作失败的次数小于或者等于预设阈值,则第一通信单元重发写确认命令对应的写请求命令。

可选地,还包括:若操作命令为读确认命令,且第一通信单元根据读确认命令确认读操作失败,则第一通信单元重发读确认命令对应的读请求命令;其中,第一通信单元重发读请求操作所采用的线程与第一通信单元首次发送的另一操作命令采用的线程不同。

本申请中,当读操作执行失败时,第一通信单元重发读请求操作所采用的线程可以与第一通信单元首次发送的另一操作命令采用的线程不同。从而提高数据处理效率。

可选地,第一通信单元重发读确认命令对应的读请求命令,包括:第一通信单元统计读操作失败的次数;若读操作失败的次数小于或者等于预设阈值,则第一通信单元重发读确认命令对应的读请求命令。

下面对第二通信单元执行的数据处理方法进行介绍,其实现原理和技术效果与上述原理和技术效果类似,此处不再赘述。

第二方面,本申请提供一种数据处理方法,包括:第二通信单元接收第一通信单元发送的操作命令;操作命令包括:至少一个字段;第二通信单元根据操作命令向第一通信单元发送反馈命令;反馈命令包括:至少一个字段中的每个字段对应的反馈信息;其中,按照反馈信息的发送顺序,第一个反馈信息至倒数第二个反馈信息中的至少一个反馈信息的开始发送时间早于操作命令的接收结束时间。

可选地,操作命令为以下任一项:读请求命令、读确认命令、写请求命令和写确认命令。

下面将介绍数据处理装置,该数据处理装置可以用于执行第一方面及第一方面对应的可选方式,其实现原理和技术效果类似,此处不再赘述。

第三方面,本申请提供一种数据处理装置,包括:收发模块,用于向第二通信单元发送操作命令;操作命令包括:至少一个字段;并接收第二通信单元根据操作命令向装置发送的反馈命令;反馈命令包括:至少一个字段中的每个字段对应的反馈信息;其中,按照反馈信息的发送顺序,第一个反馈信息至倒数第二个反馈信息中的至少一个反馈信息的开始发送时间早于操作命令的接收结束时间。

可选地,操作命令为以下任一项:读请求命令、读确认命令、写请求命令和写确认命令。

可选地,当操作命令为读请求命令、读确认命令或者写确认命令时,操作命令包括:操作类型和操作对应的目的地址;相应的,收发模块具体用于:向第二通信单元发送操作类型;接收第二通信单元发送的操作类型对应的第一反馈信息;装置还包括:第一判断模块,用于若根据操作类型和第一反馈信息判断操作类型正确,则收发模块向第二通信单元发送目的地址;收发模块,具体用于接收第二通信单元发送的目的地址对应的第二反馈信息。

可选地,当操作命令为读请求命令、读确认命令或者写确认命令时,操作命令包括:操作类型和操作对应的目的地址;相应的,收发模块具体用于:向第二通信单元发送操作类型;接收操作类型对应的第一反馈信息的同时,向第二通信单元发送目的地址;接收目的地址对应的第二反馈信息。

可选地,当操作命令为写请求命令时,操作命令包括:操作类型、操作对应的目的地址和待操作数据;相应的,收发模块具体用于:向第二通信单元发送操作类型;接收第二通信单元发送的操作类型对应的第一反馈信息;装置还包括:第二判断模块,用于若根据操作类型和第一反馈信息判断操作类型正确,则收发模块向第二通信单元发送目的地址;收发模块,具体用于接收第二通信单元发送的目的地址对应的第二反馈信息;第二判断模块,还用于根据目的地址和第二反馈信息判断目的地址正确,则收发模块向第二通信单元发送待操作数据;收发模块,具体用于接收第二通信单元发送的待操作数据对应的第三反馈信息。

可选地,当操作命令为写请求命令时,操作命令包括:操作类型、操作对应的目的地址和待操作数据;相应的,收发模块具体用于:向第二通信单元发送操作类型;接收操作类型对应的第一反馈信息的同时,向第二通信单元发送目的地址;接收目的地址对应的第二反馈信息的同时,向第二通信单元发送待操作数据;接收待操作数据对应的第三反馈信息。

可选地,还包括:第一确认模块,用于若操作命令为写确认命令,且根据写确认命令确认写操作失败,则收发模块还用于重发写确认命令对应的写请求命令;其中,收发模块重发写请求操作所采用的线程与收发模块首次发送的另一操作命令采用的线程不同。

可选地,收发模块具体用于:统计写操作失败的次数;若写操作失败的次数小于或者等于预设阈值,则重发写确认命令对应的写请求命令。

可选地,还包括:第二确认模块,用于若操作命令为读确认命令,且根据读确认命令确认读操作失败,则收发模块具体用于重发读确认命令对应的读请求命令;其中,收发模块重发读请求操作所采用的线程与收发模块首次发送的另一操作命令采用的线程不同。

可选地,收发模块具体用于:统计读操作失败的次数;若读操作失败的次数小于或者等于预设阈值,则重发读确认命令对应的读请求命令。

下面将介绍数据处理装置,该数据处理装置可以用于执行第二方面及第二方面对应的可选方式,其实现原理和技术效果类似,此处不再赘述。

第四方面,本申请提供一种数据处理装置,包括:接收模块,用于接收第一通信单元发送的操作命令;操作命令包括:至少一个字段;发送模块,用于根据操作命令向第一通信单元发送反馈命令;反馈命令包括:至少一个字段中的每个字段对应的反馈信息;其中,按照反馈信息的发送顺序,第一个反馈信息至倒数第二个反馈信息中的至少一个反馈信息的开始发送时间早于操作命令的接收结束时间。

可选地,操作命令为以下任一项:读请求命令、读确认命令、写请求命令和写确认命令。

第五方面,本申请提供一种计算机存储介质,用于储存为上述第一通信单元所用的计算机软件指令,其包含用于执行上述第一方面所设计的程序。

第六方面,本申请实施例提供一种计算机存储介质,用于储存为上述第二通信单元所用的计算机软件指令,其包含用于执行上述第二方面所设计的程序。

第七方面,本申请提供一种计算机程序产品,其包含指令,当所述计算机程序被计算机所执行时,该指令使得计算机执行上述第一方面及可选方法中第一通信单元所执行的功能。

第八方面,本申请提供一种计算机程序产品,其包含指令,当所述计算机程序被计算机所执行时,该指令使得计算机执行上述第二方面及可选方法中第二通信单元所执行的功能。

本申请提供一种数据处理方法及装置,该方法包括:第一通信单元向第二通信单元发送操作命令。该操作命令包括:至少一个字段。第一通信单元接收第二通信单元根据操作命令向第一通信单元发送的反馈命令;该反馈命令包括:至少一个字段中的每个字段对应的反馈信息。其中,按照所述反馈信息的发送顺序,第一个反馈信息至倒数第二个反馈信息中的至少一个反馈信息的开始发送时间早于所述操作命令的接收结束时间。从而使得第二通信单元无需等到接收到整个操作命令之后,才对操作命令中的各个字段进行反馈,从而提高了数据传输效率。进而降低第二通信单元之间的切换时长,并且可以缓解第一通信单元与第二通信单元之间的通道阻塞问题。

附图说明

图1为本申请提供的数据处理方法的应用场景示意图;

图2为本申请一实施例提供的数据处理方法的流程图;

图3为本申请一实施例提供的读请求命令和反馈命令的格式示意图;

图4为本申请一实施例提供的读请求命令和反馈命令对应的电路时序示意图;

图5为本申请一实施例提供的读确认命令和反馈命令的格式示意图;

图6为本申请一实施例提供的读确认命令和反馈命令对应的电路时序示意图;

图7为本申请一实施例提供的读操作状态转换图;

图8为本申请一实施例提供的写请求命令和反馈命令的格式示意图;

图9为本申请一实施例提供的读请求命令和反馈命令对应的电路时序示意图;

图10为本申请一实施例提供的写确认命令和反馈命令的格式示意图;

图11为本申请一实施例提供的写确认命令和反馈命令对应的电路时序示意图;

图12为本申请一实施例提供的写操作状态转换图;

图13为本申请一实施例提供的一种数据处理装置的结构示意图;

图14为本申请另一实施例提供的一种数据处理装置的结构示意图。

具体实施方式

目前通用加速器如gpu、fpga主要是采用大容量高带宽的外部存储,例如5通道显存(graphicsdoubledatarateversion5,gddr5)存储。随着新的领域计算需求的发展,例如神经网络算法的卷积核加速,运算量比传统算法提高2个数量级,对数据量的需求也相应提升,gpu、fpga等传统通用加速器的加速瓶颈主要受仿存带宽的制约。在功耗上,仿问外部存储的功耗占90%以上。

在体系结构处理器设计领域,cpu、加速器等的处理速度与访存速度之间存在着剪刀差问题。近年来随着以卷积神经网络为代表的深度学习技术的发展。对处理器性能的要求逐渐提高,访存问题极大制约着深度学习技术的发展。在这样的背景下,通过大容量的片上存储以及多核心的互联的设计方法,以降低处理速度与访存速度之间的剪刀差。

在业界相继推出了大容量片上存储的cpu以及加速器,采用增强动态随机存取存储器(enhanceddynamicrandomaccessmemory,edram)技术,提高片上存储容量。以数据靠近运算单元的存储模式,结合预取策略,在一定程度上缓解了存储墙问题,通用加速器的片上存储容量的提升趋势。

在深度学习算法中,随着网络规模的增大,存在运算复杂度爆炸性增长的问题。如果处理器架构不具备互联扩展性,则片上存储容量增加带来的收益,必定会被计算规模增大的需求所抵消。作为一个面向未来的处理器,深度学习协处理器需要通过多芯片互联,承载算法规模任意增大的需求。目前业界通用的fpga加速平台,如xilinx的最新平台都采用多片精简指令集计算机(reducedinstructionsetcomputer,risc)微处理器(advancedriscmachines,arm)集成到一个fpga加速卡上,计算加速平台如eve等则更是几十个上百个加速核心。随着加速核心的增多,面临着软件需要支持对多核心的调度问题,而在领域通用加速器的运行过程中,新任务执行前需要对加速器进行初始化,需要进行任务切换以将算法初始值以及加速器配置传输到cpu中。

传统的通用加速器中,如gpu、fpga加速器,一般通过高速接口,外围部件接口标准(peripheralcomponentinterconnect,pcie)传输运算数据;通过高延迟的低速接口,比如gpio、spi、uart等做总线控制器的初始化、激活高速总线,以及板级调试。而当cpu和加速器通过低速接口进行初始化、激活高速总线,以及板级调试等数据传输时,cpu向加速器发送完数据之后,加速器才开始向cpu发送反馈命令。同样的,加速器向cpu发送完数据之后,cpu才开始向加速器发送反馈命令。从而导致数据传输效率较低,而一般低速接口的等待时间相同于内部时钟的上万周期,造成加速器之间的切换时长太长,影响加速器的调度以及初始化等,并且易造成加速器与cpu之间的通道阻塞。

为了解决上述技术问题,本申请提供一种数据处理方法及装置。图1为本申请提供的数据处理方法的应用场景示意图,如图1所示,本申请中一个第一通信单元可以与多个第二通信单元通过低速接口连接。其中第二通信单元之间应该也存在传输接口,图中未示出。本申请主要介绍一个第一通信单元和一个第二通信单元之间的数据处理方法。

其中第一通信单元可以是cpu,第二通信单元可以是gpu、fpga等加速器。或者,第一通信单元可以是gpu、fpga等加速器。第二通信单元可以是cpu。除了基于cpu和加速器之间的应用场景。该数据处理方法还可以扩展至任何通信单元之间的数据传输。因此,第一通信单元和第二通信单元还可以是计算机、服务器、终端设备、基站等。本申请实施例对此不做限制。

具体地,图2为本申请一实施例提供的数据处理方法的流程图。如图2所示,该方法包括如下流程:

步骤s201:第一通信单元向第二通信单元发送操作命令;该操作命令包括:至少一个字段。

步骤s202:第一通信单元接收第二通信单元根据操作命令向第一通信单元发送的反馈命令;该反馈命令包括:至少一个字段中的每个字段对应的反馈信息。

其中,按照反馈信息的发送顺序,第一个反馈信息至倒数第二个反馈信息中的至少一个反馈信息的开始发送时间早于所述操作命令的接收结束时间。

该操作命令为以下任一项:读请求命令、读确认命令、写请求命令和写确认命令。其中当操作命令为读请求命令、读确认命令或者写确认命令中的一个时,操作命令包括:操作类型和操作对应的目的地址。当操作命令为写请求命令时,操作命令包括:操作类型、操作对应的目的地址和待操作数据。

具体地,当操作命令为读请求命令时,该读请求命令包括的操作类型为:读请求。操作对应的目的地址为:待读取数据所在设备的地址。该地址可以是互联网协议地址(internetprotocoladdress,ip)地址或者媒体访问控制(mediaaccesscontrol,mac)地址等。而操作类型对应的第一反馈信息也是一个操作类型,该操作类型可能与读请求命令中的操作类型相同,也可能不同。如果相同,表示第二通信单元接收到的操作类型正确。如果不同,表示第二通信单元接收到的操作类型错误。目的地址对应的第二反馈信息也是一个地址,该地址可能与读请求命令中的目的地址相同,也可能不同。如果相同,表示第二通信单元接收到的目的地址正确。如果不同,表示第二通信单元接收到的目的地址错误。

当操作命令为读确认命令时,该读确认命令包括的操作类型为:读确认。操作对应的目的地址为:待确认数据所在设备的地址。该地址可以是ip地址或者mac地址等。操作类型对应的第一反馈信息也是一个操作类型,该操作类型可能与读确认命令中的操作类型相同,也可能不同。如果相同,表示第二通信单元接收到的操作类型正确。如果不同,表示第二通信单元接收到的操作类型错误。目的地址对应的第二反馈信息也是一个地址,该地址可能与读确认命令中的目的地址相同,也可能不同。如果相同,表示第二通信单元接收到的目的地址正确。如果不同,表示第二通信单元接收到的目的地址错误。

当操作命令为写确认命令时,该写确认命令包括的操作类型为:写确认。操作对应的目的地址为:待确认数据所在设备的地址。该地址可以是ip地址或者mac地址等。操作类型对应的第一反馈信息也是一个操作类型,该操作类型可能与写确认命令中的操作类型相同,也可能不同。如果相同,表示第二通信单元接收到的操作类型正确。如果不同,表示第二通信单元接收到的操作类型错误。目的地址对应的第二反馈信息也是一个地址,该地址可能与写确认命令中的目的地址相同,也可能不同。如果相同,表示第二通信单元接收到的目的地址正确。如果不同,表示第二通信单元接收到的目的地址错误。

当操作命令为写请求命令时,该写请求命令包括的操作类型为:写请求。操作对应的目的地址为:待写入数据所在设备的地址。该地址可以是ip地址或者mac地址等。写请求命令中的待操作数据为待写入数据。而操作类型对应的第一反馈信息也是一个操作类型,该操作类型可能与写请求命令中的操作类型相同,也可能不同。如果相同,表示第二通信单元接收到的操作类型正确。如果不同,表示第二通信单元接收到的操作类型错误。目的地址对应的第二反馈信息也是一个地址,该地址可能与写请求命令中的目的地址相同,也可能不同。如果相同,表示第二通信单元接收到的目的地址正确。如果不同,表示第二通信单元接收到的目的地址错误。待操作数据对应的第三反馈信息也是一个数据,该数据可能与写请求命令中的待写入数据相同,也可能不同。如果相同,表示第二通信单元接收到的待写入数据正确。如果不同,表示第二通信单元接收到的待写入数据错误。

其中,上述的读请求命令和读确认命令具有对应关系。即读确认命令是对读请求命令的确认。上述的写请求命令和写确认命令具有对应关系。即写确认命令是对写请求命令的确认。

本申请对步骤s201和步骤s202的先后顺序不做限制。实际上,步骤s201和步骤s202的发送和接收过程可以理解为并行过程。具体地,本申请的重点在于按照反馈信息的发送顺序,第一个反馈信息至倒数第二个反馈信息中的至少一个反馈信息的开始发送时间早于所述操作命令的接收结束时间。例如:当第一通信单元依次发送操作类型、操作对应的目的地址和待操作数据时,第二通信单元可以在接收到待操作数据之前,先向第一通信单元发送操作类型对应的反馈信息以及目的地址对应的反馈信息。

本申请提供一种数据处理方法,包括:第一通信单元向第二通信单元发送操作命令。该操作命令包括:至少一个字段。第一通信单元接收第二通信单元根据操作命令向第一通信单元发送的反馈命令;该反馈命令包括:至少一个字段中的每个字段对应的反馈信息。其中,按照所述反馈信息的发送顺序,第一个反馈信息至倒数第二个反馈信息中的至少一个反馈信息的开始发送时间早于所述操作命令的接收结束时间。从而使得第二通信单元无需等到接收到整个操作命令之后,才对操作命令中的各个字段进行反馈,从而提高了数据传输效率。进而降低第二通信单元之间的切换时长,并且可以缓解第一通信单元与第二通信单元之间的通道阻塞问题。

可选地,第二通信单元接收到第一通信单元发送的第一个字段之后,所述数据处理方法还包括:第二通信单元向第一通信单元发送设备状态信息。其中该设备状态信息可以携带在反馈命令中。该设备状态信息用于指示第一通信单元和第二通信单元的接口是否正常。例如:假设第一通信单元和第二通信单元之间的接口为spi接口。则该设备状态信息用于指示spi接口是否正常。

可选地,第二通信单元接收到第一通信单元发送的操作命令之后,所述数据处理方法还包括:响应信息。其中该响应信息可以携带在反馈命令中。该响应信息用于指示所述第二通信单元是否成功接收到操作命令。例如:当操作命令是读请求命令时,响应信息为读请求响应信息。当操作命令是读确认命令时,响应信息为读确认响应信息。当操作命令是写请求命令时,响应信息为写请求响应信息。当操作命令是写确认命令时,响应信息为写确认响应信息。

下面对上述发送读请求命令、读确认命令、写请求命令和写确认命令的过程以及接收反馈命令的过程进行详细说明:

图3为本申请一实施例提供的读请求命令和反馈命令的格式示意图。图4为本申请一实施例提供的读请求命令和反馈命令对应的电路时序示意图。结合图3和图4进行说明:读请求命令作为第一通信单元的输出命令。读请求命令长度为56比特。依次包括:8比特的操作类型、32比特的目的地址、16比特的空白位。读请求命令对应的反馈命令作为第一通信单元的输入命令。反馈命令依次包括:设备状态信息、操作类型对应的第一反馈信息和目的地址对应的第二反馈信息、读请求响应信息。其中第一反馈信息和第二反馈信息的总长度可以为40比特。读请求响应信息的长度可以为8比特。

一种可选方式,当操作命令为读请求命令时,操作命令包括:操作类型和操作对应的目的地址;相应的,第一通信单元向第二通信单元发送操作命令;并接收所述第二通信单元根据所述操作命令向所述第一通信单元发送的反馈命令,包括:第一通信单元向所述第二通信单元发送所述操作类型;第一通信单元接收第二通信单元发送的操作类型对应的第一反馈信息;若第一通信单元根据操作类型和第一反馈信息判断操作类型正确,则第一通信单元向第二通信单元发送所述目的地址;第一通信单元接收第二通信单元发送的目的地址对应的第二反馈信息。

另一种可选方式,当操作命令为所述读请求命令时,所述操作命令包括:操作类型和操作对应的目的地址。如图4所示,所述第一通信单元向第二通信单元发送操作命令;并接收所述第二通信单元根据所述操作命令向所述第一通信单元发送的反馈命令,包括:所述第一通信单元向所述第二通信单元发送所述操作类型;所述第一通信单元接收所述操作类型对应的第一反馈信息的同时,向所述第二通信单元发送所述目的地址;所述第一通信单元接收所述目的地址对应的第二反馈信息。

当然本申请保护满足如下条件的任一可选方案:按照反馈信息的发送顺序,第一个反馈信息至倒数第二个反馈信息中的至少一个反馈信息的开始发送时间早于所述操作命令的接收结束时间。

图5为本申请一实施例提供的读确认命令和反馈命令的格式示意图。图6为本申请一实施例提供的读确认命令和反馈命令对应的电路时序示意图。结合图5和图6进行说明:读确认命令作为第一通信单元的输出命令。读确认命令长度为120比特。依次包括:8比特的操作类型、32比特的目的地址、80比特的空白位。读确认命令对应的反馈命令作为第一通信单元的输入命令。反馈命令依次包括:设备状态信息、操作类型对应的第一反馈信息和目的地址对应的第二反馈信息、读确认响应信息。其中设备状态信息的长度可以为8比特。第一反馈信息和第二反馈信息的总长度可以为40比特。读请求响应信息的长度可以为8比特。

一种可选方式,当操作命令为读确认命令时,操作命令包括:操作类型和操作对应的目的地址;相应的,第一通信单元向第二通信单元发送操作命令;并接收所述第二通信单元根据所述操作命令向所述第一通信单元发送的反馈命令,包括:第一通信单元向所述第二通信单元发送所述操作类型;第一通信单元接收第二通信单元发送的操作类型对应的第一反馈信息;若第一通信单元根据操作类型和第一反馈信息判断操作类型正确,则第一通信单元向第二通信单元发送所述目的地址;第一通信单元接收第二通信单元发送的目的地址对应的第二反馈信息。

另一种可选方式,当操作命令为所述读确认命令时,所述操作命令包括:操作类型和操作对应的目的地址。如图6所示,所述第一通信单元向第二通信单元发送操作命令;并接收所述第二通信单元根据所述操作命令向所述第一通信单元发送的反馈命令,包括:所述第一通信单元向所述第二通信单元发送所述操作类型;所述第一通信单元接收所述操作类型对应的第一反馈信息的同时,向所述第二通信单元发送所述目的地址;所述第一通信单元接收所述目的地址对应的第二反馈信息。

当然本申请保护满足如下条件的任一可选方案:按照反馈信息的发送顺序,第一个反馈信息至倒数第二个反馈信息中的至少一个反馈信息的开始发送时间早于所述操作命令的接收结束时间。

下面结合读请求命令和读确认命令对整个读操作进行介绍。图7为本申请一实施例提供的读操作状态转换图。如图7所示,第一通信单元首先进入步骤s701:开始读请求操作。然后进入步骤s702:第一通信单元向第二通信单元发送读请求命令中的操作类型。步骤s703:当第一通信单元根据第一反馈信息判断操作类型出错或者根据第二通信单元发送的设备状态信息确定设备处于非正常状态时,第一通信单元重新进入步骤s701。否则,第一通信单元处于状态1。当第一通信单元处于状态1时,进入步骤s704:向第二通信单元发送操作对应的目的地址,并进入状态2。当第一通信单元处于状态2时,进入步骤s705:当第一通信单元根据第二反馈信息判断目的地址出错时,第一通信单元重新进入步骤s701。否则,进入步骤s706:第一通信单元向第二通信单元发送待确认数据。接着第一通信单元进入步骤s707:开始读确认操作。然后进入步骤s708:第一通信单元向第二通信单元发送读确认命令中的操作类型。步骤s709:当第一通信单元根据第一反馈信息判断操作类型出错或者根据第二通信单元发送的设备状态信息确定设备处于非正常状态时,第一通信单元重新进入步骤s707。否则,第一通信单元处于状态3。当第一通信单元处于状态3时,进入步骤s710:向第二通信单元发送操作对应的目的地址,进入状态4。步骤s711:当第一通信单元根据第二反馈信息判断目的地址出错时,第一通信单元重新进入步骤s707。否则,第一通信单元处于状态5。当第一通信单元处于状态5时,进入步骤s712:当第一通信单元根据读确认响应信息判断读确认出错时,第一通信单元重新进入步骤s707。否则,第一通信单元处于状态6。最后,进入步骤s713:第一通信单元向第二通信单元返回读取数据。最终整个读操作完成。

需要说明的是,图7所示的读操作过程只是一种可选方式。本申请不局限于此。

图8为本申请一实施例提供的写请求命令和反馈命令的格式示意图。图9为本申请一实施例提供的读请求命令和反馈命令对应的电路时序示意图。结合8图和图9进行说明:写请求命令作为第一通信单元的输出命令。写请求命令长度为120比特。依次包括:8比特的操作类型、32比特的目的地址、64比特的待操作数据。写请求命令对应的反馈命令作为第一通信单元的输入命令。反馈命令依次包括:8比特的设备状态信息、操作类型对应的第一反馈信息和目的地址对应的第二反馈信息、待操作数据对应的第三反馈信息以及写请求响应信息。其中第一反馈信息和第二反馈信息的总长度可以为40比特。第三反馈信息和写请求响应信息的长度可以为72比特。

一种可选方式,当操作命令为写请求命令时,操作命令包括:操作类型、操作对应的目的地址和待操作数据;相应的,第一通信单元向第二通信单元发送操作命令;并接收第二通信单元根据操作命令向第一通信单元发送的反馈命令,包括:第一通信单元向第二通信单元发送操作类型;第一通信单元接收第二通信单元发送的操作类型对应的第一反馈信息;若第一通信单元根据操作类型和第一反馈信息判断操作类型正确,则第一通信单元向第二通信单元发送所述目的地址;第一通信单元接收第二通信单元发送的目的地址对应的第二反馈信息;若第一通信单元根据目的地址和第二反馈信息判断所述目的地址正确,则第一通信单元向第二通信单元发送待操作数据;第一通信单元接收第二通信单元发送的待操作数据对应的第三反馈信息。

另一种可选方式,当所述操作命令为所述写请求命令时,所述操作命令包括:操作类型、操作对应的目的地址和待操作数据;如图9所示,所述第一通信单元向第二通信单元发送操作命令;并接收所述第二通信单元根据所述操作命令向所述第一通信单元发送的反馈命令,包括:所述第一通信单元向所述第二通信单元发送所述操作类型;所述第一通信单元接收所述操作类型对应的第一反馈信息的同时,向所述第二通信单元发送所述目的地址;所述第一通信单元接收所述目的地址对应的第二反馈信息的同时,向所述第二通信单元发送所述待操作数据;所述第一通信单元接收所述待操作数据对应的第三反馈信息。

当然本申请保护满足如下条件的任一可选方案:按照反馈信息的发送顺序,第一个反馈信息至倒数第二个反馈信息中的至少一个反馈信息的开始发送时间早于所述操作命令的接收结束时间。

图10为本申请一实施例提供的写确认命令和反馈命令的格式示意图。图11为本申请一实施例提供的写确认命令和反馈命令对应的电路时序示意图。结合图10和图11进行说明:写确认命令作为第一通信单元的输出命令。写确认命令长度为56比特。依次包括:8比特的操作类型、32比特的目的地址、16比特的空白位。写确认命令对应的反馈命令作为第一通信单元的输入命令。反馈命令长度为56比特。依次包括:8比特的设备状态信息、操作类型对应的第一反馈信息和目的地址对应的第二反馈信息、写确认响应信息。其中第一反馈信息和第二反馈信息的总长度可以为40比特。读请求响应信息的长度可以为8比特。

一种可选方式,当操作命令为写确认命令时,操作命令包括:操作类型和操作对应的目的地址;相应的,第一通信单元向第二通信单元发送操作命令;并接收第二通信单元根据所述操作命令向所述第一通信单元发送的反馈命令,包括:第一通信单元向所述第二通信单元发送操作类型;第一通信单元接收第二通信单元发送的操作类型对应的第一反馈信息;若第一通信单元根据操作类型和第一反馈信息判断操作类型正确,则第一通信单元向第二通信单元发送所述目的地址;第一通信单元接收第二通信单元发送的目的地址对应的第二反馈信息。

另一种可选方式,当操作命令为所述写确认命令时,所述操作命令包括:操作类型和操作对应的目的地址。如图11所示,所述第一通信单元向第二通信单元发送操作命令;并接收所述第二通信单元根据所述操作命令向所述第一通信单元发送的反馈命令,包括:所述第一通信单元向所述第二通信单元发送所述操作类型;所述第一通信单元接收所述操作类型对应的第一反馈信息的同时,向所述第二通信单元发送所述目的地址;所述第一通信单元接收所述目的地址对应的第二反馈信息。

当然本申请保护满足如下条件的任一可选方案:按照反馈信息的发送顺序,第一个反馈信息至倒数第二个反馈信息中的至少一个反馈信息的开始发送时间早于所述操作命令的接收结束时间。

下面结合写请求命令和写确认命令对整个读操作进行介绍。图12为本申请一实施例提供的写操作状态转换图。如图12所示,第一通信单元首先进入步骤s1201:开始写请求操作。然后进入步骤s1202:第一通信单元向第二通信单元发送写请求命令中的操作类型。步骤s1203:当第一通信单元根据第一反馈信息判断操作类型出错或者根据第二通信单元发送的设备状态信息确定设备处于非正常状态时,第一通信单元重新进入步骤s1201。否则,第一通信单元处于状态1。当第一通信单元处于状态1时,进入步骤s1204:向第二通信单元发送操作对应的目的地址,并进入状态2。当第一通信单元处于状态2时,进入步骤s1205:当第一通信单元根据第二反馈信息判断目的地址出错时,第一通信单元重新进入步骤s1201。否则,进入步骤s1206:第一通信单元向第二通信单元发送待操作数据,进入状态3。步骤s1207:当第一通信单元根据第三反馈信息判断待操作数据出错时,第一通信单元重新进入步骤s1201。否则进入步骤s1208:开始写确认操作。然后进入步骤s1209:第一通信单元向第二通信单元发送写确认命令中的操作类型。步骤s1210:当第一通信单元根据第一反馈信息判断操作类型出错或者根据第二通信单元发送的设备状态信息确定设备处于非正常状态时,第一通信单元重新进入步骤s1208。否则,第一通信单元处于状态4。当第一通信单元处于状态4时,进入步骤s1211:向第二通信单元发送操作对应的目的地址,进入状态5。步骤s1212:当第一通信单元根据第二反馈信息判断目的地址出错时,第一通信单元重新进入步骤s1208。否则,第一通信单元处于状态6。当第一通信单元处于状态6时,进入步骤s1213:当第一通信单元根据写确认响应信息判断写确认出错时,第一通信单元重新进入步骤s1208。否则,写操作完成。

需要说明的是,图12所示的写操作过程只是一种可选方式。本申请不局限于此。

本申请提供一种数据处理方法。其中针对读请求命令、读确认命令、写请求命令和写确认命令中任一种命令,对应的反馈命令都是按照反馈信息的发送顺序,第一个反馈信息至倒数第二个反馈信息中的至少一个反馈信息的开始发送时间早于所述操作命令的接收结束时间。从而使得第二通信单元无需等到接收到整个操作命令之后,才对操作命令中的各个字段进行反馈,从而提高了数据传输效率。进而降低第二通信单元之间的切换时长,并且可以缓解第一通信单元与第二通信单元之间的通道阻塞问题。

可选地,所述方法还包括:若操作命令为读确认命令,且第一通信单元根据读确认命令确认读操作失败,则所述第一通信单元重发所述读确认命令对应的读请求命令;其中,所述第一通信单元重发所述读请求操作所采用的线程与所述第一通信单元首次发送的另一操作命令采用的线程不同。

具体地,第一通信单元根据读确认命令确认读操作失败,则第一通信单元重新开启一个新的线程,并通过新的线程发送重发该读确认命令的读请求命令。通过之前的线程继续发送接下来的操作命令。

或者,第一通信单元根据读确认命令确认读操作失败,则第一通信单元重新开启一个新的线程,并通过之前的线程继续发送重发该读确认命令的读请求命令。第一通信单元通过新的线程发送接下来的操作命令。

可选地,第一通信单元重发所述读确认命令对应的读请求命令,包括:所述第一通信单元统计所述读操作失败的次数;若所述读操作失败的次数小于或者等于预设阈值,则所述第一通信单元重发所述读确认命令对应的读请求命令。

其中如图7所示,任一项重新执行步骤s701或者重新步骤s707的原因都可以是读操作失败的原因。

本申请中,当读操作执行失败时,第一通信单元重发读请求操作所采用的线程可以与第一通信单元首次发送的另一操作命令采用的线程不同。从而提高数据处理效率。

可选地,所述方法还包括:若操作命令为写确认命令,且第一通信单元根据写确认命令确认写操作失败,则第一通信单元重发写确认命令对应的写请求命令;其中,第一通信单元重发写请求操作所采用的线程与第一通信单元首次发送的另一操作命令采用的线程不同。

具体地,第一通信单元根据写确认命令确认写操作失败,则第一通信单元重新开启一个新的线程,并通过新的线程发送重发该写确认命令的写请求命令。并将该写请求命令中的待操作数据写入日志文件,在数据读取的最后集中处理。通过之前的线程继续发送接下来的操作命令。

或者,第一通信单元根据写确认命令确认写操作失败,则第一通信单元重新开启一个新的线程,并通过之前的线程发送重发该写确认命令的写请求命令。并将该写请求命令中的待操作数据写入日志文件,在数据读取的最后集中处理。第一通信单元通过新的线程发送接下来的操作命令。

可选地,第一通信单元重发所述写确认命令对应的写请求命令,包括:第一通信单元统计所述写操作失败的次数;若所述写操作失败的次数小于或者等于预设阈值,则第一通信单元重发写确认命令对应的写请求命令。

其中如图12所示,任一项重新执行步骤s1201或者重新步骤s1208的原因都可以是写操作失败的原因。

本申请中,当写操作执行失败时,第一通信单元重发写请求操作所采用的线程可以与第一通信单元首次发送的另一操作命令采用的线程不同。从而提高数据处理效率。

图13为本申请一实施例提供的一种数据处理装置的结构示意图,如图13所示,该数据处理装置包括:收发模块1301,用于向第二通信单元发送操作命令;操作命令包括:至少一个字段;并接收第二通信单元根据操作命令向装置发送的反馈命令;反馈命令包括:至少一个字段中的每个字段对应的反馈信息;其中,按照反馈信息的发送顺序,第一个反馈信息至倒数第二个反馈信息中的至少一个反馈信息的开始发送时间早于操作命令的接收结束时间。

可选地,操作命令为以下任一项:读请求命令、读确认命令、写请求命令和写确认命令。

可选地,当操作命令为读请求命令、读确认命令或者写确认命令时,操作命令包括:操作类型和操作对应的目的地址;相应的,收发模块1301具体用于:向第二通信单元发送操作类型;接收第二通信单元发送的操作类型对应的第一反馈信息。

装置还包括:第一判断模块1302,用于若根据操作类型和第一反馈信息判断操作类型正确,则收发模块向第二通信单元发送目的地址。

收发模块1301,具体用于接收第二通信单元发送的目的地址对应的第二反馈信息。

可选地,当操作命令为读请求命令、读确认命令或者写确认命令时,操作命令包括:操作类型和操作对应的目的地址;相应的,收发模块1301具体用于:向第二通信单元发送操作类型;接收操作类型对应的第一反馈信息的同时,向第二通信单元发送目的地址;接收目的地址对应的第二反馈信息。

可选地,当操作命令为写请求命令时,操作命令包括:操作类型、操作对应的目的地址和待操作数据;相应的,收发模块1301具体用于:向第二通信单元发送操作类型;接收第二通信单元发送的操作类型对应的第一反馈信息。

装置还包括:第二判断模块1303,用于若根据操作类型和第一反馈信息判断操作类型正确,则收发模块向第二通信单元发送目的地址。

收发模块1301,具体用于接收第二通信单元发送的目的地址对应的第二反馈信息;第二判断模块1303,还用于根据目的地址和第二反馈信息判断目的地址正确,则收发模块1301向第二通信单元发送待操作数据;收发模块1301,具体用于接收第二通信单元发送的待操作数据对应的第三反馈信息。

可选地,当操作命令为写请求命令时,操作命令包括:操作类型、操作对应的目的地址和待操作数据;相应的,收发模块1301具体用于:向第二通信单元发送操作类型;接收操作类型对应的第一反馈信息的同时,向第二通信单元发送目的地址;接收目的地址对应的第二反馈信息的同时,向第二通信单元发送待操作数据;接收待操作数据对应的第三反馈信息。

可选地,还包括:第一确认模块1304,用于若操作命令为写确认命令,且根据写确认命令确认写操作失败,则收发模块1301还用于重发写确认命令对应的写请求命令;其中,收发模块1301重发写请求操作所采用的线程与收发模块首次发送的另一操作命令采用的线程不同。

可选地,收发模块1301具体用于:统计写操作失败的次数;若写操作失败的次数小于或者等于预设阈值,则重发写确认命令对应的写请求命令。

可选地,还包括:第二确认模块1305,用于若操作命令为读确认命令,且根据读确认命令确认读操作失败,则收发模块1301具体用于重发读确认命令对应的读请求命令;其中,收发模块1301重发读请求操作所采用的线程与收发模块首次发送的另一操作命令采用的线程不同。

可选地,收发模块1301具体用于:统计读操作失败的次数;若读操作失败的次数小于或者等于预设阈值,则重发读确认命令对应的读请求命令。

本申请实施例提供的数据处理装置,可以用于执行上述第一通信单元执行的方法步骤,其实现原理和技术效果类似,此处不再赘述。

图14为本申请另一实施例提供的一种数据处理装置的结构示意图,如图14所示,改装置包括:接收模块1401,用于接收第一通信单元发送的操作命令;操作命令包括:至少一个字段;发送模块1402,用于根据操作命令向第一通信单元发送反馈命令;反馈命令包括:至少一个字段中的每个字段对应的反馈信息;其中,按照反馈信息的发送顺序,第一个反馈信息至倒数第二个反馈信息中的至少一个反馈信息的开始发送时间早于操作命令的接收结束时间。

可选地,操作命令为以下任一项:读请求命令、读确认命令、写请求命令和写确认命令。

本申请实施例提供的数据处理装置,可以用于执行上述第二通信单元执行的方法步骤,其实现原理和技术效果类似,此处不再赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1