FIFO控制电路及控制方法技术

技术编号:2822896 阅读:217 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种FIFO控制电路和一种FIFO控制方法。本发明专利技术FIFO控制电路中增加根据预读请求计算虚拟读地址的虚拟读地址单元、以及针对预读请求产生虚拟空信号的虚拟空标记产生单元,以保证在FIFO中存储的数据已全部被之前的预读请求预订完时,不会再对该FIFO进行预读操作;或者在FIFO控制电路中增加根据预写请求计算虚拟写地址的虚拟读地址单元、以及针对预写请求产生虚拟满信号的虚拟空标记产生单元,以保证FIFO中剩余的空闲存储空间已被之前的预写请求预订完时,不会再对该FIFO进行预写操作,从而支持请求-应答方式数据传输中的预请求机制。

【技术实现步骤摘要】

本专利技术涉及存储器技术,特别涉及一种先进先出存储器(FIFO)控制 电; 各和一种FIFO的控制方法。
技术介绍
现有直接内存存取(DMA)控制器能够连接在先进可延伸接口 (Advanced extensible Interface, AXI)总线上,作为AXI总线主i殳备 (Master),并基于AXI总线的请求-应答机制对AXI总线上的从设备 (Slaver)例如存储器进行读写操作。如图1所示,现有DMA控制器通常包括实现预设功能的功能模块、 读FIFO模块、写FIFO模块、以及DMA控制模块。其中,功能模块用于执 行上述对从设备的读写操作,并通过读FIFO模块和写FIFO模块与DMA控 制模块并行相连,DMA控制模块则连接在AXI总线上。如果功能模块需要对AXI总线i的从设备进行写操作,则需要先将待 写入从设备的数据写入至写FIFO模块中;然后由DMA控制模块通过AXI 总线向对应的从设备发送AXI总线写请求,在通过AXI总线接收到该从设 备的写有效应答后,DMA控制模块再从写FIFO中读取待写入从设备的数 据并通过AXI总线发送至对应的从设备,实现对从设备的写操作。如果功能模块需要对AXI总线上的从设备进行读操作,则需要先将AXI 总线读请求写入至写FIFO模块中;然后由DMA控制模块通过AXI总线向 对应的从设备发送AXI总线读请求,在通过AXI总线接收到该从设备的读 有效应答后,DMA控制模块还会同时接收到该从设备反馈的数据,并将从 设备反馈的数据写入至读FIFO模块中,然后再由功能模块从读FIFO模块中读取,实现对从设备的读操作。现有写FIFO模块和读FIFO模块的内部结构相同,均包括用作FIFO的 双端口存储器、以及FIFO控制电路,二者的名称不同仅仅是为了区分与功 能模块的不同交互方式。图2为现有读/写FIFO模块的结构示意图。如图2所示,现有如图1所 示的读/写FIFO才莫块中通常包括FIFO和FIFO控制电路。其中,FIFO控制电路包括写地址单元和读地址单元、以及空满标记 产生单元。当写4吏能有效时,写地址单元在写时钟信号的控制下,向FIFO^T出写 控制信号和当前写地址,以保证每次接收到的写数据能够存储于FIFO中对 应当前写地址的存储空间,写地址单元同时还根据每次接收到的写数据长度 计算下一次写入的写地址。当读使能有效时,读地址单元在读时钟信号的控制下,向FIFO输出读 控制信号和当前读地址,以保证能够从FIFO中对应当前读地址的存储空间 内读取数据,读地址单元同时还根据每次读取的读数据长度计算下一次读取 的读地址。上述写时钟信号和读时钟信号可以为DMA控制器中的内部时钟信号。 空满标记产生单元,在当前写地址的冲各雷码与当前读地址的格雷码的差 等于FIFO深度时、即当前写地址格雷码与当前读地址格雷码的最高两位有 效位不同、且其余所有低位均相同时产生满信号,以保证FIFO中不具有空 闲存储空间时不再对FIFO进行写操作;在当前写地址的格雷码与当前读地 址的格雷码相同时产生空信号,以保证FIFO中未存储有数据时不再对FIFO 进行读操作。如果图2所示的结构为图l中的写FIFO模块,则图2所示的写数据为 功能模块写入的待写入从设备的数据,读数据为DMA控制模块读取的待写 入从设备的数据,满信号输出给功能模块、空信号输出给DMA控制模块。如果图2所示的结构为图1中的读FIFO模块,则图2所示的写数据为DMA控制模块写入的从设备反馈的数据、读数据为功能模块读取的从设备 反馈的数据,满信号输出给DMA控制模块、空信号输出给功能模块。基于AXI总线的请求-应答机制,除第一次读/写操作之外,DMA控制 器只有等待从设备反馈读/写有效应答并完成上 一 次读/写操作所涉及的数据 传输后,才能够再次发出AXI总线读/写请求以开始当前读/写操作,使得数 据传输效率不高。因此,AXI总线还支持传输预请求机制,即DMA控制器 中的DMA控制模块可以在上一次读/写操作所涉及的数据传输过程中,针对 当前读/写操作向AXI总线上的从设备发出AXI总线预读/写请求,从而消除 每次读/写操作之间的等待时间。此外,DMA控制模块在向AXI总线上的从设备发出AXI总线预写请求 的同时,还需要向读FIFO模块发出预读请求,以便于写FIFO模块能够获 知将有待写入从设备的数据会被DMA控制模块读取并写入至AXI总线上的 从设备;DMA控制模块在向AXI总线上的从设备发出AXI总线预读请求的 同时,以便于读FIFO模块能够获知将有AXI总线上的从设备反馈的数据会 净皮DAM控制写入。 '然而,如图2所示的现有读/写FIFO模块没有为DMA控制模块的预请 求提供输入端,也无法针对预读/写请求产生相应的空/满信号,因而无法支 持请求-应答方式数据传输中的预请求机制。
技术实现思路
有鉴于此,本专利技术提供了一种FIFO控制电路和一种FIFO的控制方法, 能够支持请求-应答方式数据传输中的预请求机制。 本专利技术提供的一种FIFO控制电路,包括写地址单元,向FIFO输出写控制信号和当前真实写地址,并根据每次 接收到的写数据长度计算下一次写入的真实写地址;读地址单元,向FIFO输出读控制信号和当前真实读地址,并根据每次 读取的读数据长度计算下一次读取的真实读地址;空满标记产生单元,在当前真实写地址与当前真实读地址的才各雷码之差等于FIFO的深度时产生真实满信号;在当前真实读地址与当前真实写地址的格雷码相同时产生真实空信号;该FIFO控制电^各还包^舌虚拟读地址单元,根据接收到预读请求所对应的预读数据长度,更新当 前虚拟读地址并输出至虚拟空标记产生单元;虚拟空标记产生单元,在当前虚拟读地址与当前真实写地址的才各雷码相 同时,产生虚拟空信号。该FIFO控制电^各进一步包4舌虛拟写地址单元,根据接收到预写请求所对应的预写数据长度,更新当 前虛拟写地址并输出至虚拟满标记产生单元;虚拟满标记产生单元,在当前虚拟写地址与当前真实读地址的格雷码之 差等于FIFO的深度时,产生虚拟满信号。该FIFO控制电路与FIFO构成直接内存存取DMA控制器内的写FIFO 模块;写数据来自DMA控制器中的功能模块; 预读请求来自DMA控制器中的DMA控制模块; 读数据和虚拟空信号输出至DMA控制器中的DMA控制模块; 其中,DMA控制才莫块连接在先进可延伸接口 AXI总线上。 本专利技术提供的另一种FIFO控制电路,包括写地址单元,向FIFO输出写控制信号和当前真实写地址,并根据每次 接收到的写数据长度计算下一次写入的真实写地址;读地址单元,向FIFO输出读控制信号和当前真实读地址,并根据每次 读取的读数据长度计算下一次读取的真实读地址;空满标记产生单元,在当前真实写地址与当前真实读地址的格雷码之差 等于FIFO的深度时产生真实满信号;在当前真实读地址与当前真实写地址 的格雷码相同时产生真实空信号;该FIFO控制电路还包括虚拟写地址单元,根据接收到预写请求所对应的预写数据长度,更新当 前虚拟写j也址并*#出至虚拟满标记产生单元;虚拟满标记产生单元,在当前虚拟写地址与当前真实读地址的才各雷码之 差等于FIFO的深度时,产生虚拟满信号。该FIFO控制电路进一步包括虚本文档来自技高网
...

【技术保护点】
一种先进先出存储器FIFO控制电路,包括:    写地址单元,向FIFO输出写控制信号和当前真实写地址,并根据每次接收到的写数据长度计算下一次写入的真实写地址;    读地址单元,向FIFO输出读控制信号和当前真实读地址,并根据每次读取的读数据长度计算下一次读取的真实读地址;    空满标记产生单元,在当前真实写地址与当前真实读地址的格雷码之差等于FIFO的深度时产生真实满信号;在当前真实读地址与当前真实写地址的格雷码相同时产生真实空信号;    其特征在于,该FIFO控制电路还包括:    虚拟读地址单元,根据接收到预读请求所对应的预读数据长度,更新当前虚拟读地址并输出至虚拟空标记产生单元;    虚拟空标记产生单元,在当前虚拟读地址与当前真实写地址的格雷码相同时,产生虚拟空信号。

【技术特征摘要】

【专利技术属性】
技术研发人员:吕品
申请(专利权)人:北京中星微电子有限公司
类型:发明
国别省市:11[中国|北京]

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

1
相关领域技术
  • 暂无相关专利