分级缓冲的DMA传送装置及传送方法.pdf

上传人:1****2 文档编号:4219920 上传时间:2018-09-07 格式:PDF 页数:10 大小:427.13KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110102767.1

申请日:

2011.04.22

公开号:

CN102750244A

公开日:

2012.10.24

当前法律状态:

授权

有效性:

有权

法律详情:

专利权质押合同登记的生效IPC(主分类):G06F 13/28登记号:2017990001008登记生效日:20171102出质人:安凯(广州)微电子技术有限公司质权人:中国建设银行股份有限公司广州经济技术开发区支行发明名称:分级缓冲的DMA传送装置及传送方法申请日:20110422授权公告日:20150311|||授权|||实质审查的生效IPC(主分类):G06F 13/28申请日:20110422|||公开

IPC分类号:

G06F13/28

主分类号:

G06F13/28

申请人:

安凯(广州)微电子技术有限公司

发明人:

蔡宁宁; 胡胜发

地址:

510663 广东省广州市广州科学城科学大道182号创新大厦C1区3楼

优先权:

专利代理机构:

北京集佳知识产权代理有限公司 11227

代理人:

李赞坚;曹志霞

PDF下载: PDF下载
内容摘要

本发明适用于芯片设计领域,具体公开了一种分级缓冲的DMA传送装置及传送方法,其提供了一种大量数据往内存控制器传送时直接存储访问主存控制电路的设计方法,通过将上传DMA缓冲拆分成大的主缓冲和很小的前置缓冲,而主缓冲用单口memory,可得以在保证平衡DDR和外设之间数据传输稳定的同时,大幅度缩减芯片面积。

权利要求书

1.一种分级缓冲的DMA传送装置,其特征在于,包括若干外设端、一主控
端、一DMA单口主缓冲及一主缓冲控制器和一前置缓冲及一前置缓冲控制器,其
中:
所述外设端,用于匀速地定向发送/接收请求数据;
所述主控端,用于迸发式响应外设端的发送/接收请求,响应后在有限时间内完
成;
所述单口主缓冲,在所述主缓冲控制器的调度下,用于平滑外设端匀速数据请
求与主控端迸发式处理之间的矛盾冲突,在正常运行状态时,所述外设端可直接访
问所述单口主缓冲;当所述单口主缓冲中数据量达到预设阀值时,由所述主缓冲控
制器启动对所述主控端的DMA访问请求;
所述前置缓冲,在所述前置缓冲控制器的调度下,用于在所述主控端响应所述
外设端的DMA请求时,启动所述前置缓冲接纳所述外设端发来的数据请求。
2.如权利要求1所述的分级缓冲的DMA传送装置,其特征在于,所述前置缓
冲可在所述主控端完成对所述外设端的DMA请求响应与所述外设端访问所述单口
主缓冲的间隙处,将所述前置缓冲的内容逐步搬移到所述单口主缓冲区内,合并成
一个完整的数据体。
3.如权利要求1所述的分级缓冲的DMA传送装置,其特征在于,所述单口主
缓冲可在外设端请求为读请求时,在所述外设端发起DMA请求之前,将所述单口
主缓冲中的部分数据预先搬移到所述前置缓冲内。
4.如权利要求1、2或3所述的分级缓冲的DMA传送装置,其特征在于,所
述前置缓冲为单口RAM。
5.如权利要求1、2或3所述的分级缓冲的DMA传送装置,其特征在于,所
述前置缓冲为双口RAM。
6.一种分级缓冲的DMA传送方法,其特征在于,包括:
外设端匀速地定向发送/接收请求数据;
主控端迸发式响应外设端的发送/接收请求,响应后在有限时间内完成;
单口主缓冲在主缓冲控制器的调度下,平滑外设端匀速数据请求与主控端迸发
式处理之间的矛盾冲突,其中:在正常运行状态时,外设端直接访问单口主缓冲;
在单口主缓冲中数据量达到预设阀值时,主缓冲控制器启动对主控端的DMA访问
请求;
前置缓冲在前置缓冲控制器的调度下,在主控端响应所述外设端的DMA请求
时,启动前置缓冲接纳外设端发来的数据请求。
7.如权利要求6所述的分级缓冲的DMA传送方法,其特征在于,前置缓冲在
主控端完成对外设端的DMA请求响应与外设端访问单口主缓冲的间隙处,将前置
缓冲的内容逐步搬移到单口主缓冲区内,合并成一个完整的数据体。
8.如权利要求6所述的分级缓冲的DMA传送方法,其特征在于,单口主缓冲
在外设端请求为读请求时,在外设端发起DMA请求之前,将单口主缓冲中的部分
数据预先搬移到前置缓冲内。
9.如权利要求6、7或8所述的分级缓冲的DMA传送方法,其特征在于,根
据外设端匀速数据请求与主控端迸发式处理之间的矛盾冲突峰值确定单口主缓冲的
访问深度。
10.如权利要求6、7或8所述的分级缓冲的DMA传送方法,其特征在于,根
据主控端迸发式响应时间、外设端请求数据量总和与外设端数据访问频率之比的峰
值确定前置缓冲的访问深度。

说明书

分级缓冲的DMA传送装置及传送方法

技术领域

本发明涉及芯片设计领域,尤其涉及向DDR(双倍速率同步动态数据存储器)
传送大量数据的DMA(Direct Memery Access,直接存储访问)读写控制方法、装
置及系统。

背景技术

在芯片设计中,通常涉及一个大数据量的实时外设与芯片系统主存DDR发生
大量数据交互的过程。由于外设被动性和对数据需求的恒定性,与DDR主存反馈
信息的不能精确可控性,在芯片设计中时常用到一个大FIFO(First Input First Output,
先入先出)芯片将外设数据和DDR响应之间隔离开来,并用以平滑DDR响应的突
发性,保证外设数据传输的均衡性。

现有的方法往往采用全异步设计,异步数据读写控制方法通常采用异步先入先
出方式实现,即在将双口随机存取存储器(Random Access Memory,RAM)的地
址进行格雷码转换后,通过判决地址的距离来判断FIFO的空满状态,并将其作为
跨时钟域的握手信号。上述方法能很好的处理跨时钟域隔离,适用于大批量固定方
向数据传输的情况,特别是全异步处理的最主要选择。但是随着芯片DDR控制端
竞争复杂度增加时,DDR所反馈的数据很不均匀,因此用于隔离外设和DDR的
FIFO需要很大,才能很好地平滑DDR端的突发性和外设需求的恒定性。

RAM一般有双口和单口两种:双口的RAM能同时进行读操作和写操作,共
享一片内存区域,在一个端口写入的内容,可以在另一个端口相同的地址读取出来;
而单口的RAM只有一套读写地址,某一个时刻只能由一个设备完成对RAM的操
作,但面积只有双口的RAM的一半。

当外设时钟和DDR控制时钟存在同步关系时,如果采用分时复用(Time
Dvision Multiplex Accesss)的方法,将这种大块的双口RAM替换成单口RAM,成
为芯片设计缩减面积重要手段之一,而发明的出发点就是提供在DMA数据传输中,
用单口RAM替换双口RAM所遇到问题的解决办法。

发明内容

有鉴于此,本发明实施例的目的在于提供一种将DMA two ports FIFO(双口
FIFO)替换成single port memory(Spram,单口RAM)的设计方法和相应的控制逻
辑的设计方法,旨在保证平衡DDR和外设之间数据传输稳定的同时,尽可能缩小
芯片面积。

为解决以上技术问题,本发明实施例提供的技术方案是:一种分级缓冲的DMA
传送装置,包括若干外设端、一主控端、一DMA单口主缓冲及一主缓冲控制器和
一前置缓冲及一前置缓冲控制器,其中:

所述外设端,用于匀速地定向发送/接收请求数据;

所述主控端,用于迸发式响应外设端的发送/接收请求,响应后在有限时间内完
成;

所述单口主缓冲,在所述主缓冲控制器的调度下,用于平滑外设端匀速数据请
求与主控端迸发式处理之间的矛盾冲突,在正常运行状态时,所述外设端可直接访
问所述单口主缓冲;当所述单口主缓冲中数据量达到预设阀值时,由所述主缓冲控
制器启动对所述主控端的DMA访问请求;

所述前置缓冲,在所述前置缓冲控制器的调度下,用于在所述主控端响应所述
外设端的DMA请求时,启动所述前置缓冲接纳所述外设端发来的数据请求。

较优地,所述前置缓冲可在所述主控端完成对所述外设端的DMA请求响应与
所述外设端访问所述单口主缓冲的间隙处,将所述前置缓冲的内容逐步搬移到所述
单口主缓冲区内,合并成一个完整的数据体。

较优地,所述单口主缓冲可在外设端请求为读请求时,在所述外设端发起DMA
请求之前,将所述单口主缓冲中的部分数据预先搬移到所述前置缓冲内。

较优地,所述前置缓冲为单口RAM。

较优地,所述前置缓冲为双口RAM。

本发明实施例还提供一种分级缓冲的DMA传送方法,包括:

外设端匀速地定向发送/接收请求数据;

主控端迸发式响应外设端的发送/接收请求,响应后在有限时间内完成;

单口主缓冲在主缓冲控制器的调度下,平滑外设端匀速数据请求与主控端迸发
式处理之间的矛盾冲突,其中:在正常运行状态时,外设端直接访问单口主缓冲;
在单口主缓冲中数据量达到预设阀值时,主缓冲控制器启动对主控端的DMA访问
请求;

前置缓冲在前置缓冲控制器的调度下,在主控端响应所述外设端的DMA请求
时,启动前置缓冲接纳外设端发来的数据请求。

较优地,前置缓冲在主控端完成对外设端的DMA请求响应与外设端访问单口
主缓冲的间隙处,将前置缓冲的内容逐步搬移到单口主缓冲区内,合并成一个完整
的数据体。

较优地,单口主缓冲在外设端请求为读请求时,在外设端发起DMA请求之前,
将单口主缓冲中的部分数据预先搬移到前置缓冲内。

较优地,根据外设端匀速数据请求与主控端迸发式处理之间的矛盾冲突峰值确
定单口主缓冲的访问深度。

较优地,根据主控端迸发式响应时间、外设端请求数据量总和与外设端数据访
问频率之比的峰值确定前置缓冲的访问深度。

与现有技术相比,本发明实施例提供了一种大量数据往内存控制器传送时,
DMA控制电路的一种设计方法,通过将上传DMA缓冲buffer拆分成大的主缓冲和
很小的前置缓冲,主缓冲用单口memory,得以大幅度缩减芯片面积,并保证平衡
DDR和外设之间数据传输的稳定。

附图说明

图1是现有DMA传送装置的控制信号示意图;

图2是本发明分级缓冲的DMA传送装置一实施例的原理框图;

图3是图2中的控制信号示意图;

图4是本发明分级缓冲的DMA传送方法一实施例的时序图。

具体实施方式

本发明的核心是将上传DMA buffer(缓冲)拆分成主缓冲和很小的前置缓冲,
主缓冲用单口memory(存储器),从而得以在保证平衡DDR和外设之间数据传输
稳定的同时大幅度缩减芯片面积。

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,
对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释
本发明,并不用于限定本发明。

参见图1,为现有DMA传送装置的控制信号示意图,其主控端的DDR由于
是多线程处理,总是处于忙状态,对于CPU访问DDR或其它设备访问DDR的请
求,并不能及时相应,但一旦响应则在有限时间内完成请求处理。为了平滑DDR
响应的突发性,保证外设数据传输的均衡性,设置有大的双口DMA buffer,因而芯
片面积较大。

该方案中,双口DMA buffe涉及到Read_clk(读时钟)、Read_en(读使能)、
Read_addr(读地址)、Read_data(读数据),以及Write_clk(写时钟)、Write_en
(写使能)、Write_addr(写地址)、Write_data(写数据)等控制信号,它们由缓
冲控制器(图未示出)统一调度,且读信号的频率大于写信号的频率(Freq_rclk>
Freq_wclk)。

与之不同,本发明将上传DMA buffer拆分成很大的主缓冲和很小的前置缓冲,
其中主缓冲用单口memory,从而可有效缩小芯片面积。

参见图2,表示出本发明分级缓冲的DMA传送装置的一实施例。该用于大数
据量传送的DMA发送和控制装置实施例是这样实现的,其主要包括以下几个部分:
匀速的数据发起/接收外设端200、迸发式数据接收/发送主控端400、DMA单口主
缓冲200及主缓冲控制器100、前置缓冲500及前置缓冲控制器600等部分,其中:

匀速的数据发起/接收外设端200,源源不断的定向对主控端400发送/请求数
据。由于外设端200是相比主控端400速度较缓慢的匀速发起数据请求,而主控端
400由于是多线程处理而总是处于忙状态,因此对某个外设的请求并不能及时响应,
但一旦响应则在有限时间内完成对外设端200的请求处理。

为此,单口主缓冲300(single port RAM,spram)则用来平滑外设的匀速数据
请求和主控的迸发处理的矛盾。这个单口主缓冲300的spram的访问深度,根据实
际中外设和主控之间矛盾冲突的峰值进行选择。

单口主缓冲300在主缓冲控制器100调度下工作,其控制逻辑是:在正常运行
时,或者单口主缓冲300的读写控制信号没有被迸发的主控所占用时,外设端200
拥有对单口主缓冲300的直接访问权;当单口主缓冲300中的数据量达到一定设定
的阈值时,DMA主缓冲控制器100启动对主控端400的DMA访问请求。

当主控端400响应外设端的DMA请求时,将完全占据单口主缓冲300的spram
的访问权限。而此时为了防止外部设备发送/请求的数据丢失,启动前置缓冲500用
于接纳外设端200发来的数据请求。

当主控端400完成对外设端200的DMA请求响应时,外设端200恢复对主缓
冲300的spram的访问控制权,但由于外设端200还有部分数据请求寄存在前置缓
冲500内,因此在外设端200访问spram的间隙处,前置缓冲500的内容将逐步搬
移到单口主缓冲200,合并成一个完整的数据体。

当外设端200数据请求为读请求时,在外设端200发起DMA请求之前,将单
口主缓冲300部分的数据,预先搬移到前置缓冲500内,可以保证主控端400对单
口主缓冲300访问时,由前置缓冲500提供给外设数据。

前置缓冲区500的深度由主控迸发式响应时间、外设请求的数据量的总和与外
设数据访问频率比的峰值决定。而前置缓冲500由于深度很小,无论采用单口RAM
还是双口RAM都可以。而使用双口RAM可以简化前置缓冲500的控制逻辑,但
对面积影响不是很大。

参见图3,为图2所示方案中单口DMA buffe涉及到控制信号,包括Write_bus(写
总线)、CLK(时钟)、Wen(写使能)、Wdata(写数据)、Waddr(写地址)等,
它们由主缓冲控制器100统一调度。同样地,读信号的频率大于写信号的频率
(Freq_rclk>Freq_wclk)。

图3中涉及两条路径:第一条表示“DDR不访问big DMA buffer”,即外设
可以直接写通到big buffer中;第二条路径的左上角设有一个“非门”,表示“DDR
正访问big DMA buffe”,即外设必须写到前置缓冲上去,此为本发明的关键所在。

在前述基础上,下面对本发明分级缓冲的DMA传送方法进行描述。

参见图4,表示本发明分级缓冲的DMA传送方法的时序,其具体过程为:

外设端匀速地定向发送/接收请求数据(过程1);

当主控端为非忙状态时,主控端迸发式响应外设端的发送/接收请求,响应后在
有限时间内完成(过程6);

当主控端为忙状态时,单口主缓冲在主缓冲控制器的调度下,平滑外设端匀速
数据请求与主控端迸发式处理之间的矛盾冲突,其中:

在正常运行状态时,外设端直接访问单口主缓冲(过程3);

在单口主缓冲中数据量达到预设阀值时,主缓冲控制器启动对主控端的DMA
访问请求(过程5);

前置缓冲在前置缓冲控制器的调度下,在主控端响应所述外设端的DMA请求
时,启动前置缓冲接纳外设端发来的数据请求(过程7)。

同时,前置缓冲在主控端完成对外设端的DMA请求响应与外设端访问单口主
缓冲的间隙处,将前置缓冲的内容逐步搬移到单口主缓冲区内,合并成一个完整的
数据体(过程8)。

特别地,在单口主缓冲在外设端请求为读请求时,在外设端发起DMA请求之
前,将单口主缓冲中的部分数据预先搬移到前置缓冲内。

该传送方法中,根据外设端匀速数据请求与主控端迸发式处理之间的矛盾冲突
峰值确定单口主缓冲的访问深度;同时,根据主控端迸发式响应时间、外设端请求
数据量总和与外设端数据访问频率之比的峰值确定前置缓冲的访问深度。

以上实施例通过将上传DMA缓冲buffer拆分成大的主缓冲和很小的前置缓冲,
主缓冲用单口memory,从而得以大幅度缩减芯片面积,并保证平衡DDR和外设之
间数据传输的稳定。

以下为本发明的一具体应用实例,简要描述如下。

应用实例

外设终端是camera(摄像机)摄像头,在录制DV时,基本上基于40M左右
的时钟,持续向DDR中送入采集数据,再由CPU进行视频编码,传输到SD卡(安
全数码卡)中进行存储,同时LCD屏幕上进行图像预览。

Camera的控制器与DDR控制器工作在同一个频率120M,正好3个周期由
camera控制器送出一个象素点。

由于LCD屏幕是源源不断的获取数据显示,因此LCD的DMA优先级最高,
DDR优先响应LCD的DMA请求。为提高DMA效率,每次每个设备DMA申请
都为256个字节。

经过系统的统计评估,camera的DMA控制器需要深度为2048的数据缓冲,
才能无风险地平滑系统繁忙时的突发工作导致无法及时响应camera的DMA请求。
否则容易发生camera数据缓冲的写溢出状态。

由于是连续地址访问,DDR控制器,每次服务256个字节的数据访问,需要
54个周期,加上控制信号的开销,一共要60个服务周期。即当camera发起DMA
请求时,什么开始得到真正响应时间不确定,但一旦得到服务响应,最多将在60
个周期内完成服务,完成之后DDR就释放对DMA单口主缓冲的读写控制。

而在这60个周期之内,大约有20个象素的数据需要缓冲,考虑DDR控制器
时钟和camera数据采集时钟的频率比可能发生变化,因此保守起见,前置缓冲区的
大小为32个象素。

初始时,camera每3个周期往big buffer里面写一个象素(为简化描述,这里认
为一个象素就是一个字节,只有亮度一路分量,色度两个分量在此文中描述忽略)。
而此时前置缓冲处于空闲状态。

当big buffer的写地址达到256时,CC(camera controller,摄像机控制器)启
动DMA请求上传数据。由于DDRC(DDR controller,DDR控制器)一直处于忙
状态,当CC获得DMA请求确认时,big buffer的写地址已经到达280。

CC获得DMA请求确认后,big buffer的读写控制权由完全交给DDRC,此时
CC将CC对big buffer的写地址进行锁存,并同时启动前置缓冲区。

在DDRC对CC的DMA请求服务期间,CC继续往地址281,282,283的地
址上写入数据,只不过前置缓冲区的此时0地址有个概念上的偏移地址280,即big
buffer控制权移交时的状态。

CC一共往前置缓冲写道300地址时,DDRC完成了CC的DMA服务请求——
将big buffer中的256个字节全部读走,并释放了big buffer的控制权。当CC继续
往big buffer中填入下一个数据时,填充的地址是301,以后依次增加。

由于CC平均3个周期往big buffer填入1个象素点,因此big buffer实际上还
有2/3的时间处于空闲。因此前置缓冲中的20个象素点的内容,可以在CC往311
地址上写入新的数据之前,利用间隙将这个数据完全搬移到big buffer的280~299
的地址空间,完成搬移后,前置缓冲区再次进入空闲状态。

下次CC发起新的DMA请求时,big buffer中的地址256~511空间内容为连续
内容,类似的动作周而复始。

以上仅是本发明的优选实施方式,应当指出的是,上述优选实施方式不应视为
对本发明的限制,本发明的保护范围应当以权利要求所限定的范围为准。对于本技
术领域的普通技术人员来说,在不脱离本发明的精神和范围内,还可以做出若干改
进和润饰,这些改进和润饰也应视为本发明的保护范围。

分级缓冲的DMA传送装置及传送方法.pdf_第1页
第1页 / 共10页
分级缓冲的DMA传送装置及传送方法.pdf_第2页
第2页 / 共10页
分级缓冲的DMA传送装置及传送方法.pdf_第3页
第3页 / 共10页
点击查看更多>>
资源描述

《分级缓冲的DMA传送装置及传送方法.pdf》由会员分享,可在线阅读,更多相关《分级缓冲的DMA传送装置及传送方法.pdf(10页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102750244 A (43)申请公布日 2012.10.24 C N 1 0 2 7 5 0 2 4 4 A *CN102750244A* (21)申请号 201110102767.1 (22)申请日 2011.04.22 G06F 13/28(2006.01) (71)申请人安凯(广州)微电子技术有限公司 地址 510663 广东省广州市广州科学城科学 大道182号创新大厦C1区3楼 (72)发明人蔡宁宁 胡胜发 (74)专利代理机构北京集佳知识产权代理有限 公司 11227 代理人李赞坚 曹志霞 (54) 发明名称 分级缓冲的DMA传送装置及传送方法 (57)。

2、 摘要 本发明适用于芯片设计领域,具体公开了一 种分级缓冲的DMA传送装置及传送方法,其提供 了一种大量数据往内存控制器传送时直接存储访 问主存控制电路的设计方法,通过将上传DMA缓 冲拆分成大的主缓冲和很小的前置缓冲,而主缓 冲用单口memory,可得以在保证平衡DDR和外设 之间数据传输稳定的同时,大幅度缩减芯片面积。 (51)Int.Cl. 权利要求书1页 说明书6页 附图2页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 1 页 说明书 6 页 附图 2 页 1/1页 2 1.一种分级缓冲的DMA传送装置,其特征在于,包括若干外设端、一主控端、一DMA单口 主。

3、缓冲及一主缓冲控制器和一前置缓冲及一前置缓冲控制器,其中: 所述外设端,用于匀速地定向发送/接收请求数据; 所述主控端,用于迸发式响应外设端的发送/接收请求,响应后在有限时间内完成; 所述单口主缓冲,在所述主缓冲控制器的调度下,用于平滑外设端匀速数据请求与主 控端迸发式处理之间的矛盾冲突,在正常运行状态时,所述外设端可直接访问所述单口主 缓冲;当所述单口主缓冲中数据量达到预设阀值时,由所述主缓冲控制器启动对所述主控 端的DMA访问请求; 所述前置缓冲,在所述前置缓冲控制器的调度下,用于在所述主控端响应所述外设端 的DMA请求时,启动所述前置缓冲接纳所述外设端发来的数据请求。 2.如权利要求1所。

4、述的分级缓冲的DMA传送装置,其特征在于,所述前置缓冲可在所述 主控端完成对所述外设端的DMA请求响应与所述外设端访问所述单口主缓冲的间隙处,将 所述前置缓冲的内容逐步搬移到所述单口主缓冲区内,合并成一个完整的数据体。 3.如权利要求1所述的分级缓冲的DMA传送装置,其特征在于,所述单口主缓冲可在外 设端请求为读请求时,在所述外设端发起DMA请求之前,将所述单口主缓冲中的部分数据 预先搬移到所述前置缓冲内。 4.如权利要求1、2或3所述的分级缓冲的DMA传送装置,其特征在于,所述前置缓冲为 单口RAM。 5.如权利要求1、2或3所述的分级缓冲的DMA传送装置,其特征在于,所述前置缓冲为 双口R。

5、AM。 6.一种分级缓冲的DMA传送方法,其特征在于,包括: 外设端匀速地定向发送/接收请求数据; 主控端迸发式响应外设端的发送/接收请求,响应后在有限时间内完成; 单口主缓冲在主缓冲控制器的调度下,平滑外设端匀速数据请求与主控端迸发式处理 之间的矛盾冲突,其中:在正常运行状态时,外设端直接访问单口主缓冲;在单口主缓冲中 数据量达到预设阀值时,主缓冲控制器启动对主控端的DMA访问请求; 前置缓冲在前置缓冲控制器的调度下,在主控端响应所述外设端的DMA请求时,启动 前置缓冲接纳外设端发来的数据请求。 7.如权利要求6所述的分级缓冲的DMA传送方法,其特征在于,前置缓冲在主控端完成 对外设端的DM。

6、A请求响应与外设端访问单口主缓冲的间隙处,将前置缓冲的内容逐步搬移 到单口主缓冲区内,合并成一个完整的数据体。 8.如权利要求6所述的分级缓冲的DMA传送方法,其特征在于,单口主缓冲在外设端请 求为读请求时,在外设端发起DMA请求之前,将单口主缓冲中的部分数据预先搬移到前置 缓冲内。 9.如权利要求6、7或8所述的分级缓冲的DMA传送方法,其特征在于,根据外设端匀速 数据请求与主控端迸发式处理之间的矛盾冲突峰值确定单口主缓冲的访问深度。 10.如权利要求6、7或8所述的分级缓冲的DMA传送方法,其特征在于,根据主控端迸 发式响应时间、外设端请求数据量总和与外设端数据访问频率之比的峰值确定前置缓。

7、冲的 访问深度。 权 利 要 求 书CN 102750244 A 1/6页 3 分级缓冲的 DMA 传送装置及传送方法 技术领域 0001 本发明涉及芯片设计领域,尤其涉及向DDR(双倍速率同步动态数据存储器)传送 大量数据的DMA(Direct Memery Access,直接存储访问)读写控制方法、装置及系统。 背景技术 0002 在芯片设计中,通常涉及一个大数据量的实时外设与芯片系统主存DDR发生大量 数据交互的过程。由于外设被动性和对数据需求的恒定性,与DDR主存反馈信息的不能精 确可控性,在芯片设计中时常用到一个大FIFO(First Input First Output,先入先出)。

8、芯 片将外设数据和DDR响应之间隔离开来,并用以平滑DDR响应的突发性,保证外设数据传输 的均衡性。 0003 现有的方法往往采用全异步设计,异步数据读写控制方法通常采用异步先入先出 方式实现,即在将双口随机存取存储器(Random Access Memory,RAM)的地址进行格雷码转 换后,通过判决地址的距离来判断FIFO的空满状态,并将其作为跨时钟域的握手信号。上 述方法能很好的处理跨时钟域隔离,适用于大批量固定方向数据传输的情况,特别是全异 步处理的最主要选择。但是随着芯片DDR控制端竞争复杂度增加时,DDR所反馈的数据很 不均匀,因此用于隔离外设和DDR的FIFO需要很大,才能很好地。

9、平滑DDR端的突发性和外 设需求的恒定性。 0004 RAM一般有双口和单口两种:双口的RAM能同时进行读操作和写操作,共享一片内 存区域,在一个端口写入的内容,可以在另一个端口相同的地址读取出来;而单口的RAM只 有一套读写地址,某一个时刻只能由一个设备完成对RAM的操作,但面积只有双口的RAM的 一半。 0005 当外设时钟和DDR控制时钟存在同步关系时,如果采用分时复用(TimeDvision Multiplex Accesss)的方法,将这种大块的双口RAM替换成单口RAM,成为芯片设计缩减面 积重要手段之一,而发明的出发点就是提供在DMA数据传输中,用单口RAM替换双口RAM所 遇到。

10、问题的解决办法。 发明内容 0006 有鉴于此,本发明实施例的目的在于提供一种将DMA two ports FIFO(双口FIFO) 替换成single port memory(Spram,单口RAM)的设计方法和相应的控制逻辑的设计方法, 旨在保证平衡DDR和外设之间数据传输稳定的同时,尽可能缩小芯片面积。 0007 为解决以上技术问题,本发明实施例提供的技术方案是:一种分级缓冲的DMA传 送装置,包括若干外设端、一主控端、一DMA单口主缓冲及一主缓冲控制器和一前置缓冲及 一前置缓冲控制器,其中: 0008 所述外设端,用于匀速地定向发送/接收请求数据; 0009 所述主控端,用于迸发式响应。

11、外设端的发送/接收请求,响应后在有限时间内完 成; 说 明 书CN 102750244 A 2/6页 4 0010 所述单口主缓冲,在所述主缓冲控制器的调度下,用于平滑外设端匀速数据请求 与主控端迸发式处理之间的矛盾冲突,在正常运行状态时,所述外设端可直接访问所述单 口主缓冲;当所述单口主缓冲中数据量达到预设阀值时,由所述主缓冲控制器启动对所述 主控端的DMA访问请求; 0011 所述前置缓冲,在所述前置缓冲控制器的调度下,用于在所述主控端响应所述外 设端的DMA请求时,启动所述前置缓冲接纳所述外设端发来的数据请求。 0012 较优地,所述前置缓冲可在所述主控端完成对所述外设端的DMA请求响应。

12、与所述 外设端访问所述单口主缓冲的间隙处,将所述前置缓冲的内容逐步搬移到所述单口主缓冲 区内,合并成一个完整的数据体。 0013 较优地,所述单口主缓冲可在外设端请求为读请求时,在所述外设端发起DMA请 求之前,将所述单口主缓冲中的部分数据预先搬移到所述前置缓冲内。 0014 较优地,所述前置缓冲为单口RAM。 0015 较优地,所述前置缓冲为双口RAM。 0016 本发明实施例还提供一种分级缓冲的DMA传送方法,包括: 0017 外设端匀速地定向发送/接收请求数据; 0018 主控端迸发式响应外设端的发送/接收请求,响应后在有限时间内完成; 0019 单口主缓冲在主缓冲控制器的调度下,平滑外。

13、设端匀速数据请求与主控端迸发式 处理之间的矛盾冲突,其中:在正常运行状态时,外设端直接访问单口主缓冲;在单口主缓 冲中数据量达到预设阀值时,主缓冲控制器启动对主控端的DMA访问请求; 0020 前置缓冲在前置缓冲控制器的调度下,在主控端响应所述外设端的DMA请求时, 启动前置缓冲接纳外设端发来的数据请求。 0021 较优地,前置缓冲在主控端完成对外设端的DMA请求响应与外设端访问单口主缓 冲的间隙处,将前置缓冲的内容逐步搬移到单口主缓冲区内,合并成一个完整的数据体。 0022 较优地,单口主缓冲在外设端请求为读请求时,在外设端发起DMA请求之前,将单 口主缓冲中的部分数据预先搬移到前置缓冲内。。

14、 0023 较优地,根据外设端匀速数据请求与主控端迸发式处理之间的矛盾冲突峰值确定 单口主缓冲的访问深度。 0024 较优地,根据主控端迸发式响应时间、外设端请求数据量总和与外设端数据访问 频率之比的峰值确定前置缓冲的访问深度。 0025 与现有技术相比,本发明实施例提供了一种大量数据往内存控制器传送时,DMA控 制电路的一种设计方法,通过将上传DMA缓冲buffer拆分成大的主缓冲和很小的前置缓 冲,主缓冲用单口memory,得以大幅度缩减芯片面积,并保证平衡DDR和外设之间数据传输 的稳定。 附图说明 0026 图1是现有DMA传送装置的控制信号示意图; 0027 图2是本发明分级缓冲的D。

15、MA传送装置一实施例的原理框图; 0028 图3是图2中的控制信号示意图; 0029 图4是本发明分级缓冲的DMA传送方法一实施例的时序图。 说 明 书CN 102750244 A 3/6页 5 具体实施方式 0030 本发明的核心是将上传DMA buffer(缓冲)拆分成主缓冲和很小的前置缓冲,主 缓冲用单口memory(存储器),从而得以在保证平衡DDR和外设之间数据传输稳定的同时大 幅度缩减芯片面积。 0031 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。 0。

16、032 参见图1,为现有DMA传送装置的控制信号示意图,其主控端的DDR由于是多线程 处理,总是处于忙状态,对于CPU访问DDR或其它设备访问DDR的请求,并不能及时相应,但 一旦响应则在有限时间内完成请求处理。为了平滑DDR响应的突发性,保证外设数据传输 的均衡性,设置有大的双口DMA buffer,因而芯片面积较大。 0033 该方案中,双口DMA buffe涉及到Read_clk(读时钟)、Read_en(读使能)、Read_ addr(读地址)、Read_data(读数据),以及Write_clk(写时钟)、Write_en(写使能)、 Write_addr(写地址)、Write_da。

17、ta(写数据)等控制信号,它们由缓冲控制器(图未示出) 统一调度,且读信号的频率大于写信号的频率(Freq_rclkFreq_wclk)。 0034 与之不同,本发明将上传DMA buffer拆分成很大的主缓冲和很小的前置缓冲,其 中主缓冲用单口memory,从而可有效缩小芯片面积。 0035 参见图2,表示出本发明分级缓冲的DMA传送装置的一实施例。该用于大数据量传 送的DMA发送和控制装置实施例是这样实现的,其主要包括以下几个部分:匀速的数据发 起/接收外设端200、迸发式数据接收/发送主控端400、DMA单口主缓冲200及主缓冲控 制器100、前置缓冲500及前置缓冲控制器600等部分,。

18、其中: 0036 匀速的数据发起/接收外设端200,源源不断的定向对主控端400发送/请求数 据。由于外设端200是相比主控端400速度较缓慢的匀速发起数据请求,而主控端400由 于是多线程处理而总是处于忙状态,因此对某个外设的请求并不能及时响应,但一旦响应 则在有限时间内完成对外设端200的请求处理。 0037 为此,单口主缓冲300(single port RAM,spram)则用来平滑外设的匀速数据请求 和主控的迸发处理的矛盾。这个单口主缓冲300的spram的访问深度,根据实际中外设和 主控之间矛盾冲突的峰值进行选择。 0038 单口主缓冲300在主缓冲控制器100调度下工作,其控制逻。

19、辑是:在正常运行时, 或者单口主缓冲300的读写控制信号没有被迸发的主控所占用时,外设端200拥有对单口 主缓冲300的直接访问权;当单口主缓冲300中的数据量达到一定设定的阈值时,DMA主缓 冲控制器100启动对主控端400的DMA访问请求。 0039 当主控端400响应外设端的DMA请求时,将完全占据单口主缓冲300的spram的 访问权限。而此时为了防止外部设备发送/请求的数据丢失,启动前置缓冲500用于接纳 外设端200发来的数据请求。 0040 当主控端400完成对外设端200的DMA请求响应时,外设端200恢复对主缓冲300 的spram的访问控制权,但由于外设端200还有部分数据。

20、请求寄存在前置缓冲500内,因此 在外设端200访问spram的间隙处,前置缓冲500的内容将逐步搬移到单口主缓冲200,合 说 明 书CN 102750244 A 4/6页 6 并成一个完整的数据体。 0041 当外设端200数据请求为读请求时,在外设端200发起DMA请求之前,将单口主缓 冲300部分的数据,预先搬移到前置缓冲500内,可以保证主控端400对单口主缓冲300访 问时,由前置缓冲500提供给外设数据。 0042 前置缓冲区500的深度由主控迸发式响应时间、外设请求的数据量的总和与外设 数据访问频率比的峰值决定。而前置缓冲500由于深度很小,无论采用单口RAM还是双口 RAM都。

21、可以。而使用双口RAM可以简化前置缓冲500的控制逻辑,但对面积影响不是很大。 0043 参见图3,为图2所示方案中单口DMA buffe涉及到控制信号,包括Write_bus(写 总线)、CLK(时钟)、Wen(写使能)、Wdata(写数据)、Waddr(写地址)等,它们由主缓冲控 制器100统一调度。同样地,读信号的频率大于写信号的频率(Freq_rclkFreq_wclk)。 0044 图3中涉及两条路径:第一条表示“DDR不访问big DMA buffer”,即外设可以直 接写通到big buffer中;第二条路径的左上角设有一个“非门”,表示“DDR正访问big DMA buffe”。

22、,即外设必须写到前置缓冲上去,此为本发明的关键所在。 0045 在前述基础上,下面对本发明分级缓冲的DMA传送方法进行描述。 0046 参见图4,表示本发明分级缓冲的DMA传送方法的时序,其具体过程为: 0047 外设端匀速地定向发送/接收请求数据(过程1); 0048 当主控端为非忙状态时,主控端迸发式响应外设端的发送/接收请求,响应后在 有限时间内完成(过程6); 0049 当主控端为忙状态时,单口主缓冲在主缓冲控制器的调度下,平滑外设端匀速数 据请求与主控端迸发式处理之间的矛盾冲突,其中: 0050 在正常运行状态时,外设端直接访问单口主缓冲(过程3); 0051 在单口主缓冲中数据量达。

23、到预设阀值时,主缓冲控制器启动对主控端的DMA访问 请求(过程5); 0052 前置缓冲在前置缓冲控制器的调度下,在主控端响应所述外设端的DMA请求时, 启动前置缓冲接纳外设端发来的数据请求(过程7)。 0053 同时,前置缓冲在主控端完成对外设端的DMA请求响应与外设端访问单口主缓冲 的间隙处,将前置缓冲的内容逐步搬移到单口主缓冲区内,合并成一个完整的数据体(过 程8)。 0054 特别地,在单口主缓冲在外设端请求为读请求时,在外设端发起DMA请求之前,将 单口主缓冲中的部分数据预先搬移到前置缓冲内。 0055 该传送方法中,根据外设端匀速数据请求与主控端迸发式处理之间的矛盾冲突峰 值确定单。

24、口主缓冲的访问深度;同时,根据主控端迸发式响应时间、外设端请求数据量总和 与外设端数据访问频率之比的峰值确定前置缓冲的访问深度。 0056 以上实施例通过将上传DMA缓冲buffer拆分成大的主缓冲和很小的前置缓冲,主 缓冲用单口memory,从而得以大幅度缩减芯片面积,并保证平衡DDR和外设之间数据传输 的稳定。 0057 以下为本发明的一具体应用实例,简要描述如下。 0058 应用实例 0059 外设终端是camera(摄像机)摄像头,在录制DV时,基本上基于40M左右的时钟, 说 明 书CN 102750244 A 5/6页 7 持续向DDR中送入采集数据,再由CPU进行视频编码,传输到。

25、SD卡(安全数码卡)中进行 存储,同时LCD屏幕上进行图像预览。 0060 Camera的控制器与DDR控制器工作在同一个频率120M,正好3个周期由camera 控制器送出一个象素点。 0061 由于LCD屏幕是源源不断的获取数据显示,因此LCD的DMA优先级最高,DDR优先 响应LCD的DMA请求。为提高DMA效率,每次每个设备DMA申请都为256个字节。 0062 经过系统的统计评估,camera的DMA控制器需要深度为2048的数据缓冲,才能无 风险地平滑系统繁忙时的突发工作导致无法及时响应camera的DMA请求。否则容易发生 camera数据缓冲的写溢出状态。 0063 由于是连续。

26、地址访问,DDR控制器,每次服务256个字节的数据访问,需要54个周 期,加上控制信号的开销,一共要60个服务周期。即当camera发起DMA请求时,什么开始 得到真正响应时间不确定,但一旦得到服务响应,最多将在60个周期内完成服务,完成之 后DDR就释放对DMA单口主缓冲的读写控制。 0064 而在这60个周期之内,大约有20个象素的数据需要缓冲,考虑DDR控制器时钟和 camera数据采集时钟的频率比可能发生变化,因此保守起见,前置缓冲区的大小为32个象 素。 0065 初始时,camera每3个周期往big buffer里面写一个象素(为简化描述,这里认 为一个象素就是一个字节,只有亮度。

27、一路分量,色度两个分量在此文中描述忽略)。而此时 前置缓冲处于空闲状态。 0066 当big buffer的写地址达到256时,CC(camera controller,摄像机控制器)启 动DMA请求上传数据。由于DDRC(DDR controller,DDR控制器)一直处于忙状态,当CC获 得DMA请求确认时,big buffer的写地址已经到达280。 0067 CC获得DMA请求确认后,big buffer的读写控制权由完全交给DDRC,此时CC将 CC对big buffer的写地址进行锁存,并同时启动前置缓冲区。 0068 在DDRC对CC的DMA请求服务期间,CC继续往地址281,2。

28、82,283的地址上写入数 据,只不过前置缓冲区的此时0地址有个概念上的偏移地址280,即bigbuffer控制权移交 时的状态。 0069 CC一共往前置缓冲写道300地址时,DDRC完成了CC的DMA服务请求将big buffer中的256个字节全部读走,并释放了big buffer的控制权。当CC继续往big buffer 中填入下一个数据时,填充的地址是301,以后依次增加。 0070 由于CC平均3个周期往big buffer填入1个象素点,因此big buffer实际上还 有2/3的时间处于空闲。因此前置缓冲中的20个象素点的内容,可以在CC往311地址上写 入新的数据之前,利用间。

29、隙将这个数据完全搬移到big buffer的280299的地址空间, 完成搬移后,前置缓冲区再次进入空闲状态。 0071 下次CC发起新的DMA请求时,big buffer中的地址256511空间内容为连续 内容,类似的动作周而复始。 0072 以上仅是本发明的优选实施方式,应当指出的是,上述优选实施方式不应视为对 本发明的限制,本发明的保护范围应当以权利要求所限定的范围为准。对于本技术领域的 普通技术人员来说,在不脱离本发明的精神和范围内,还可以做出若干改进和润饰,这些改 说 明 书CN 102750244 A 6/6页 8 进和润饰也应视为本发明的保护范围。 说 明 书CN 102750244 A 1/2页 9 图1 图2 说 明 书 附 图CN 102750244 A 2/2页 10 图3 图4 说 明 书 附 图CN 102750244 A 10 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1