本发明专利技术提供一种突发机制下实现数据读写控制的方法,该方法包括以下步骤:A.读或写FIFO模块根据获取的BURST长度配置读写地址指针;B.读或写FIFO模块根据读地址指针、写地址指针产生数据读空信号,读或写FIFO模块根据读地址指针、写地址指针、BURST长度和读写FIFO深度产生数据写满信号。本发明专利技术同时还提供了一种突发机制下实现数据读写控制的装置,本发明专利技术采用FIFO模式来保证数据传输的实时性的同时,实现了读或写FIFO模块在BURST传输机制下对数据读写的控制。
【技术实现步骤摘要】
本专利技术涉及数据读写控制技术,特别涉及一种突发机制下实现数据读写控制的方法和装置。
技术介绍
在直接内存存取(DMA)控制器中,功能模块,例如,安全数字卡(SD)控制器等,和DMA控制模块,根据读或写先入先出(FIFO)模块产生的读空或写满信号,对该模块进行数据读写操作。图1为基于AMBA总线的DMA控制器的结构示意图,如图1所示,该控制器包括DMA控制模块100、写FIFO或BUFFER模块111、读FIFO或BUFFER模块112和功能模块120。其中,DMA控制模块100与功能模块之间的数据传输有两种传输模式,即FIFO模式和BUFFER模式,用户根据实际需要从中选择一种传输模式。如图1所示,在FIFO模式下,当写FIFO模块111非满时,功能模块120向该模块写入数据,当写FIFO模块111非空时,DMA控制模块100从该模块中读取数据。当读FIFO模块112非满时,DMA控制模块100向该模块中写入输入数据,当读FIFO模块112非空时,功能模块120从该模块中读取数据。在FIFO工作模式下,写FIFO模块111和读FIFO模块112分别产生读空信号和写满信号,来控制DMA控制模块100和功能模块120的数据读写操作,具体操作如下DMA控制模块100以长度为1进行数据读写,即此时的DMA控制模块100处于正常读写机制,当写FIFO模块111中的最后一个数据被读走时,写FIFO模块111产生读空信号,通知DMA控制模块100不能再从写FIFO模块111中读取数据,换言之,只要写FIFO模块111中的数据非空,DMA控制模块100就可以从写FIFO模块111中读出数据。当写入一个数据,使得读FIFO模块112被写满时,读FIFO模块112产生写满信号,通知DMA控制模块100不能再往读FIFO模块112中写入数据,换言之,只要写FIFO模块111中的数据非满,DMA控制模块100就可以往写FIFO模块111写入数据。写FIFO模块111和读FIFO模块112对功能模块120的数据读写操作控制方法,与对DMA控制模块100的数据读写操作控制方法基本相同,不同的是当功能模块120向写FIFO模块111写入一个数据,使得写FIFO模块111变满时,写FIFO模块111产生数据写满信号,通知功能模块120不能再往自身写入数据;当功能模块120从读FIFO模块112读出一个数据使得读FIFO模块112为空时,读FIFO模块112产生读空信号,通知功能模块120不能再从自身读出数据。在BUFFER工作模式下,DMA控制模块100的突发(BURST)长度可配置,当DMA控制模块100一次性写满读BUFFER模块112时,读BUFFER模112产生中断信息通知DMA控制模块100不能再往读BUFFER模块112中写入数据。同样,只有当DMA控制模块100一次性读空写BUFFER模块111时,写BUFFER模块111才能产生中断信息,通知DMA控制模块100不能再从写BUFFER模块111中读出数据。同样,写BUFFER模块111和读BUFFER模块112对功能模块120的数据读写操作控制方法,与对DMA控制模块100的数据读写操作控制方法基本相同,差别在于,当功能模块120一次性写满写BUFFER模块111时,写BUFFER模块111才能产生中断信息,通知功能模块120不能再往写BUFFER模块111中写入数据;当功能模块120一次性读空读BUFFER模块112时,读BUFFER模块112能产生中断信息,通知功能模块120不能再从读BUFFER模块112中读出数据。以上给出的是FIFO模式和BUFFER模式下正常读写机制的方案,实际应用中还存在突发机制下数据的读写控制问题,但FIFO模块不能根据BURST长度,在BURST机制下进行数据的读写控制。下面以BURST长度为2n(n≥1,且n为整数,例如,n=3)为例,介绍现有技术中读或写FIFO模块不能根据该BURST长度,进行突发机制下数据读写控制的原因。以现有的FIFO模式为例,当写FIFO模块111中的数据不足8个时,DMA控制模块100不能完成一次BURST数据读操作,此时写FIFO模块111应当产生读空信号,但在现有FIFO模式下,只有当写FIFO模块111中的最后一个数据被DMA控制模块100读走时,写FIFO模块111才能产生读空信号。同样,对于读FIFO模块112也会存在这样的问题,当读FIFO模块112的剩余数据空间不足8个时,DMA控制模块100不能完成一次BURST数据写操作,此时读FIFO模块112应当产生数据写满信号,但在现有FIFO模式下,只有当写入一个数据使得读FIFO模块112变满时,读FIFO模块112才能产生写满信号。所以,FIFO模块在突发机制下,不能对DMA控制模块100进行数据读写控制。同样,在FIFO工作模式下,当功能模块120处于BURST读写机制,对FIFO模块进行读写操作时,也会存在所述DMA控制模块100所存在的问题,区别在于,当写FIFO模块111的剩余数据空间不足8个时,功能模块120不能完成一次BURST数据写操作,此时写FIFO模块111应当产生写满信号,但在现有FIFO模式下,只有当功能模块120写入一个数据使得写FIFO模块111变满时,写FIFO模块111才能产生写满信号。当读FIFO模块112中的数据不足8个时,功能模块120不能完成一次BURST数据读操作,此时读FIFO模块112应当产生数据读空信号,但在现有FIFO模式下,只有当读FIFO模块112中的最后一个数据被功能模块120读走时,读FIFO模块112才能产生数据读空信号。可以看出,FIFO模块在突发机制下,不能对功能模块120进行数据读写控制。可见,正常机制时,DMA控制模块工作在FIFO模式下,可以与读或写FIFO模块进行实时数据读写操作。由于读或写FIFO模块不能根据BURST长度对数据进行读写操作,并根据读或写FIFO模块产生数据读空和写满信号,因此读或写FIFO模块不能在突发机制下,产生数据读写控制信号来控制DMA控制模块的读写操作。而当DMA控制模块工作在BUFFER模式下时,读或写BUFFER模块可以配置DMA控制模块的BURST长度,但是,DMA控制模块不能进行实时数据读写操作。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种突发机制下实现数据读写控制的方法,使用该方法确保读或写FIFO模块在突发传输机制下能够进行数据读写控制,提高DMA控制模块的传输效率。本专利技术的另一目的在于提供一种突发机制下实现数据读写控制的装置,使用该装置确保读或写FIFO模块在突发传输机制下,能够进行数据读写控制,提高DMA控制模块的传输效率。为了达到上述目的,本专利技术提供了一种突发机制下实现数据读写控制的方法,其特征在于,该方法包括以下步骤A、读或写FIFO模块根据获取的BURST长度配置读写地址指针;B、读或写FIFO模块根据读地址指针、写地址指针产生数据读空信号,读或写FIFO模块根据读地址指针、写地址指针、BURST长度和读写FIFO深度产生数据写满信号。所述步骤A中读或写FIFO模块根据接收到的控制信息,获取BURST长度。本文档来自技高网...
【技术保护点】
一种突发机制下实现数据读写控制的方法,其特征在于,该方法包括以下步骤:A、读或写FIFO模块根据获取的BURST长度配置读写地址指针;B、读或写FIFO模块根据读地址指针、写地址指针产生数据读空信号,读或写FIFO模块根据读 地址指针、写地址指针、BURST长度和读写FIFO深度产生数据写满信号。
【技术特征摘要】
【专利技术属性】
技术研发人员:吕品,
申请(专利权)人:北京中星微电子有限公司,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。