一种数据缓冲方法和装置制造方法及图纸

技术编号:23704627 阅读:64 留言:0更新日期:2020-04-08 11:07
本发明专利技术实施例提供了一种数据缓冲方法和装置,所述方法包括:获取写/读操作的数据长度、在内部总线上的首个有效字节数据的起始位置信息,以及在多块双端口RAM上的数据操作指针,根据写/读操作的数据长度和数据操作指针,确定在多块双端口RAM上写/读操作的操作位置信息,根据写/读操作的操作位置信息和起始位置信息,重新排列多块双端口RAM的对应的字节数据,并执行数据缓冲的写/读操作,避免了DMA控制器的源地址和目的地址需要对齐的限制,并且没有增设触发器,继而减少了增设触发器所需占用的芯片面积,在处理源地址和目的地址不对齐的情况时,无需经过触发器对数据进行移位,继而减少了读数据从双端口RAM读端口到内部总线的延迟。

A data buffer method and device

【技术实现步骤摘要】
一种数据缓冲方法和装置
本专利技术涉及数据处理
,特别是涉及一种数据缓冲方法、一种数据缓冲装置。
技术介绍
片内总线DMA(DirectMemoryAccess,直接存储器存取)控制器是SoC(SystemonChip,片上系统)中常见的一种DMA控制器。这种DMA控制器用于在SoC的片内总线网络上将指定长度的数据从源地址搬运到目的地址。DMA控制器为了提高片内总线的利用效率,通常会将从源地址读取的数据在内部进行缓冲后再写入目的地址。DMA控制器在进行数据缓冲时,常用的缓冲资源有双端口RAM(randomaccessmemory,随机存取存储器)和触发器。触发器具有使用灵活的特点。双端口RAM的使用没有触发器灵活。存储相同容量的数据时,双端口RAM占用的芯片的面积通常远远小于触发器占用的芯片面积。双端口RAM通常有一个写端口和一个读端口,写端口和读端口可以共用一个时钟输入也可以各自使用独立的时钟输入。双端口RAM的写端口通常包含:写地址、写数据、写使能、写时钟。在写时钟的每个上升沿,如果写使能有效,则将写数据在RAM中写入本文档来自技高网...

【技术保护点】
1.一种数据缓冲方法,其特征在于,包括:/n获取写/读操作的数据长度;/n获取写/读操作在内部总线上的首个有效字节数据对应的起始位置信息;/n获取写/读操作在多块双端口RAM上对应的数据操作指针,其中,所述双端口RAM一次存储一个字节数据,所述双端口RAM的块数与所述内部总线一次传输的字节数据的最大数量相同;/n根据所述写/读操作的数据长度和数据操作指针,确定在所述多块双端口RAM上写/读操作的的操作位置信息;/n根据所述写/读操作的操作位置信息和起始位置信息,重新排列所述多块双端口RAM对应的字节数据,并执行数据缓冲的写/读操作。/n

【技术特征摘要】
1.一种数据缓冲方法,其特征在于,包括:
获取写/读操作的数据长度;
获取写/读操作在内部总线上的首个有效字节数据对应的起始位置信息;
获取写/读操作在多块双端口RAM上对应的数据操作指针,其中,所述双端口RAM一次存储一个字节数据,所述双端口RAM的块数与所述内部总线一次传输的字节数据的最大数量相同;
根据所述写/读操作的数据长度和数据操作指针,确定在所述多块双端口RAM上写/读操作的的操作位置信息;
根据所述写/读操作的操作位置信息和起始位置信息,重新排列所述多块双端口RAM对应的字节数据,并执行数据缓冲的写/读操作。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述写/读操作的数据长度和记录的数据操作指针,生成下一个数据操作指针并记录。


3.根据权利要求1所述的方法,其特征在于,所述操作位置信息包括双端口RAM中的块内位置标识,所述根据所述写/读操作的数据长度和数据操作指针,确定在所述多块双端口RAM上的操作位置信息包括:
根据所述写/读操作的数据长度和数据操作指针,生成在各块双端口RAM上写/读操作的块内位置标识。


4.根据权利要求3所述的方法,其特征在于,所述数据操作指针包括双端口RAM的块标识和双端口RAM中的块内位置标识,所述根据所述写操作的数据长度和数据操作指针,生成在各块双端口RAM上写操作的块内位置标识包括:
根据所述写操作的数据长度和数据操作指针中的双端口RAM的块标识,确定在所述各块双端口RAM上写操作的使能信号;
根据所述写操作的使能信号和数据操作指针中的双端口RAM中的块内位置标识,确定在各块双端口RAM上写操作的块内位置标识。


5.根据权利要求4所述的方法,其特征在于,所述根据所述写操作的数据长度和首个双端口RAM的块标识,确定在所述各块双端口RAM上写操作的使能信号包括:
根据所述写操作的数据长度和数据操作指针中的双端口RAM的块标识,确定写操作在数据操作指针中的块内位置标识和下一个数据操作指针中的块内位置标识对应的使能信息;
根据所述使能信息,确定在所述各块双端口RAM上写操作的使能信号。


6.根据权利要求3所述的方法,其特征在于,所述数据操作指针包括双端口RAM的块标识和双端口RAM中的块内位置标识,所述根据所述读操作的数据长度和数据操作指针,生成在各块双端口RAM上读操作的块内位置标识包括:
根据所述读操作的数据长度和数据操作指针中的双端口RAM的块标识,确定读操作在数据操作指针中的块内位置标识和下一个数据操作指针的块内位置标识对应的使能信息;
当DMA控制器给双端口RAM有效的使能信号时,根据所述使能信息和数据操作指针中的块内位置标识,确定所述各个双端口RAM上读操作的块内位置标识;
根据所述使能信息和下一个数据操作指针中的块内位置标识,确定所述各块双端口RAM上读操作的块内位置标识。


7.根据权利要求1-6任一项所述的方法,其特征在于,所述根据所述写操作的操作位置信息和起始位置信息,重新排列所述多块双端口RAM对应的字节数据,并执行数据缓冲的写操作包括:
根据所述写操作的操作位置信息和起始位置信息,在所述内部总线上,为每块双端口RAM选取所述写操作的字节数据;
根据所述操作位置信息,将选取的字节数据写入对应的双端口RAM。


8.根据权利要求7所述的方法,其特征在于,所述根据所述写操作的操作位置信息和起始位置信息,在所述内部总线上,为每块双端口RAM选取所述写操作的字节数据包括:
根据所述写操作的起始位置信息,按照小尾端的次序排列所述内部总线返回的有效数据,赋值给第一临时数据,所述第一临时数据中字节数据的个数与所述内部总线一次传输的字节数据的最大数量相同;
将所述第一临时数据赋值给第二临时数据的高N字节数据和低N字节数据,所述第二临时数据中字节数据的个数2N与所述内部总线一次传输的字节数据的最大数量的两倍相同;
根据所述写操作的操作位置信息和内部总线一次传输的字节数据的最大数量,确定所述第二临时数据右移的位数,并将所述第二临时数据右移后,赋值给第三临时数据,所述第三临时数据中字节数据的个数2N与所述内部总线一次传输的字节数据的最大数量的两倍相同;
所述根据所述写操作的操作位置信息,将选取的字节数据写入对应的双端口RAM包括:
将所述第三临时数据的低N位字节数据写入对应的双端口RAM。


9.根据权利要求1-6任一项所述的方法,其特征在于,所述根据所述读操作的操作位置信息和起始位置信息,重新排列所述多个双端口RAM的对应的字节数据,并执行数据缓冲的读操作包括:
根据所述读操作的操作位置信息和起始位置信息,按照所述内部总线的输出顺序,重新排列从所述多个双端口RAM读出的字节数据;
根据所述读操作的起始位置信息,读取排列后的双端口RAM读出字节数据到所述内部总线。


10.根据权利要求9所述的方法,其特征在于,所述根据所述读操作的操作位置信息和起始位置信息,按照所述内部总线的输出顺序,重新排列从所述多块双端口RAM读出的字节数据包括:
将所述多个双端口RAM读出的字节数据,赋值给第四临时数据,所述第四临时数据中字节数据的个数与所述内部总线一次传输的字节数据的最大数量相同;
将所述第四临时数据赋值给第五临时数据的高N字节数据和低N字节数据,所述第五临时数据中字节数据的个数2N与所述内部总线一次传输的字节数据的最大数量的两倍相同;
根据所述操作位置信息,确定所述第五临时数据右移的位数,并将所述第五临时数据右移后,赋值给第六临时数据,所述第六临时数据中字节数据的个数2N与所述内部总线一次传输的字节数据的最大数量的两倍相同;
按照小尾端的次序排列所述第六临时数据,将所述第六临时数据的低N字节数据,赋值给第七临时数据,所述第七临时数据中字节数据的个数与所述内部总线一次传输的字节数据的最大数量相同;
所述根据所述读操作的起始位置信息,读取排列后的字节数据到所...

【专利技术属性】
技术研发人员:蔡飞
申请(专利权)人:龙芯中科技术有限公司
类型:发明
国别省市:北京;11

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

1