一种DMA控制器及其数据传输方法技术

技术编号:26790739 阅读:17 留言:0更新日期:2020-12-22 17:05
本发明专利技术涉及一种DMA控制器及其数据传输方法,所述DMA控制器包括:检测描述符状态单元,用于当DMA控制器向CPU传输数据或者从CPU接收数据时,检测所述数据对应的描述符的状态指示位Done的值,所述DMA控制器基于所述检测结果对所述数据进行处理。通过在DMA控制器中增加检测描述符状态单元,在DMA控制器和CPU之间数据传输时,根据描述符的状态指示位Done进行操作,不需要关心主存和Cache之间是否同步,避免CPU收到中断后从进程的地址空间没有得到DMA控制器传输过来的数据而导致数据丢失,可大幅提升CPU和DMA控制器数据传输的性能。

【技术实现步骤摘要】
一种DMA控制器及其数据传输方法
本专利技术涉及网络设备
,具体涉及一种DMA控制器及其数据传输方法。
技术介绍
一般来说,DMA传输将数据从一个地址空间复制到另外一个地址空间。当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。DMA传输对于高效能嵌入式系统算法和网络是很重要的。在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。一个完整的DMA传输过程必须经过DMA请求、DMA响应、DMA传输、DMA结束4个步骤。在请求步骤,CPU对DMA控制器初始化,并向I/O接口发出操作命令,I/O接口提出DMA请求。在响应步骤,DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当CPU执行完当前总线本文档来自技高网...

【技术保护点】
1.一种直接存储器访问DMA控制器,其特征在于,所述DMA控制器包括:/n检测描述符状态单元,用于当DMA控制器向CPU传输数据或者从CPU接收数据时,检测所述数据对应的描述符的状态指示位Done的值,所述DMA控制器基于所述检测结果对所述数据进行处理;其中,所述状态指示位Done的值为0或1,Done=1表示描述符有效,Done=0表示描述符空闲。/n

【技术特征摘要】
1.一种直接存储器访问DMA控制器,其特征在于,所述DMA控制器包括:
检测描述符状态单元,用于当DMA控制器向CPU传输数据或者从CPU接收数据时,检测所述数据对应的描述符的状态指示位Done的值,所述DMA控制器基于所述检测结果对所述数据进行处理;其中,所述状态指示位Done的值为0或1,Done=1表示描述符有效,Done=0表示描述符空闲。


2.如权利要求1所述的DMA控制器,其特征在于,所述DMA控制器还包括读写主存数据单元,当所述DMA控制器向所述CPU传输数据时,所述DMA控制器判断是否存在状态指示位Done=0的描述符;若不存在,
则终止数据传输;若存在,
则所述读写主存数据单元通过控制总线向所述描述符对应的主存的数据地址写入数据,所述DMA控制器将所述数据对应的描述符的状态指示位Done的值置为1。


3.如权利要求2所述的DMA控制器,其特征在于,所述DMA控制器向主存写完数据后,将中断寄存器的标志位置为1,以中断的方式通知CPU,所述CPU在收到中断后,调用相应的中断处理函数,并判断是否进行中断处理;若是,则将中断寄存器的标志位置为0,清除中断,并通过缓存Cache读取主存中的数据。


4.如权利要求1所述的DMA控制器,其特征在于,当所述CPU向所述DMA控制器传输数据时,所述CPU将所述数据承载在描述符的数据部分,并将所述描述符中的状态指示位Done的值置为1,所述DMA控制器中的所述检测描述符状态单元顺序扫描所述描述符,判断其状态指示位done的值是否为1;若是,
则所述DMA控制器读取所述描述符的数据进行处理。


5.如权利要求4所述的DMA控制器,其特征在于,所述DMA控制器还包括接收和发送数据单元;所述DMA控制器读取所述描述符的数据进行处理,包括:所述读写主存数据单元从所述主存中读取数据,并发送给所述接收和发送数据单元,所述接收和发送数据单元将所述数据发送给网络处理器;所述DMA控制器将所述数据对应的描述符状态指示位Done的...

【专利技术属性】
技术研发人员:何志川徐海青王义东
申请(专利权)人:盛科网络苏州有限公司
类型:发明
国别省市:江苏;32

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

1