基于axi总线的sdram控制器写数据快速响应方法

文档序号:6364781阅读:287来源:国知局
专利名称:基于axi总线的sdram控制器写数据快速响应方法
基于AXI总线的SDRAM控制器写数据快速响应方法
技术领域
本发明涉及SOC芯片的设计领域,特别涉及一种基于AXI总线的SDRAM控制器写数据快速响应方法。
背景技术
SDARM控制器是SOC芯片中的重要模块,主要负责SOC系统中动态数据的存储。 AMBA3 AXI总线广泛应用于嵌入SOC芯片中,目前支持AMBA3 AXI总线的SDRAM控制器被广泛应用在SOC系统芯片。提高SDRAM总线的数据处理能力是设计SDRAM控制器一个重要指标。目前的SDRAM控制器的结构,如图I所示,SDRAM包括AXI总线接口、数据缓存区、 读写命令队列寄存器、仲裁器、命令/数据处理单元以及SDRAM协议控制器,其中AXI总线接口主要用来将AXI主设备上的读写命令转换成SDRAM控制器内部命令并提交给仲裁器仲裁,同时将数据写入数据缓存区,仲裁后的命令放到读写命令队列寄存器中等待处理。当命令/数据处理单元同时接收到仲裁后的写命令和要写入的数据后,将要写的数据写到 SDRAM控制器的外部设备;等到数据处理完成后,AXI总线接口向AXI主设备发出传输完成的响应信号,如果是读数据命令,同时返回读数据给AXI主设备。为了提高SDRAM协议控制器的执行效率,目前的SDRAM控制器普遍支持写数据的缓存功能,并且写命令和读数据命令根据SDRAM的特性进行仲裁。但是目前的SDRAM控制器在应用中,要是有多个AXI主设备同时频繁的向SDRAM 控制器进行数据读写,其中多个AXI主设备中的一个主设备的写数据可能一直存放于数据缓存区中得不到及时处理,这样会让SDRAM协议控制器往片外的SDRAM外设写数据的时间变得很长,这样该AXI主设备在数据发出很长一段时间后才能收到响应信号,这样会一直处于等待状态,不做进一步的处理,影响了该AXI主设备的执行效率。例如如图I中,以 AXI主设备0为例,SDRAM控制器在处理AXI主设备0的写数据请求时通常的处理流程是 先开始WR0,然后WR1,最后WR2。WRO =AXI主设备0发出一个写请求,并且把写数据发送给 SDRAM控制器;WR1 :SDRAM控制器将写数据发送到片外的SDRAM外设中;WR2 :当数据成功写到片外SDRAM后,AXI从设备接口向AXI主设备0回复0KAY(同意)响应,表示当前的写数据传输完成。此时,如果有多个AXI主设备同时频繁的向SDRAM控制器进行数据读写,某时间中AXI主设备0的写数据可能一直存放于缓存中得不到及时处理,这样会让WRl的时间变得很长,这样AXI主设备0在数据发出很长一段时间后才能收到响应信号,这样会一直处于等待状态,不做进一步的处理,影响了该AXI主设备的执行效率。现有技术中提供了一种“同步动态存储器的访问控制方法及同步动态存储器控制器”,见公开号为CN101021819,
公开日为2007. 08. 22的中国专利,其中同步动态存储器 SDRAM的访问控制方法,其特征点是,包括SDRAM控制器收到对SDRAM的访问命令后,判断自身缓存的访问命令中是否存在与收到的访问命令同行的操作,如果存在,则将收到的访问命令插入同行的缓存访问命令之后,优先执行同行访问命令;否则,按照正常调度流程将收到的访问命令插入调度队列中。其中同步动态存储器SDRAM控制器,其特征点是,包括: 片内总线协议接口、主控制单元、以及与SDRAM各区——对应的区控制单元,其中,主控制单元,用于将收到的来自片内总线协议接口的访问命令广播给各个区控制单元,并用于接收来自区控制单元的区操作申请,将访问权限优先授予存在同行操作的区所对应的区控制单元;区控制单元,用于将收到的属于本区的的访问命令插入调度队列中,并向主控制单元发送区操作申请,在获得访问权限后对相应的区进行访问。该发明根据SDRAM的特点提出一种仲裁和调度算法,其调度算法中是将SDRAM同行命令进行一起处理和多区处理等;该发明并不能实现SDRAM控制器写数据的快速响应。

发明内容本发明要解决的技术问题,在于提供基于AXI总线的SDRAM控制器写数据快速响应方法。本发明是这样实现的一种基于AXI总线的SDRAM控制器写数据快速响应方法,所述SDRAM控制器包括AXI从设备接口、数据缓存区、读写命令队列寄存器、仲裁器、命令/数据处理单元以及SDRAM协议控制器;所述SDRAM控制器还包括地址过滤模块;所述方法为SDRAM控制器在接收到与AXI总线连接的各AXI主设备发送的写数据命令请求时,SDRAM控制器通过所述AXI从设备接口将各写数据命令转化成SDRAM控制器内部命令并经过所述地址过滤模块提交给所述仲裁器仲裁,仲裁后的各写数据命令放到所述读写命令队列寄存器中等待处理,同时将各AXI主设备要写的数据放到所述数据缓存区中等待处理,此时SDRAM控制器不用等待要写的数据写到SDRAM控制器的外部设备,而是直接向各AXI主设备对应发出写数据完成的响应;当有某一 AXI主设备同时向SDRAM控制器进行读数据操作时,则SDRAM控制器需通过所述的地址过滤模块进行过滤相同地址的写操作,来避免SDRAM控制器读写数据时所述数据缓存区中数据的一致性遭到破坏;所述地址过滤模块进行过滤相同地址的写操作具体为所述地址过滤模块接收到某一 AXI主设备发送的读数据命令后,先将该读数据命令的地址和所述读写队列寄存器中的各写数据命令对应的地址进行比较是否一致,是,则按正常调度流程进行操作;否,则将当前的读数据命令进行锁止,直到所述读写队列寄存器中与该读数据命令的地址关联的所有写数据命令都进行将要写的数据写到SDRAM控制器的外部设备后,再将该读数据命令送到所述仲裁器进行仲裁,仲裁后的读数据命令放到所述读写命令队列寄存器中,当命令/ 数据处理单元接收到仲裁后的读数据命令时,从SDRAM控制器的外部设备读取所要的数据经所述SDRAM协议控制器返回给所述发送读数据命令的AXI主设备。进一步地,所述正常调度流程进行操作即为所述命令/数据处理单元接收各写数据命令以及各写数据命令对应的要写的数据,通过所述SDRAM协议控制器将所述各要写的数据写到SDRAM控制器的外部设备,同时将所述读数据命令送到所述仲裁器进行仲裁,仲裁后的读数据命令放到所述读写命令队列寄存器中,当命令/数据处理单元接收到仲裁后的读数据命令时,从SDRAM控制器的外部设备读取所要的数据经所述SDRAM协议控制器返回给所述发送读数据命令的AXI主设备。本发明的优点在于本发明在现有的SDRAM控制器上进行了改进,加入了地址过滤模块,且其中SDRAM控制器在接收到各AXI主设备发送的写数据命令请求时,SDRAM控
4制器将各写数据命令放到读写命令队列寄存器中等待处理,同时将各AXI主设备要写的数据放到数据缓存区中等待处理,此时SDRAM控制器不用等待要写的数据写到SDRAM控制器的外部设备,而是直接向各AXI主设备对应发出写数据完成的响应;但是这样处理会造成 SDRAM控制器中数据一致性被破坏的问题。为了解决这个问题,在SDRAM控制器上加入地址过滤模块,当某一 AXI主设备同时向SDRAM控制器进行读数据操作时,SDRAM控制器需通过地址过滤模块进行过滤相同地址的写操作,来避免SDRAM控制器读写数据时数据缓存区中数据的一致性遭到破坏;从而提高了 SDRAM控制器写数据的效率,缩短AXI总线写数据的响应时间,提高总线运行效率。

图I是现有技术中SDRAM控制器的结构示意图。图2是本发明SDRAM控制器的工作原理框图。图3是本发明SDRAM控制器的地址过滤模块的结构示意图。
具体实施方式请参阅图2所示,本发明的一种基于AXI总线的SDRAM控制器写数据快速响应方法,所述SDRAM控制器包括AXI从设备接口 I、数据缓存区2、读写命令队列寄存器3、仲裁器
4、命令/数据处理单元5以及SDRAM协议控制器6,还包括地址过滤模7 ;所述方法为=SDRAM控制器在接收到与AXI总线连接的各AXI主设备发送的写数据命令请求时,SDRAM控制器通过所述AXI从设备接口 I将各写数据命令转化成SDRAM控制器内部命令并经过所述地址过滤模块7提交给所述仲裁器4仲裁,仲裁后的各写数据命令放到所述读写命令队列寄存器3中等待处理,同时将各AXI主设备要写的数据放到所述数据缓存区2中等待处理,此时SDRAM控制器不用等待要写的数据写到SDRAM控制器的外部设备8,而是直接向各AXI主设备对应发出写数据完成的响应;这样就会减少各AXI主设备写数据的等待时间;但是这样处理会造成SDRAM控制器中数据一致性被破坏的问题;举个简单的例子,假设有两个AXI主设备,以图2中AXI主设备RO和AXI主设备Rl为例,AXI 主设备RO和AXI主设备Rl有数据交换即进行FM时,会同时访问同一片SDRAM地址,假设 AXI主设备RO写一组数据到SDRAM控制器的数据缓存区2中,完成以后AXI主设备RO通知AXI主设备Rl去相同地址中读取数据;AXI主设备Rl得到通知后立即通过AXI总线的读通道向SDRAM控制器中读数据,这个时候有可能AXI主设备RO的写数据还保存在SDRAM 控制器的数据缓存区2中没有写到SDRAM控制器的外部设备8中,这样就造成AXI主设备 Rl读到的是旧数据(即不是从SDRAM控制器的外部设备8中得到的),从而照成数据的一致性遭到破坏。为了提高AXI总线的写数据的执行效率并且避免SDRAM控制器中的数据一致性遭到破坏,在设计SDRAM控制器时加一个地址过滤模块7进行处理,即当有某一 AXI主设备同时向SDRAM控制器进行读数据操作时(即图2中的RD0),则SDRAM控制器需通过所述的地址过滤模块7进行过滤相同地址的写操作,来避免SDRAM控制器读写数据时所述数据缓存区2中数据的一致性遭到破坏;所述地址过滤模块7进行过滤相同地址的写操作具体为所述地址过滤模块7接收到某一 AXI主设备发送的读数据命令后,先将该读数据命令的地址和所述读写队列寄存器3中的各写数据命令对应的地址进行比较是否一致,是,则按正常调度流程进行操作; 否,则将当前的读数据命令进行锁止,直到所述读写队列寄存器3中与该读数据命令的地址关联的所有写数据命令都进行将要写的数据写到SDRAM控制器的外部设备8后,再将该读数据命令送到所述仲裁器4进行仲裁,仲裁后的读数据命令放到所述读写命令队列寄存器3中,当命令/数据处理单元5接收到仲裁后的读数据命令时,从SDRAM控制器的外部设备8读取所要的数据(即图2中的RDl)经所述SDRAM协议控制器6返回给所述发送读数据命令的AXI主设备(即图2中的RD2)。其中所述正常调度流程进行操作即为所述命令/数据处理单元5接收各写数据命令以及各写数据命令对应的要写的数据,通过所述SDRAM协议控制器6将所述各要写的数据写到SDRAM控制器的外部设备8,同时将所述读数据命令送到所述仲裁器4进行仲裁,仲裁后的读数据命令放到所述读写命令队列寄存器3中,当命令/数据处理单元5接收到仲裁后的读数据命令时,从SDRAM控制器的外部设备8读取所要的数据(即图2中的RDl)经所述SDRAM协议控制器返回给所述发送读数据命令的AXI主设备(即图2中的RD2)。这里值得一提的是如图3所示,所述地址过滤模块7包括至少一地址比较器71 和至少一读控制单元72 ;图3中有N个地址比较器71和N个读控制单元72,所述N为大于等于I的自然数,其一个地址比较器71对应一个读控制单元72 ;所述读写命令队列寄存器 3与所述地址比较器71连接;所述地址比较器71分别接受一 AXI主设备的读数据命令的地址和所述读写命令队列寄存器3中的各写数据命令对应的地址,这样通过比较器71进行判断该读数据命令的地址和所述读写队列寄存器3中的各写数据命令对应的地址是否一致; 其读控制单元72是将AXI主设备的读数据命令进行锁止操作或者是直接送到所述仲裁器 4进行仲裁。以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
权利要求
1.一种基于AXI总线的SDRAM控制器写数据快速响应方法,所述SDRAM控制器包括AXI 从设备接口、数据缓存区、读写命令队列寄存器、仲裁器、命令/数据处理单元以及SDRAM协议控制器;其特征在于所述SDRAM控制器还包括地址过滤模块;所述方法为=SDRAM控制器在接收到与AXI总线连接的各AXI主设备发送的写数据命令请求时,SDRAM控制器通过所述AXI从设备接口将各写数据命令转化成SDRAM控制器内部命令并经过所述地址过滤模块提交给所述仲裁器仲裁,仲裁后的各写数据命令放到所述读写命令队列寄存器中等待处理,同时将各AXI主设备要写的数据放到所述数据缓存区中等待处理,此时SDRAM控制器不用等待要写的数据写到SDRAM控制器的外部设备,而是直接向各AXI主设备对应发出写数据完成的响应;当有某一 AXI主设备同时向SDRAM控制器进行读数据操作时,则SDRAM控制器需通过所述的地址过滤模块进行过滤相同地址的写操作,来避免SDRAM控制器读写数据时所述数据缓存区中数据的一致性遭到破坏;所述地址过滤模块进行过滤相同地址的写操作具体为所述地址过滤模块接收到某一 AXI主设备发送的读数据命令后,先将该读数据命令的地址和所述读写队列寄存器中的各写数据命令对应的地址进行比较是否一致,是,则按正常调度流程进行操作;否,则将当前的读数据命令进行锁止,直到所述读写队列寄存器中与该读数据命令的地址关联的所有写数据命令都进行将要写的数据写到SDRAM控制器的外部设备后,再将该读数据命令送到所述仲裁器进行仲裁,仲裁后的读数据命令放到所述读写命令队列寄存器中,当命令/数据处理单元接收到仲裁后的读数据命令时,从SDRAM控制器的外部设备读取所要的数据经所述SDRAM协议控制器返回给所述发送读数据命令的AXI主设备。
2.根据权利要求I所述的基于AXI总线的SDRAM控制器写数据快速响应方法,其特征在于所述正常调度流程进行操作即为所述命令/数据处理单元接收各写数据命令以及各写数据命令对应的要写的数据,通过所述SDRAM协议控制器将所述各要写的数据写到 SDRAM控制器的外部设备,同时将所述读数据命令送到所述仲裁器进行仲裁,仲裁后的读数据命令放到所述读写命令队列寄存器中,当命令/数据处理单元接收到仲裁后的读数据命令时,从SDRAM控制器的外部设备读取所要的数据经所述SDRAM协议控制器返回给所述发送读数据命令的AXI主设备。
全文摘要
本发明提供了一种基于AXI总线的SDRAM控制器写数据快速响应方法,其中SDRAM控制器在接收到各AXI主设备发送的写数据命令请求时,SDRAM控制器将各写数据命令放到读写命令队列寄存器中等待处理,同时将各AXI主设备要写的数据放到数据缓存区中等待处理,此时SDRAM控制器不用等待要写的数据写到SDRAM控制器的外部设备,而是直接向各AXI主设备对应发出写数据完成的响应;当有某一AXI主设备同时向SDRAM控制器进行读数据操作时,SDRAM控制器需通过地址过滤模块进行过滤相同地址的写操作,来避免SDRAM控制器读写数据时数据缓存区中数据的一致性遭到破坏;从而提高了SDRAM控制器写数据的效率。
文档编号G06F13/18GK102609380SQ201210032849
公开日2012年7月25日 申请日期2012年2月14日 优先权日2012年2月14日
发明者苏培源 申请人:福州瑞芯微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1