先进先出缓冲单元及先进先出缓冲方法技术

技术编号:2838000 阅读:131 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种先进先出缓冲单元,包括第一子暂存单元。第一子暂存单元包括:第一层暂存器,由输入端接收第一输入数据;第二层暂存器,接收来自上述第一层暂存器的数据;以及第三层暂存器,选择接收来自上述输入端的上述第一输入数据、来自上述第一层暂存器的数据或上述第二层暂存器的数据以输出第一输出数据。本发明专利技术先进先出暂存单元的子暂存单元接收的数据被直接存入第一层暂存器或第三层暂存器,因此先进先出暂存单元的输入多工器并不需要强大的驱动器,进而使得本发明专利技术先进先出暂存单元具有相对较小的面积和较高的数据传输速度。

【技术实现步骤摘要】

本专利技术是有关于一种先进先出缓冲单元,特别是有关于一种高速的先进先出缓冲单元(First In First Out,FIFO)。
技术介绍
图1所示为一现有技术中具有四输入四输出的先进先出缓冲单元(FirstIn First Out,FIFO)。四输入四输出的先进先出缓冲单元100可应用于中央处理器(Central Processing Unit,CPU)和北桥(North Bridge)之间进行传输数据。四输入四输出先进先出缓冲单元100具有四路多工器(Mux)111、112、113、114、141、142、143和144,先进先出暂存器121、122、123和124以及十六路多工器131、132、133和134,其中先进先出暂存器121、122、123和124均为可储存16组32位数据的暂存器。输入数据Data0、Data1、Data2和Data3通过四路多工器111、112、113和114存入先进先出暂存器121、122、123和124的对应位置。十六路多工器131、132、133和134接收来自先进先出暂存器121、122、123和124的暂存数据并输出至四路多工器141、142、143和144。从图1可以看出,由于四路多工器111、112、113和114必须驱动具有储存16组32位的先进先出暂存器121、122、123和124的驱动能力,因此四路多工器111、112、113和114需要较大驱动器,从而增加四路多工器111、112、113和114电路复杂度和传输门的数目,并且由于传输门的数目较多,数据传输也比较慢。
技术实现思路
本专利技术的目的在于提供一种高速的先进先出缓冲单元及其相关的先进先出暂存方法。本专利技术提供一种先进先出缓冲单元,包括第一子暂存单元。第一子暂存单元包括第一层暂存器,由输入端接收第一输入数据;第二层暂存器,接收来自上述第一层暂存器的数据;以及第三层暂存器,选择接收来自上述输入端的上述第一输入数据、来自上述第一层暂存器的数据或上述第二层暂存器的数据以输出第一输出数据。本专利技术又提供一种先进先出暂存方法,包括判断第一子暂存单元的第一层暂存器、第二层暂存器和第三层暂存器的数据储存状态;当上述第一层暂存器、上述第二层暂存器和上述第三层暂存器是空暂存器时,储存第一输入数据至上述第三层暂存器;以及当上述第三暂存器储满数据且上述第一层暂存器是空暂存器时,储存上述第一输入数据至上述第一层暂存器。本专利技术先进先出暂存单元的子暂存单元接收的数据被直接存入第一层暂存器或第三层暂存器,因此先进先出暂存单元的输入多工器并不需要强大的驱动器,从而可以减少输入多工器的复杂度和传输门的数目。由于传输门的数目较少,本专利技术先进先出暂存单元具有相对较小的面积和较高的数据传输速度。附图说明通过下面结合示例性地示出一例的附图进行的描述,本专利技术的上述和其他目的和特点将会变得更加清楚,其中图1为现有技术的四输入四输出的先进先出缓冲单元的示意图;图2为根据本专利技术一实施例的先进先出缓冲单元的示意图;图3为图2所示一子暂存单元的示意图;图4为根据本专利技术一实施例的先进先出暂存方法的流程图;图5为根据本专利技术另一实施例的先进先出暂存方法的流程图;以及图6为根据本专利技术另一实施例的先进先出暂存方法的流程图。具体实施例方式为让本专利技术的上述和其它目的、特征、和优点能更明显易懂,下文特举出较佳实施例,并配合所附图式,作详细说明如下如图2所示,本专利技术一实施例的先进先出缓冲单元(First In First Out,FIFO)200包括控制单元210、输入多工器(Mux)261、262、263、264、输出多工器271、272、273、274、以及子暂存单元220、230、240和250。各子暂存单元220、230、240和250分别包括第一层暂存器221、231、241和251、第二层暂存器222、232、242和252和第三层暂存器223、233、243和253。第一、第二及第三层暂存器也可分别称作L1暂存器L2暂存器以及L3暂存器。另外,输入多工器(Mux)261、262、263和264的输出端分别耦接于第一层暂存器221231、241和251的输入端。在本专利技术一实施例中,Data0、Data1、Data2和Data3各代表一个32位的数据,即双字(Double Word,DW)。在本专利技术一实施例中,第一层暂存器221、231、241、251的大小等于子暂存单元220、230、240、250在一个传输周期(cycle)接收的输入数据的宽度,即1DW。第三层暂存器223、233、243、253的大小等于子暂存单元220、230、240、250在一个传输周期输出数据的宽度,亦为1DW。第二层暂存器222、232、242和252的大小为14DW。如本领域技术人员所知,控制单元210可根据暂存值Psh、Pop和PopLen产生控制信号2100以控制子暂存单元220、230、240和250、输入控制信号2102及输出控制信号2104。根据本专利技术一实施例,当暂存值Psh为4’b0000时,控制单元210通过输入控制信号2102使输入多工器261、262、263和264不传送任何数据,当暂存值Psh为4’b0001时,控制单元210使输入多工器261、262、263和264传送数据Data0;当暂存值Psh为4’b0011时,控制单元210使输入多工器261、262、263和264传送数据Data0和Data1;当暂存值Psh为4’b0111时,控制单元210使输入多工器261、262、263和264传送数据Data0、Data1和Data2;当暂存值Psh为4’b1111时,控制单元210使输入多工器261、262、263和264传送数据Data0、Data1、Data2和Data3。子暂存单元220、230、240和250则会根据暂存值Psh将数据储存于第一层暂存器221、231、241和251或第三层暂存器223、233、243和253。第三层暂存器223、233、243和253会根据暂存值Pop和暂存值PopLen输出数据。根据本专利技术一实施例,当暂存值Pop为1以及暂存值PopLen为2’b00时,控制单元210通过输出控制信号2104使输出多工器271输出数据DataOut〔31:0〕,当暂存值Pop为1以及暂存值PopLen为2’b01时,输出多工器271和272会分别输出数据DataOut〔31:0〕和DataOut〔63:32〕,当暂存值Pop为1以及暂存值PopLen为2’b10时,输出多工器271、272和273会分别输出数据DataOut〔31:0〕、DataOut〔63:32〕和DataOut〔95:64〕,当暂存值Pop为1以及暂存值PopLen为2’b11时,输出多工器271、272、273和274会分别输出数据DataOut〔31:0〕、DataOut〔63:32〕和、DataOut〔95:64〕、DataOut〔127:96〕。因此本专利技术一实施例中的先进先出缓冲单元200最少输出一双字数据,最多可以一次输出4双字数据。在本专利技术一实施例中,子暂存单元220~250具有相同的细部结构图,因而仅以子暂存单元220为例说明本文档来自技高网...

【技术保护点】
一种先进先出缓冲单元,包括:第一子暂存单元,包括:第一层暂存器,由输入端接收第一输入数据;第二层暂存器,接收来自上述第一层暂存器的数据;以及第三层暂存器,选择接收来自上述输入端的第一输入数据、来自上述第一层暂存器的数据或上述第二层暂存器的数据以输出第一输出数据。

【技术特征摘要】
1.一种先进先出缓冲单元,包括第一子暂存单元,包括第一层暂存器,由输入端接收第一输入数据;第二层暂存器,接收来自上述第一层暂存器的数据;以及第三层暂存器,选择接收来自上述输入端的第一输入数据、来自上述第一层暂存器的数据或上述第二层暂存器的数据以输出第一输出数据。2.如权利要求1所述的先进先出缓冲单元,其特征在于当上述第一层暂存器、上述第二层暂存器和上述第三层暂存器是空暂存器时,上述第一输入数据存入上述第三层暂存器。3.如权利要求1所述的先进先出缓冲单元,其特征在于当上述第一层暂存器是空暂存器而上述第三暂存器储满数据时,上述第一输入数据存入上述第一层暂存器。4.如权利要求1所述的先进先出缓冲单元,其特征在于当上述第二层暂存器还具有储存空间以及上述第一层暂存器和上述第三暂存器皆存满数据时,上述第一层暂存器输出的数据存入上述第二层暂存器。5.如权利要求1所述的先进先出缓冲单元,其特征在于当上述第三层暂存器输出上述第一输出数据,上述第一层暂存器存满数据且上述第二暂存器不为空暂存器时,上述第三层暂存器接收上述第二层暂存器输出的数据,上述第二层暂存器接收上述第一层暂存器输出的数据。6.如权利要求1所述的先进先出缓冲单元,其特征在于当上述第三层暂存器输出上述第一输出数据,上述第一层暂存器为空暂存器而上述第二暂存器不为空暂存器时,上述第三层暂存器接收上述第二层暂存器输出的数据。7.如权利要求1所述的先进先出缓冲单元,其特征在于当上述第三层暂存器输出上述第一输出数据,上述第一层暂存器储满数据而上述第二暂存器为空暂存器时,上述第一层暂存器输出的数据直接传输至上述第三层暂存器。8.如权利要求1所述的先进先出缓冲单元,其特征在于上述第一子暂存单元还包括控制逻辑单元,根据控制信号判断上述第一层暂存器、第二层暂存器和第三层暂存器的数据存储状态,上述控制逻辑单元依据上述控制信号产生第一存储...

【专利技术属性】
技术研发人员:张广宇
申请(专利权)人:威盛电子股份有限公司
类型:发明
国别省市:71[中国|台湾]

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

1