一种基于DMA握手协议的数据传输系统及方法转让专利

申请号 : CN202210978346.3

文献号 : CN115048323B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 雷超方

申请人 : 南京芯驰半导体科技有限公司

摘要 :

一种基于DMA握手协议的数据传输系统,包括,内存;外设;总线仲裁装置,其用于决定数据总线的使用权,通过数据总线分别与内存和外设连接;以及直接存储器访问模块,其通过数据总线与总线仲裁装置连接,用于经由总线仲裁装置在内存与外设之间传输数据,直接存储器访问模块基于外设发出的数据传输请求信号、直接存储器访问模块的响应信号及传输完成信号,确定预读写的时刻,数据传输请求信号及响应信号包括:功能信号、监测信号和编码信号。本申请还提供一种基于DMA握手协议的数据传输方法,可以提高DMA数据传输效率,提高DMA传输吞吐量。

权利要求 :

1.一种基于DMA握手协议的数据传输系统,其特征在于,包括,

内存;

外设;

总线仲裁装置,其用于决定数据总线的使用权,通过数据总线分别与所述内存和所述外设连接;以及

直接存储器访问模块,其通过数据总线与所述总线仲裁装置连接,用于经由所述总线仲裁装置在所述内存与所述外设之间传输数据,

所述直接存储器访问模块基于所述外设发出的数据传输请求信号、所述直接存储器访问模块的响应信号及传输完成信号,确定预读写的时刻,

所述数据传输请求信号包括:具有向所述直接存储器访问模块请求传输数据的第一功能信号;作为所述第一功能信号的监测验证信号的第一监测信号;和对所述第一功能信号及所述第一监测信号进行编码的第一编码信号,所述第一功能信号包括请求信号和判断请求传输为突发传输或单个数据传输的单信号,所述响应信号包括:向所述外设反馈获取所述第一功能信号的第二功能信号;作为所述第二功能信号的监测验证信号的第二监测信号;表示数据是否全部发送到数据总线上的第三功能信号;作为所述第三功能信号的监测验证信号的第三监测信号;和对所述第二功能信号、所述第二监测信号、所述第三功能信号和所述第三监测信号进行编码的第二编码信号,所述数据传输请求信号具有安全机制,所述直接存储器访问模块对所述第一编码信号进行解码,在解码无错、且所述第一监测信号根据所述请求信号上升沿来取反时,判断所述请求信号和所述单信号为正常有效信号;在解码无错、且所述第一监测信号没有根据所述请求信号上升沿来取反时,判断为所述请求信号和所述单信号为无效信号,并产生报告警中断;在解码有1比特错误且能够纠错处理、并且所述第一监测信号根据所述请求信号上升沿来取反时,判断所述请求信号和所述单信号为正常有效信号,并产生报告警中断;在解码有1比特错误且能够纠错处理、并且所述第一监测信号没有根据所述请求信号上升沿来取反时,判断所述请求信号和所述单信号为无效信号,并产生报告警中断;在解码有2比特以上错误且无法纠错处理时,判断所述请求信号和所述单信号为无效信号,并产生报告警中断。

2.根据权利要求1所述的基于DMA握手协议的数据传输系统,其特征在于,在将数据从所述外设传输到所述内存的情况下,在所述第一功能信号为高电平、所述第二功能信号为低电平且所述第三功能信号变为高电平时,所述直接存储器访问模块进行预读,直到所述第三功能信号变为低电平;在所述直接存储器访问模块预读之后所述第一功能信号变为低电平时,所述直接存储器访问模块进行预写,直到所述第三功能信号变为低电平。

3.根据权利要求1所述的基于DMA握手协议的数据传输系统,其特征在于,在将数据从所述内存传输到所述外设的情况下,在所述第一功能信号为高电平、所述第二功能信号为低电平且所述第三功能信号变为高电平时,所述直接存储器访问模块进行预读,直到所述第三功能信号变为低电平;在所述直接存储器访问模块预读之后所述第二功能信号变为高电平时,所述直接存储器访问模块进行预写,直到所述第三功能信号变为低电平。

4.根据权利要求2或3所述的基于DMA握手协议的数据传输系统,其特征在于,在所述第三功能信号变为高电平的时刻,所述直接存储器访问模块将目前执行的所述第一功能信号所请求传输的数据量的最后一笔到数据总线上,之后在所述第三功能信号变为低电平的时刻,所述直接存储器访问模块将目前执行的所述第一功能信号所请求传输的数据量的最后一笔传输到达最终目的地接收方,同时收到所述最终目的地接收方的反馈信息。

5.根据权利要求1所述的基于DMA握手协议的数据传输系统,其特征在于,在判断为所述请求信号和所述单信号为正常有效信号时,所述直接存储器访问模块确认请求传输方源头的请求信号、单信号和第一监测信号与其所接收到请求信号、单信号和第一监测信号是否一致,在确认为一致后进行读写;否则报错中断。

6.根据权利要求1所述的基于DMA握手协议的数据传输系统,其特征在于,所述响应信号具有安全机制,所述外设对所述第二编码信号进行解码,在解码无错、且所述第二监测信号根据所述第二功能信号上升沿来取反时,判断所述第二功能信号和所述第二监测信号为正常有效信号,同时所述第三功能信号与所述第三监测信号保持取反关系时,判断所述第三功能信号为正常有效信号;在解码无错、且所述第二监测信号没有根据所述第二功能信号上升沿来取反时,判断所述第二功能信号和所述第二监测信号为无效信号,或所述第三功能信号与所述第三监测信号不保持取反关系时,判断所述第三功能信号为无效信号,并产生报告警中断;在解码有1比特错误且能够纠错处理、并且所述第二监测信号根据所述第二功能信号上升沿来取反时,判断所述第二功能信号和所述第二监测信号为正常有效信号,同时所述第三功能信号与所述第三监测信号保持取反关系时,判断所述第三功能信号为正常有效信号,并产生报告警中断;在解码有1比特错误且能够纠错处理、并且所述第二监测信号没有根据所述第二功能信号上升沿来取反时,判断所述第二功能信号和所述第二监测信号为无效信号,或所述第三功能信号与所述第三监测信号不保持取反关系时,判断所述第三功能信号为无效信号,并产生报告警中断;在解码有2比特以上错误且无法纠错处理时,判断所述第二功能信号、所述第二监测信号和所述第三功能信号为无效信号,并产生报告警中断。

7.根据权利要求1所述的基于DMA握手协议的数据传输系统,其特征在于,所述外设为多个。

8.一种基于DMA握手协议的数据传输方法,包括:

直接存储器访问模块接收数据传输请求信号,其中,所述数据传输请求信号包括:具有向所述直接存储器访问模块请求传输数据的第一功能信号;作为所述第一功能信号的监测验证信号的第一监测信号;和对所述第一功能信号及所述第一监测信号进行编码的第一编码信号,所述第一功能信号包括请求信号和判断请求传输为突发传输或单个数据传输的单信号;

所述直接存储器访问模块基于所述数据传输请求信号发出响应信号,其中,所述响应信号包括:向外设反馈获取所述第一功能信号的第二功能信号;作为所述第二功能信号的监测验证信号的第二监测信号;表示数据是否全部发送到数据总线上的第三功能信号;作为所述第三功能信号的监测验证信号的第三监测信号;和对所述第二功能信号、所述第二监测信号、所述第三功能信号和所述第三监测信号进行编码的第二编码信号,所述直接存储器访问模块基于所述数据传输请求信号、所述响应信号及传输完成信号,确定预读写的时刻,所述数据传输请求信号具有安全机制,所述直接存储器访问模块对所述第一编码信号进行解码,在解码无错、且所述第一监测信号根据所述请求信号上升沿来取反时,判断所述请求信号和所述单信号为正常有效信号;在解码无错、且所述第一监测信号没有根据所述请求信号上升沿来取反时,判断为所述请求信号和所述单信号为无效信号,并产生报告警中断;在解码有1比特错误且能够纠错处理、并且所述第一监测信号根据所述请求信号上升沿来取反时,判断所述请求信号和所述单信号为正常有效信号,并产生报告警中断;在解码有1比特错误且能够纠错处理、并且所述第一监测信号没有根据所述请求信号上升沿来取反时,判断所述请求信号和所述单信号为无效信号,并产生报告警中断;在解码有2比特以上错误且无法纠错处理时,判断所述请求信号和所述单信号为无效信号,并产生报告警中断。

9.根据权利要求8所述的基于DMA握手协议的数据传输方法,其特征在于,所述直接存储器访问模块基于所述数据传输请求信号和所述响应信号,确定预读写的时刻的步骤,还包括,在将数据从外设传输到内存的情况下,在所述第一功能信号为高电平、所述第二功能信号为低电平且所述第三功能信号变为高电平时,所述直接存储器访问模块进行预读,直到所述第三功能信号变为低电平;在所述直接存储器访问模块预读之后所述第一功能信号变为低电平时,所述直接存储器访问模块进行预写,直到所述第三功能信号变为低电平;或者在将数据从内存传输到外设的情况下,在所述第一功能信号为高电平、所述第二功能信号为低电平且所述第三功能信号变为高电平时,所述直接存储器访问模块进行预读,直到所述第三功能信号变为低电平;在所述直接存储器访问模块预读之后所述第二功能信号变为高电平时,所述直接存储器访问模块进行预写,直到所述第三功能信号变为低电平。

10.根据权利要求9所述的基于DMA握手协议的数据传输方法,其特征在于,在判断为所述请求信号和所述单信号为正常有效信号时,所述直接存储器访问模块确认请求传输方源头的请求信号、单信号和第一监测信号与其所接收到请求信号、单信号和第一监测信号是否一致,在确认为一致后进行读写;否则报告警中断。

11.根据权利要求9所述的基于DMA握手协议的数据传输方法,其特征在于,在所述第三功能信号变为高电平的时刻,所述直接存储器访问模块将目前执行的所述第一功能信号所请求传输的数据量的最后一笔写到数据总线上,之后在所述第三功能信号变为低电平的时刻,所述直接存储器访问模块将目前执行的所述第一功能信号所请求传输的数据量的最后一笔传输到达最终目的地接收方,同时收到所述最终目的地接收方的反馈信息。

12.根据权利要求8所述的基于DMA握手协议的数据传输方法,其特征在于,所述响应信号具有安全机制,所述外设对所述第二编码信号进行解码,在解码无错、且所述第二监测信号根据所述第二功能信号上升沿来取反时,判断所述第二功能信号和所述第二监测信号为正常有效信号,同时所述第三功能信号与所述第三监测信号保持取反关系时,判断所述第三功能信号为正常有效信号;在解码无错、且所述第二监测信号没有根据所述第二功能信号上升沿来取反时,判断所述第二功能信号和所述第二监测信号为无效信号,或所述第三功能信号与所述第三监测信号不保持取反关系时,判断所述第三功能信号为无效信号,并产生报告警中断;在解码有1比特错误且能够纠错处理、并且所述第二监测信号根据所述第二功能信号上升沿来取反时,判断所述第二功能信号和所述第二监测信号为正常有效信号,同时所述第三功能信号与所述第三监测信号保持取反关系时,判断所述第三功能信号为正常有效信号,并产生报告警中断;在解码有1比特错误且能够纠错处理、并且所述第二监测信号没有根据所述第二功能信号上升沿来取反时,判断所述第二功能信号和所述第二监测信号为无效信号,或所述第三功能信号与所述第三监测信号不保持取反关系时,判断所述第三功能信号为无效信号,并产生报告警中断;在解码有2比特以上错误且无法纠错处理时,判断所述第二功能信号、所述第二监测信号和所述第三功能信号为无效信号,并产生报告警中断。

13.一种车规芯片,其特征在于,所述车规芯片,包括,权利要求1至7中任一项所述的基于DMA握手协议的数据传输系统。

14.一种电子设备,其特征在于,所述电子设备,包括权利要求13所述的车规芯片。

15.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,当计算机指令运行时执行权利要求8至12中任一项所述的基于DMA握手协议的数据传输方法的步骤。

说明书 :

一种基于DMA握手协议的数据传输系统及方法

技术领域

[0001] 本申请涉及数据处理技术领域,特别是涉及一种基于DMA握手协议的数据传输系统及方法。

背景技术

[0002] 近些年,汽车电子技术的快速发展,汽车上的传感器和外设数量增加越来越多,并且单个外设或传感器数据传输量也越来越多。数据搬运按照需求分三种场景:场景一,数据从外设搬运到内存;场景二,数据从内存搬运到外设;场景三,数据从内存搬运到内存。这三种场景应用将越来越频繁,对DMA(Direct Memory Access,直接存储器访问)传输数据量的要求也越来越高。基于功能安全的要求,DMA的数据传输和DMA与外设的握手交换必须具备有功能安全要求的设计;同时,对DMA的传输效率的要求也越来越高。
[0003] 目前SOC(System on  Chip,系统级芯片)中,DMA传输受到AXI(Advanced eXtensible Interface,总线协议)总线的读数据和写数据延时开销影响,导致DMA预读数据和预写数据机制不够完美。延时占用比较多的情况下,导致DMA传输效率低下。

发明内容

[0004] 为了解决现有技术存在的不足,本申请的目的在于提供一种基于DMA握手协议的数据传输系统及方法,可以提高DMA数据传输效率,提高DMA传输吞吐量。
[0005] 为实现上述目的,本申请提供的基于DMA握手协议的数据传输系统,包括,[0006] 内存;
[0007] 外设;
[0008] 总线仲裁装置,其用于决定数据总线的使用权,通过数据总线分别与所述内存和所述外设连接;以及
[0009] 直接存储器访问模块,其通过数据总线与所述总线仲裁装置连接,用于经由所述总线仲裁装置在所述内存与所述外设之间传输数据,
[0010] 所述直接存储器访问模块基于所述外设发出的数据传输请求信号、所述直接存储器访问模块的响应信号及传输完成信号,确定预读写的时刻,
[0011] 所述数据传输请求信号包括:具有向所述直接存储器访问模块请求传输数据的第一功能信号;作为所述第一功能信号的监测验证信号的第一监测信号;和对所述第一功能信号及所述第一监测信号进行编码的第一编码信号,所述第一功能信号包括请求信号和判断请求传输为突发传输或单个数据传输的单信号,
[0012] 所述响应信号包括:向所述外设反馈获取所述第一功能信号的第二功能信号;作为所述第二功能信号的监测验证信号的第二监测信号;表示数据是否全部发送到数据总线上的第三功能信号;作为所述第三功能信号的监测验证信号的第三监测信号;和对所述第二功能信号、所述第二监测信号、所述第三功能信号和所述第三监测信号进行编码的第二编码信号。
[0013] 进一步地,在将数据从所述外设传输到所述内存的情况下,在所述第一功能信号为高电平、所述第二功能信号为低电平且所述第三功能信号变为高电平时,所述直接存储器访问模块进行预读,直到所述第三功能信号变为低电平;在所述直接存储器访问模块预读之后所述第一功能信号变为低电平时,所述直接存储器访问模块进行预写,直到所述第三功能信号变为低电平。
[0014] 进一步地,在将数据从所述内存传输到所述外设的情况下,在所述第一功能信号为高电平、所述第二功能信号为低电平且所述第三功能信号变为高电平时,所述直接存储器访问模块进行预读,直到所述第三功能信号变为低电平;在所述直接存储器访问模块预读之后所述第二功能信号变为高电平时,所述直接存储器访问模块进行预写,直到所述第三功能信号变为低电平。
[0015] 进一步地,在所述第三功能信号变为高电平的时刻,所述直接存储器访问模块将目前执行的所述第一功能信号所请求传输的数据量的最后一笔写到数据总线上,之后在所述第三功能信号变为低电平的时刻,所述直接存储器访问模块将目前执行的所述第一功能信号所请求传输的数据量的最后一笔传输到达最终目的地接收方,同时收到所述最终目的地接收方的反馈信息。
[0016] 进一步地,所述数据传输请求信号具有安全机制,所述直接存储器访问模块对所述第一编码信号进行解码,在解码无错、且所述第一监测信号根据所述请求信号上升沿来取反时,判断所述请求信号和所述单信号为正常有效信号;在解码无错、且所述第一监测信号没有根据所述请求信号上升沿来取反时,判断为所述请求信号和所述单信号为无效信号,并产生报告警中断;在解码有1比特错误且能够纠错处理、并且所述第一监测信号根据所述请求信号上升沿来取反时,判断所述请求信号和所述单信号为正常有效信号,并产生报告警中断;在解码有1比特错误且能够纠错处理、并且所述第一监测信号没有根据所述请求信号上升沿来取反时,判断所述请求信号和所述单信号为无效信号,并产生报告警中断;在解码有2比特以上错误且无法纠错处理时,判断所述请求信号和所述单信号为无效信号,并产生报告警中断。
[0017] 进一步地,在判断为所述请求信号和所述单信号为正常有效信号时,所述直接存储器访问模块确认请求传输方源头的请求信号、单信号和第一监测信号与其所接收到请求信号、单信号和第一监测信号是否一致,在确认为一致后进行读写;否则报告警中断。
[0018] 进一步地,所述响应信号具有安全机制,所述外设对所述第二编码信号进行解码,在解码无错、且所述第二监测信号根据所述第二功能信号上升沿来取反时,判断所述第二功能信号和所述第二监测信号为正常有效信号,同时所述第三功能信号与所述第三监测信号保持取反关系时,判断所述第三功能信号为正常有效信号;在解码无错、且所述第二监测信号没有根据所述第二功能信号上升沿来取反时,判断所述第二功能信号和所述第二监测信号为无效信号,或所述第三功能信号与所述第三监测信号不保持取反关系时,判断所述第三功能信号为无效信号,并产生报告警中断;在解码有1比特错误且能够纠错处理、并且所述第二监测信号根据所述第二功能信号上升沿来取反时,判断所述第二功能信号和所述第二监测信号为正常有效信号,同时所述第三功能信号与所述第三监测信号保持取反关系时,判断所述第三功能信号为正常有效信号,并产生报告警中断;在解码有1比特错误且能够纠错处理、并且所述第二监测信号没有根据所述第二功能信号上升沿来取反时,判断所述第二功能信号和所述第二监测信号为无效信号,或所述第三功能信号与所述第三监测信号不保持取反关系时,判断所述第三功能信号为无效信号,并产生报告警中断;在解码有2比特以上错误且无法纠错处理时,判断所述第二功能信号、所述第二监测信号和所述第三功能信号为无效信号,并产生报告警中断。
[0019] 更进一步地,所述外设为多个。
[0020] 为实现上述目的,本申请还提供一种基于DMA握手协议的数据传输方法,包括:
[0021] 直接存储器访问模块接收数据传输请求信号,其中,所述数据传输请求信号包括:具有向所述直接存储器访问模块请求传输数据的第一功能信号;作为所述第一功能信号的监测验证信号的第一监测信号;和对所述第一功能信号及所述第一监测信号进行编码的第一编码信号,所述第一功能信号包括请求信号和判断请求传输为突发传输或单个数据传输的单信号;
[0022] 所述直接存储器访问模块基于所述数据传输请求信号发出响应信号,其中,所述响应信号包括:向所述外设反馈获取所述第一功能信号的第二功能信号;作为所述第二功能信号的监测验证信号的第二监测信号;表示数据是否全部发送到数据总线上的第三功能信号;作为所述第三功能信号的监测验证信号的第三监测信号;和对所述第二功能信号、所述第二监测信号、所述第三功能信号和所述第三监测信号进行编码的第二编码信号,[0023] 所述直接存储器访问模块基于所述数据传输请求信号、所述响应信号及传输完成信号,确定预读写的时刻。
[0024] 进一步地,所述所述直接存储器访问模块基于所述数据传输请求信号和所述响应信号,确定预读写的时刻的步骤,还包括,
[0025] 在将数据从外设传输到内存的情况下,在所述第一功能信号为高电平、所述第二功能信号为低电平且所述第三功能信号变为高电平时,所述直接存储器访问模块进行预读,直到所述第三功能信号变为低电平;在所述直接存储器访问模块预读之后所述第一功能信号变为低电平时,所述直接存储器访问模块进行预写,直到所述第三功能信号变为低电平;或者
[0026] 在将数据从内存传输到外设的情况下,在所述第一功能信号为高电平、所述第二功能信号为低电平且所述第三功能信号变为高电平时,所述直接存储器访问模块进行预读,直到所述第三功能信号变为低电平;在所述直接存储器访问模块预读之后所述第二功能信号变为高电平时,所述直接存储器访问模块进行预写,直到所述第三功能信号变为低电平。
[0027] 进一步地,在判断为所述请求信号和所述单信号为正常有效信号时,所述直接存储器访问模块确认请求传输方源头的请求信号、单信号和第一监测信号与其所接收到请求信号、单信号和第一监测信号是否一致,在确认为一致后进行读写;否则报告警中断。
[0028] 更进一步地,在所述第三功能信号变为高电平的时刻,所述直接存储器访问模块将目前执行的所述第一功能信号所请求传输的数据量的最后一笔写到数据总线上,之后在所述第三功能信号变为低电平的时刻,所述直接存储器访问模块将目前执行的所述第一功能信号所请求传输的数据量的最后一笔传输到达最终目的地接收方,同时收到所述最终目的地接收方的反馈信息。
[0029] 为实现上述目的,本申请还提供一种车规芯片,包括,如上所述的基于DMA握手协议的数据传输系统。
[0030] 为实现上述目的,本申请提供的电子设备,包括如上所述的车规芯片。
[0031] 为实现上述目的,本申请提供的计算机可读存储介质,其上存储有计算机指令,当计算机指令运行时执行如上所述的基于DMA握手协议的数据传输方法的步骤。
[0032] 本申请的基于DMA握手协议的数据传输系统及方法,根据外设与直接存储器访问模块之间的握手协议时的包括功能信号、检测信号和编码信号的数据传输请求信号及响应信号,确定直接存储器访问模块的预读写的时刻,可以提高DMA数据传输效率,提高DMA传输吞吐量。
[0033] 本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。

附图说明

[0034] 附图用来提供对本申请的进一步理解,并且构成说明书的一部分,并与本申请的实施例一起,用于解释本申请,并不构成对本申请的限制。在附图中:
[0035] 图1为根据本申请的基于DMA握手协议的数据传输系统结构示意图;
[0036] 图2为根据本申请的一实施方式的外设与DMA握手协议的时序图;
[0037] 图3为用于说明本申请的一实施方式的外设与DMA握手协议的主要时刻的时序图;
[0038] 图4为用于说明本申请的一实施方式的DMA读写的时序图;
[0039] 图5为用于说明本申请的另一实施方式的DMA读写的时序图;
[0040] 图6为根据本申请的基于DMA握手协议的数据传输方法流程图。

具体实施方式

[0041] 下面将参照附图更详细地描述本申请的实施例。虽然附图中显示了本申请的某些实施例,然而应当理解的是,本申请可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本申请。应当理解的是,本申请的附图及实施例仅用于示例性作用,并非用于限制本申请的保护范围。
[0042] 应当理解,本申请的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本申请的范围在此方面不受限制。
[0043] 本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”。其他术语的相关定义将在下文描述中给出。
[0044] 需要注意,本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。“多个”应理解为两个或以上。
[0045] 下面,将参考附图详细地说明本申请的实施例。
[0046] 实施例1
[0047] (基于DMA握手协议的数据传输系统)
[0048] 图1为根据本申请的基于DMA握手协议的数据传输系统结构示意图,如图1所示,基于DMA握手协议的数据传输系统100,包括:DMA模块(直接存储器访问模块)10、总线仲裁装置20、内存30,以及外设40。
[0049] 在传输数据时,如图1所示,DMA模块10用于在外设40和内存30之间传输数据,其接收外设40的数据传输请求,并根据该数据传输请求经由总线仲裁装置20读外设40,并写内存30。总线仲裁装置20用于决定数据总线的使用权。DMA模块10与总线仲裁装置20通过数据总线连接。总线仲裁装置20与内存30通过数据总线连接。总线仲裁装置20与外设40通过数据总线连接。外设40包括握手请求状态寄存器41和FIFO(First Input First Output,先入先出队列)模块42。
[0050] 图2为根据本申请的一实施方式的外设与DMA握手协议的时序图。参照图2,对将数据从外设40传输到内存30的情况进行说明。在将数据从外设40传输到内存30时,首先,外设40发出数据传输请求信号,以外设40请求DMA模块10传输数据,数据传输请求信号包括:请求信号(req)及单信号(single)(第一功能信号)、eobr(第一监测信号)和fded(第一编码信号)。具体地,外设40向DMA模块10发出第一功能信号。req为高电平表示请求传输有效。在req变为高电平时,判断single请求。在req为高电平且single为低电平时,外设40请求DMA模块10发送的数据量为外设40的FIFO模块42的数据量的一半,表示传输突发多个单位数据;在req为高电平且single为高电平时,外设40请求DMA模块10发送的数据量为单个数据。
外设40的FIFO模块42存储1个数据的量,例如,外设40的FIFO模块42的位宽为32bit(比特),则单个数据量为32bit。另外,只有在后述的DMA模块10的应答信号(ack)为高电平时,req从高电平变为低电平,否则req一直保持高电平。eobr由外设40发出,其为req的监测验证信号,既req奇偶统计信号。在第一个req、第三个req等第奇数个req时,eobr为高电平;在第二个req、第四个req等第偶数个req时,eobr为低电平。每次req信号上升沿时,eobr取反。fded由外设40发出,其为对req、eobr和single进行纠错码算法的结果。具体地,fded为对{1’b0,req,single,eobr}拼凑的4bit的数据进行汉明编码得到的4bit的编码信号。另外,编码方式并不限于汉明编码,可以是CRC(Cyclic Redundancy Check,循环冗余校验)等等。
[0051] 外设40的数据传输请求信号具有如下安全机制。DMA模块10根据所接收到的fded对req、single和eobr进行解码,判断信号是否有异常,如果有1bit错误,可以进行纠错。在解码无错、且eobr根据req上升沿来取反时,判断req和single为正常有效信号。在解码无错、且eobr没有根据req上升沿来取反时,判断为req和single为无效信号,并产生报告警中断。在解码有1bit错误且能够纠错处理、并且eobr根据req上升沿来取反时,判断req和single为正常有效信号,并产生报告警中断。在解码有1bit错误且能够纠错处理、并且eobr没有根据req上升沿来取反时,判断req和single为无效信号,并产生报告警中断。在解码有2bit以上错误且无法纠错处理时,判断req和single为无效信号,并产生报告警中断。
[0052] 同时,外设40会记录目前req、single和eobr。在DMA模块10进行解码并判断为有效信息时,DMA模块10通过总线仲裁装置20读取外设40的握手请求状态寄存器41中的目前req、single和eobr。之后,DMA模块确认接收到的req、single和eobr与握手请求状态寄存器41中的req、single和eobr(请求传输方源头的req、single和eobr)是否一致。在确认为一致后才能进行读写;否则会报告警中断;而在确认之前保持不变。
[0053] DMA模块10在接收到外设40发出的请求信号后发出响应信号。响应信号包括ack(第二功能信号)、eoba(第二监测信号)、comp_p(第三功能信号)、comp_n(第三监测信号)和rded(第二编码信号)。ack由DMA模块10发出,其表示DMA模块10响应外设40的数据传输请求,并由DMA模块10开始传输数据,既、ack表示反馈给请求传输方,请求传输已经开始执行。只有在req变为低电平后,ack从高电平变为低电平,否则ack一直保持为高电平。eoba由外设DMA模块10发出,其为ack的监测验证信号,既ack奇偶统计信号。在第一个ack、第三个ack等第奇数个ack时,eoba为高电平;在第二个ack、第四个ack等第偶数个ack时,eoba为低电平。每次ack信号上升沿(变为高电平)时,eoba取反。comp_p由外设DMA模块10发出,其表示对当前req数据已经传输完成,并向外设40反馈(完成信号comp_p),并且其由低电平变为高电平的上升沿的时刻,表示DMA模块10已经将外设40请求的传输数据全部发送到数据总线上;其由高电平变为低电平的下降沿的时刻,表示DMA模块10将外设40请求的传输数据已经全部传输到了内存30。comp_n由外设DMA模块10发出,其为comp_p的监测验证信号,既为comp_p的监控取反信号,跟comp_p是同步取反关系。如果外设40接收到的comp_p和comp_n不是取反关系,表示信号传输过程中出现异常,有外面干扰和逻辑翻转。rded由DMA模块10发出,其为对ack、eoba、comp_p和comp_n进行纠错码算法的结果。具体地,rded为对{ack,eoba,comp_p,comp_n}拼凑的4bit的数据进行汉明编码得到的4bit的编码信号。另外,编码方式并不限于汉明编码,可以是CRC等等。
[0054] DMA模块10的响应信号具有如下安全机制。外设40根据rded对所接收到的ack、eoba、comp_p和comp_n进行解码,判断信号是否有异常,如果有1bit错误,可以进行纠错。在解码无错、且eoba根据ack上升沿来取反时,判断ack和eoba为正常有效信号,同时comp_p与comp_n保持取反关系时,判断comp_p为正常有效信号。在解码无错、且eoba没有根据ack上升沿来取反时,判断ack和eoba为无效信号,或comp_p与comp_n不保持取反关系时,判断comp_p为无效信号,并产生报告警中断。在解码有1bit错误且能够纠错处理、并且eoba根据ack上升沿来取反时,判断ack和eoba为正常有效信号,同时comp_p与comp_n保持取反关系时,判断comp_p为正常有效信号,并产生报告警中断。在解码有1bit错误且能够纠错处理、并且eoba没有根据ack上升沿来取反时,判断ack和eoba为无效信号,或comp_p与comp_n不保持取反关系时,判断comp_p为无效信号,并产生报告警中断。在解码有2bit以上错误且无法纠错处理时,判断ack、eoba和comp_p为无效信号,并产生报告警中断。
[0055] 图3为用于说明本申请的一实施方式的外设与DMA握手协议的主要时刻的时序图。如图3所示,图3所示的时刻A表示外设40发出的req与DMA模块10反馈的ack的交互时序。req和ack的时序交互协议为必须在req为高电平时,ack才能做拉成高电平的操作;必须在ack为高电平时,req才能做拉成低电平的操作;必须在req为低电平时,ack才能做拉成低电平的操作。例如,在将数据从外设40传输到内存30的模式中,在时刻A,响应外设40的读请求开始读,且DMA模块10开始读入第一个数据;在将数据从内存30传输到外设40的模式中,在时刻A,响应外设40的读请求开始读,且DMA模块10开始读入第一个数据。
[0056] 如图3所示,图3所示的时刻B表示comp_p拉成高电平操作时刻。在将数据从外设40传输到内存30的模式中,在时刻B,DMA模块10将目前执行的外设40的req的传输请求数据的最后一笔写到数据总线上,但这一笔数据还在传输路径上,还没有完全到达最终目的地接收方(既,内存30)。另外,在将数据从内存30传输到外设40的模式中,在时刻B,DMA模块10将目前执行的内存30的req的传输请求数据的最后一笔写到数据总线上,但这一笔数据还在传输路径上,还没有完全到达最终目的地接收方(外设40)。
[0057] 如图3所示,图3所示的时刻C表示comp_p拉成低电平操作时刻。在将数据从外设40传输到内存30的模式中,DMA模块10将目前执行的外设40的req的传输请求数据的最后一笔已经传输到达最终目的地接收方(内存30),同时最终目的地接收方通过数据总线写反馈通道反馈写数据情况信息,DMA模块10收到最终目的地接收方的写反馈信息后,才能执行将comp_p拉成低电平的操作。在将数据从内存30传输到外设40的模式中,DMA模块10将目前执行的内存30的req的传输请求数据的最后一笔已经传输到达最终目的地接收方(外设40),并DMA模块10收到最终目的地接收方的写反馈信息后,才能执行将comp_p拉成低电平的操作。
[0058] 以上,参照图2及图3,对将数据从外设40传输到内存30的模式进行了说明。但是,将数据从内存30传输到的外设40模式与将数据从外设40传输到内存30的模式的方式相同,因此省略对其具体说明。
[0059] 图4为用于说明本申请的一实施方式的DMA读写的时序图。参照图4,对将数据从外设40传输到内存30的读写进行说明。首先,DMA模块10收到外设40的输出传输请求后进行req的安全确认,即DMA模块10通过总线仲裁装置20读取外设40的握手请求状态寄存器41中的目前req、single和eobr。之后,DMA模块确认接收到的再进行解码后的有效req、single和eobr与握手请求状态寄存器41中的req、single和eobr(请求传输方源头的req、single和eobr)是否一致,直到其发出ack。之后,DMA模块10发出ack后进行读外设40。DMA模块10发出的ack变为低电平后的一个时钟周期之后,写内存30。在DMA模块10收到外设40的下一个req后且其发出ack之前,DMA模块10进行req的安全确认,直到comp_p变为高电平。在外设40的req为高电平、DMA模块10的ack为低电平、且comp_p变为高电平时,DMA模块10预读外设40的下一个数据传输请求,直到comp_p变为低电平。之后DMA模块10读外设40。在DMA模块10进行预读后对应的req变为低电平后,DMA模块10预写内存30,直到comp_p变为低电平。之后DMA模块10写内存30。
[0060] 图5为用于说明本申请的另一实施方式的DMA读写的时序图。参照图5,对将数据从内存传输到外设40的读写进行说明。首先,DMA模块10收到外设40的输出传输请求后进行req的安全确认,既DMA模块10通过总线仲裁装置20读取外设40的握手请求状态寄存器41中的目前req、single和eobr。之后,DMA模块确认接收到的再进行解码后的有效req、single和eobr与握手请求状态寄存器41中的req、single和eobr(请求传输方源头的req、single和eobr)是否一致,直到其发出ack。之后,DMA模块10发出ack后进行读内存30。DMA模块10发出的ack变为低电平时,进行写外设40。在DMA模块10收到外设40的下一个req后且其发出ack之前,DMA模块10进行req的安全确认,直到comp_p变为高电平。在外设40的req为高电平、DMA模块10的ack为低电平、且comp_p变为高电平时,DMA模块10预读内存30的下一个数据传输请求,直到comp_p变为低电平。之后DMA模块10读内存30。在DMA模块10进行预读后对应的ack变为高电平时,DMA模块10预写外设40,直到comp_p变为低电平。之后DMA模块10写外设40。
[0061] 在本实施例中,以一个外设和一个内存的示例进行了说明,但也可以是具有多个外设和/或多个内存。
[0062] 根据本实施例的基于DMA握手协议的数据传输系统,根据外设与直接存储器访问模块之间的握手协议时的包括功能信号、检测信号和编码信号的数据传输请求信号及响应信号,确定直接存储器访问模块的预读写的时刻,可以提高DMA数据传输效率,提高DMA传输吞吐量。
[0063] 根据本实施例的基于DMA握手协议的数据传输系统,通过处理当前握手请求的时候,能够预处理下一个握手请求机制,可以使DMA的预读数据和预写数据跟DMA与请求传输方握手请求预处理有完美配合,既可以实现在AXI读数据延时和写数据延这段时间内能同时实现DMA预读数据和预写数据处理,以使实际DMA传输效率离理论值差距较小,进而提高数据传输效率。
[0064] 根据本实施例的基于DMA握手协议的数据传输系统,通过使数据传输请求信号和响应信号分别具备安全机制,以在出错时候能报错并产生中断,可以提升功能安全性,并且可以避免外设的req异常的情况,出现异常数据传输操作,防止灾难性的数据传输出现。
[0065] 根据本实施例的基于DMA握手协议的数据传输系统,通过在当前请求未处理完时,预处理下一个握手请求的时候,当前握手请求的DMA读数据任务完成且DMA写数据任务未完成时刻,去处理下一个握手请求DMA读确认机制,可以充分利用DMA空闲时刻实现DMA安全确认机制,提高DMA利用率,进而进一步提高数据传输效率。
[0066] 实施例2
[0067] (基于DMA握手协议的数据传输方法)
[0068] 图6为根据本申请的基于DMA握手协议的数据传输方法流程图,下面将参考图6,对本申请的基于DMA握手协议的数据传输方法进行详细描述。
[0069] 在步骤101,直接存储器访问模块接收数据传输请求信号。其中,在步骤101中,请求传输方发出的数据传输请求信号包括:请求信号(req)及单信号(single)(第一功能信号)、eobr(第一监测信号)和fded(第一编码信号)。具体地,req为高电平表示请求传输有效。在req变为高电平时,判断single请求。在req为高电平且single为低电平时,表示传输突发多个单位数据;在req为高电平且single为高电平时,表示传输的数据量为单个数据。另外,只有在后述的直接存储器访问模块的应答信号(ack)为高电平时,req从高电平变为低电平,否则req一直保持高电平。eobr为req的监测验证信号,既req奇偶统计信号。在第一个req、第三个req等第奇数个req时,eobr为高电平;在第二个req、第四个req等第偶数个req时,eobr为低电平。每次req信号上升沿(变为高电平)时,eobr取反。fded为对req、eobr和single进行纠错码算法的结果。具体地,fded为对{1’b0,req,single,eobr}拼凑的4bit的数据进行汉明编码得到的4bit的编码信号。另外,编码方式并不限于汉明编码,可以是CRC等等。
[0070] 在步骤102,直接存储器访问模块基于数据传输请求信号发出响应信号。在步骤102中,直接存储器访问模块发出的响应信号包括:ack(第二功能信号)、eoba(第二监测信号)、comp_p(第三功能信号)、comp_n(第三监测信号)和rded(第二编码信号)。ack表示直接存储器访问模块响应请求传输方的数据传输请求,并开始传输数据,既、ack表示反馈给请求传输方,请求传输已经开始执行。只有在req变为低电平后,ack从高电平变为低电平,否则ack一直保持为高电平。eoba为ack的监测验证信号,既ack奇偶统计信号。在第一个ack、第三个ack等第奇数个ack时,eoba为高电平;在第二个ack、第四个ack等第偶数个ack时,eoba为低电平。每次ack信号上升沿(变为高电平)时,eoba取反。comp_p表示对当前req数据已经传输完成,并向请求传输方反馈(完成信号comp_p),并且其由低电平变为高电平的上升沿的时刻,表示直接存储器访问模块已经将请求传输方请求的传输数据全部发送到数据总线上;其由高电平变为低电平的下降沿的时刻,表示直接存储器访问模块将请求传输方请求的传输数据已经全部传输到了最终目的地接收方。comp_n为comp_p的监测验证信号,既为comp_p的监控取反信号,跟comp_p是同步取反关系。如果请求传输方接收到的comp_p和comp_n不是取反关系,表示信号传输过程中出现异常,有外面干扰和逻辑翻转。rded为对ack、eoba、comp_p和comp_n进行纠错码算法的结果。具体地,rded为对{ack,eoba,comp_p,comp_n}拼凑的4bit的数据进行汉明编码得到的4bit的编码信号。另外,编码方式并不限于汉明编码,可以是CRC等等。
[0071] 在步骤103,直接存储器访问模块基于数据传输请求信号、响应信号及传输完成信号,确定预读写的时刻。在步骤103中,在直req为高电平、ack为低电平、且comp_p变为高电平时,直接存储器访问模块进行预读下一个数据传输请求,直到comp_p变为低电平;在直接存储器访问模块进行预读后对应的req变为低电平后,直接存储器访问模块进行预写最终目的地接收方,直到comp_p变为低电平。或者,在步骤103中,在req为高电平、ack为低电平、且comp_p变为低电平时,直接存储器访问模块进行预读下一个数据传输请求,直到ack变为高电平;之后直接存储器访问模块进行预写最终目的地接收方,直到comp_p变为低电平。
[0072] 另外,数据传输请求信号具有如下安全机制。直接存储器访问模根据fded对req、single和eobr进行解码,判断信号是否有异常,如果有1bit错误,可以进行纠错。在解码无错、且eobr根据req上升沿来取反时,判断req和single为正常有效信号。在解码无错、且eobr没有根据req上升沿来取反时,判断为req和single为无效信号,并产生报告警中断。在解码有1bit错误且能够纠错处理、并且eobr根据req上升沿来取反时,判断req和single为正常有效信号,并产生报告警中断。在解码有1bit错误且能够纠错处理、并且eobr没有根据req上升沿来取反时,判断req和single为无效信号,并产生报告警中断。在解码有2bit以上错误且无法纠错处理时,判断req和single为无效信号,并产生报告警中断。
[0073] 另外,响应信号具有如下安全机制。最终目的地接收方rded对ack、eoba、comp_p和comp_n进行解码,判断信号是否有异常,如果有1bit错误,可以进行纠错。在解码无错、且eoba根据ack上升沿来取反时,判断ack和eoba为正常有效信号,同时comp_p与comp_n保持取反关系时,判断comp_p为正常有效信号。在解码无错、且eoba没有根据ack上升沿来取反时,判断ack和eoba为无效信号,或comp_p与comp_n不保持取反关系时,判断comp_p为无效信号,并产生报告警中断。在解码有1bit错误且能够纠错处理、并且eoba根据ack上升沿来取反时,判断ack和eoba为正常有效信号,同时comp_p与comp_n保持取反关系时,判断comp_p为正常有效信号,并产生报告警中断。在解码有1bit错误且能够纠错处理、并且eoba没有根据ack上升沿来取反时,判断ack和eoba为无效信号,或comp_p与comp_n不保持取反关系时,判断comp_p为无效信号,并产生报告警中断。在解码有2bit以上错误且无法纠错处理时,判断ack、eoba和comp_p为无效信号,并产生报告警中断。
[0074] 根据本实施例的基于DMA握手协议的数据传输方法,根据外设与直接存储器访问模块之间的握手协议时的包括功能信号、检测信号和编码信号的数据传输请求信号及响应信号,确定直接存储器访问模块的预读写的时刻,可以提高DMA数据传输效率,提高DMA传输吞吐量。
[0075] 根据本实施例的基于DMA握手协议的数据传输方法,通过处理当前握手请求的时候,能够预处理下一个握手请求机制,可以使DMA的预读数据和预写数据跟DMA与请求传输方握手请求预处理有完美配合,既可以实现在AXI读数据延时和写数据延这段时间内能同时实现DMA预读数据和预写数据处理,以使实际DMA传输效率离理论值差距较小,进而提高数据传输效率。
[0076] 根据本实施例的基于DMA握手协议的数据传输方法,通过使数据传输请求信号和响应信号分别具备安全机制,以在出错时候能报错并产生中断,可以提升功能安全性,并且可以避免外设的req异常的情况,出现异常数据传输操作,防止灾难性的数据传输出现。
[0077] 根据本实施例的基于DMA握手协议的数据传输方法,通过在当前请求未处理完时,预处理下一个握手请求的时候,当前握手请求的DMA读数据任务完成且DMA写数据任务未完成时刻,去处理下一个握手请求DMA读确认机制,可以充分利用DMA空闲时刻实现DMA安全确认机制,提高DMA利用率,进而进一步提高数据传输效率。
[0078] 实施例3
[0079] 本实施例中,还提供一种车规芯片,包括,上述实施例的基于DMA握手协议的数据传输系统。
[0080] 实施例4
[0081] 本实施例中,还提供一种电子设备,包括上述实施例中的车规芯片。
[0082] 实施例5
[0083] 本实施例中,还提供一种计算机可读存储介质,其上存储有计算机指令,当计算机指令运行时执行上述实施例的基于DMA握手协议的数据传输方法的步骤。
[0084] 本领域普通技术人员可以理解:以上所述仅为本申请的优选实施例而已,并不用于限制本申请,尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。