專利名稱:一種先進(jìn)先出處理芯片及其數(shù)據(jù)更新方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)更新技術(shù),特別涉及一種可以實(shí)現(xiàn)數(shù)據(jù)更新的先進(jìn)先出(FIFO)處理芯片及其數(shù)據(jù)更新方法。
背景技術(shù):
由于和普通緩存芯片相比,F(xiàn)IFO處理芯片不需要大量的指針維護(hù)工作和復(fù)雜的譯碼電路,因而,數(shù)據(jù)存儲(chǔ)轉(zhuǎn)發(fā)設(shè)備,如路由器和以太網(wǎng)交換機(jī),大量采用的是FIFO處理芯片設(shè)計(jì)。但是采用這種緩存機(jī)制,目前在數(shù)據(jù)的更新技術(shù)上還存在一些問(wèn)題。由于數(shù)據(jù)更新技術(shù)僅與FIFO處理芯片中寫操作相關(guān)部分有關(guān),所以下面僅對(duì)與寫操作有關(guān)的部分加以描述。圖1是普通FIFO處理芯片組成結(jié)構(gòu)示意圖。如圖1所示,F(xiàn)IFO處理芯片100中與寫操作相關(guān)的部分主要有緩存模塊101、寫指針控制模塊102、空滿信號(hào)生成模塊103、寫信號(hào)生成模塊104和寫入數(shù)據(jù)線105。其中,寫入數(shù)據(jù)線105用于接收并輸出外部設(shè)備發(fā)送的寫入數(shù)據(jù);緩存模塊101接收寫指針控制模塊102生成的寫指針即寫入地址、寫入數(shù)據(jù)和寫信號(hào)生成模塊104發(fā)來(lái)的寫信號(hào),用于按寫指針標(biāo)識(shí)的地址存儲(chǔ)寫入數(shù)據(jù);寫指針控制模塊102接收寫信號(hào),用于生成并輸出寫指針;空滿信號(hào)生成模塊103接收寫信號(hào),用于產(chǎn)生滿信號(hào),并將其輸出至寫信號(hào)生成模塊104和FIFO處理芯片100外部;寫信號(hào)生成模塊104接收外部設(shè)備發(fā)來(lái)的外部寫信號(hào)和滿信號(hào),用于產(chǎn)生并輸出寫信號(hào)。其中,寫指針控制模塊102生成寫指針的操作,至少包括如下步驟當(dāng)寫信號(hào)有效時(shí),緩存模塊101每寫入一次數(shù)據(jù)后,寫指針控制模塊102將寫指針加一再輸出寫指針。此普通FIFO處理芯片不具備數(shù)據(jù)更新的功能。當(dāng)FIFO處理芯片需要對(duì)其緩存模塊的某一存儲(chǔ)單元進(jìn)行數(shù)據(jù)更新時(shí),現(xiàn)有技術(shù)的解決方案如下所述。
圖2是現(xiàn)有技術(shù)中可以實(shí)現(xiàn)數(shù)據(jù)更新的FIFO處理芯片組成結(jié)構(gòu)示意圖。如圖2所示,F(xiàn)IFO處理芯片200是由圖1所示的FIFO處理芯片100進(jìn)行如下改動(dòng)形成的。將圖1所示的寫指針控制模塊102取消,在FIFO處理芯片100外部設(shè)置一個(gè)接口模塊201。因此,F(xiàn)IFO處理芯片200中與寫操作相關(guān)的部分主要有圖1所示的緩存模塊101、接口模塊201、空滿信號(hào)生成模塊202、圖1所示的寫信號(hào)生成模塊104和寫入數(shù)據(jù)線105。其中,寫入數(shù)據(jù)線105用于接收并輸出外部設(shè)備發(fā)送的寫入數(shù)據(jù);緩存模塊101接收接口模塊201輸出的寫指針即寫入地址、寫入數(shù)據(jù)和寫信號(hào)生成模塊104發(fā)送的寫信號(hào),用于按寫指針標(biāo)識(shí)的地址存儲(chǔ)寫入數(shù)據(jù);接口模塊201用于寄存并生成寫指針再輸出寫指針;空滿信號(hào)生成模塊202接收寫信號(hào)和寫指針,用于產(chǎn)生滿信號(hào)并輸出至寫信號(hào)生成模塊104和FIFO處理芯片200外部;寫信號(hào)生成模塊104接收外部設(shè)備發(fā)來(lái)的外部寫信號(hào)和滿信號(hào),用于產(chǎn)生并輸出寫信號(hào)。圖2所示FIFO處理芯片200的數(shù)據(jù)更新工作原理如圖3所示。
圖3是圖2所述FIFO處理芯片完成數(shù)據(jù)更新的過(guò)程示意圖,圖3中,箭頭指向的是圖2中接口模塊201輸出的寫指針?biāo)鶚?biāo)識(shí)的地址。緩存模塊101將按寫指針?biāo)鶚?biāo)識(shí)的地址寫入數(shù)據(jù)。如圖3所示,圖中1到10表示的是圖2中緩存模塊101的十個(gè)存儲(chǔ)單元,每一次寫操作將對(duì)其中一個(gè)存儲(chǔ)單元寫入數(shù)據(jù)。在步驟301,系統(tǒng)要求寫入正常數(shù)據(jù),則寫指針標(biāo)識(shí)的地址為存儲(chǔ)單元1的地址,緩存模塊101按存儲(chǔ)單元1的地址寫入正常數(shù)據(jù)。在步驟302,系統(tǒng)仍然要求寫入正常數(shù)據(jù),則寫指針依次從右到左標(biāo)識(shí)的是存儲(chǔ)單元2~4的地址,緩存模塊101依次從右到左按存儲(chǔ)單元2~4的地址寫入正常數(shù)據(jù);每寫入一次正常數(shù)據(jù)后,圖2所述的接口模塊201將當(dāng)前寫指針加一再輸出寫指針。在步驟303,系統(tǒng)要求寫入待更新數(shù)據(jù)寫指針標(biāo)識(shí)的地址為存儲(chǔ)單元5的地址,緩存模塊101按存儲(chǔ)單元5的地址寫入待更新數(shù)據(jù)后,圖2中的接口模塊201寄存當(dāng)前寫指針作為待更新地址,接口模塊201再將當(dāng)前寫指針加一再輸出寫指針。在步驟304,系統(tǒng)要求寫入正常數(shù)據(jù),則寫指針依次從右到左標(biāo)識(shí)的是存儲(chǔ)單元6~9的地址,緩存模塊101繼續(xù)從右到左依次按存儲(chǔ)單元6~9的地址寫入正常數(shù)據(jù);同樣緩存模塊101每寫入一次數(shù)據(jù)后,圖2中的接口模塊201將寫指針加一再輸出寫指針。在步驟305,系統(tǒng)要求寫入更新數(shù)據(jù),此時(shí),寫指針標(biāo)識(shí)的寫入地址為存儲(chǔ)單元10的地址,但緩存模塊101不對(duì)存儲(chǔ)單元10進(jìn)行寫操作,圖2中的接口模塊201將寄存當(dāng)前寫指針作為當(dāng)前寫入地址。然后,在步驟306,圖2中的接口模塊201將寫指針賦為上述已寄存的待更新地址再輸出寫指針,即寫指針?biāo)鶚?biāo)識(shí)的地址變?yōu)榇鎯?chǔ)單元5的地址;緩存模塊101按存儲(chǔ)單元5的地址寫入更新數(shù)據(jù)。最后,在步驟307,圖2中的接口模塊201再將寫指針賦為上述已寄存的當(dāng)前寫入地址,即寫指針?biāo)鶚?biāo)識(shí)的地址又變回為存儲(chǔ)單元10的地址,更新操作結(jié)束。
由上述方案可見(jiàn),現(xiàn)有的技術(shù)方案會(huì)出現(xiàn)如下問(wèn)題1.FIFO處理芯片的數(shù)據(jù)更新的過(guò)程必須通過(guò)寫指針?biāo)鶚?biāo)識(shí)的地址的來(lái)回變化,即寫指針的跳轉(zhuǎn)來(lái)實(shí)現(xiàn),造成系統(tǒng)的穩(wěn)定性較差。
2.現(xiàn)有技術(shù)將FIFO處理芯片打開(kāi),在FIFO處理芯片外部設(shè)置一個(gè)接口模塊,由接口模塊直接對(duì)寫指針進(jìn)行操作,寄存并生成寫入地址。因此造成FIFO處理芯片缺乏獨(dú)立性,必須依靠外部操作來(lái)實(shí)現(xiàn)內(nèi)部的更新。
3.現(xiàn)有技術(shù)接口部分增加的接口模塊要直接對(duì)寫指針的地址線進(jìn)行賦值和計(jì)算的操作,而地址線一般來(lái)講都是多于八位。因此,接口模塊功能的實(shí)現(xiàn)就變得異常復(fù)雜,使FIFO處理芯片的接口復(fù)雜度大大提高。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種FIFO處理芯片,使FIFO處理芯片在進(jìn)行數(shù)據(jù)更新時(shí),能夠保證其獨(dú)立性,減小接口復(fù)雜度,并避免寫指針的跳轉(zhuǎn)。
本發(fā)明的另一目的在于提供一種FIFO處理芯片實(shí)現(xiàn)數(shù)據(jù)更新方法,使FIFO處理芯片在進(jìn)行數(shù)據(jù)更新時(shí),能夠利用其內(nèi)部模塊獨(dú)立完成數(shù)據(jù)更新,避免寫指針的來(lái)回賦值,并簡(jiǎn)化接口部分。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的本發(fā)明公開(kāi)了一種FIFO處理芯片,包括緩存模塊,用于接收寫入地址和寫入數(shù)據(jù),按寫入地址存儲(chǔ)寫入數(shù)據(jù);寫入數(shù)據(jù)線,用于從外部設(shè)備接收并輸出寫入數(shù)據(jù)。
該芯片還包括操作控制線,用于從外部設(shè)備接收并輸出控制信號(hào);寫指針控制模塊,用于接收控制信號(hào),生成并輸出寫指針;更新控制模塊,用于接收控制信號(hào),寄存標(biāo)識(shí)待更新地址的寫指針,生成并輸出更新指針;寫入地址選擇器(MUX),用于接收控制信號(hào)、寫指針和更新指針,選擇寫指針或更新指針作為寫入地址輸出。
該芯片進(jìn)一步包括在操作控制線與寫指針控制模塊之間進(jìn)一步連接有譯碼器;在操作控制線與更新控制模塊之間進(jìn)一步連接譯碼器;在操作控制線與MUX之間進(jìn)一步連接有譯碼器。
本發(fā)明還公開(kāi)了一種FIFO處理芯片的數(shù)據(jù)更新方法,在FIFO處理芯片內(nèi)部設(shè)置更新控制模塊,其主要處理步驟如下a.根據(jù)從外部設(shè)備接收的控制信號(hào)判斷當(dāng)前寫入數(shù)據(jù)是否為待更新數(shù)據(jù),如果是,更新控制模塊寄存當(dāng)前寫指針,并將寫指針作為寫入地址寫入待更新數(shù)據(jù),返回步驟a;否則,轉(zhuǎn)入步驟b;b.根據(jù)控制信號(hào)判斷當(dāng)前寫入數(shù)據(jù)是否為更新數(shù)據(jù),如果是,將更新控制模塊所寄存的寫指針作為寫入地址寫入更新數(shù)據(jù),更新結(jié)束;否則,返回步驟a。
其中,步驟a與步驟b之間,進(jìn)一步包括,根據(jù)控制信號(hào)判斷當(dāng)前寫入數(shù)據(jù)是否為正常數(shù)據(jù),如果是,將寫指針作為寫入地址寫入正常數(shù)據(jù),返回步驟a;否則,轉(zhuǎn)入步驟b。
由上述方案可以看出,本發(fā)明所提供的一種FIFO處理芯片及其數(shù)據(jù)更新方法,其所帶來(lái)的有益效果包括以下幾個(gè)方面1.本發(fā)明在FIFO處理芯片內(nèi)部設(shè)置了專門的更新控制模塊來(lái)輸出更新指針。當(dāng)寫入待更新數(shù)據(jù)時(shí),選擇寫指針作為寫入地址來(lái)寫入待更新數(shù)據(jù),同時(shí)更新控制模塊寄存當(dāng)前寫指針,并將更新指針賦為當(dāng)前寫指針;當(dāng)需要寫入更新數(shù)據(jù)時(shí),將更新指針作為寫入地址寫入更新數(shù)據(jù)。從而,避免了寫指針的跳轉(zhuǎn),提高了系統(tǒng)的穩(wěn)定性。
2.本發(fā)明設(shè)置了從外部設(shè)備引入FIFO處理芯片的操作控制線,通過(guò)該操作控制線上控制信號(hào)標(biāo)識(shí)的輸入數(shù)據(jù)性質(zhì)來(lái)控制FIFO處理芯片內(nèi)部的更新操作,可避免現(xiàn)有技術(shù)中FIFO處理芯片的開(kāi)放和接口模塊直接按地址寫入數(shù)據(jù)進(jìn)行更新操作,從而保證了FIFO處理芯片的獨(dú)立性。
3.FIFO處理芯片的接口部分只是增加一條操作控制線來(lái)傳輸控制信號(hào),遠(yuǎn)比現(xiàn)有技術(shù)中的接口模塊對(duì)多位的寫指針地址線直接進(jìn)行賦值和計(jì)算的操作簡(jiǎn)單,使FIFO處理芯片在數(shù)據(jù)更新時(shí),接口復(fù)雜度大大降低。
圖1為普通FIFO處理芯片組成結(jié)構(gòu)示意圖;圖2為現(xiàn)有技術(shù)中可以實(shí)現(xiàn)數(shù)據(jù)更新的FIFO處理芯片組成結(jié)構(gòu)示意圖;圖3為圖2所述FIFO處理芯片完成數(shù)據(jù)更新的過(guò)程示意圖;圖4為本發(fā)明可實(shí)現(xiàn)數(shù)據(jù)更新的FIFO處理芯片一較佳實(shí)施例組成結(jié)構(gòu)示意圖;圖5為圖4所述FIFO處理芯片完成數(shù)據(jù)更新的過(guò)程圖;圖6為圖4所述FIFO處理芯片的數(shù)據(jù)更新方法流程圖
具體實(shí)施例方式
下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明再作進(jìn)一步詳細(xì)的說(shuō)明。
本發(fā)明的主要設(shè)計(jì)思想為在FIFO處理芯片內(nèi)部加入一個(gè)更新控制模塊和一個(gè)寫入地址選擇器(MUX);同時(shí)從外部引入了一條操作控制線輸出控制信號(hào)來(lái)標(biāo)識(shí)寫入數(shù)據(jù)的性質(zhì)。當(dāng)FIFO處理芯片的某個(gè)存儲(chǔ)區(qū)域需要更新時(shí),更新控制模塊將當(dāng)前寫指針作為更新指針進(jìn)行寄存,即寄存更新指針?biāo)鶚?biāo)識(shí)的地址為待更新地址,MUX選擇寫指針作為寫入地址寫入數(shù)據(jù);當(dāng)需要寫入更新數(shù)據(jù)時(shí),MUX選擇更新指針作為寫入地址在所寄存的待更新地址進(jìn)行數(shù)據(jù)更新。
圖4本發(fā)明可實(shí)現(xiàn)數(shù)據(jù)更新的FIFO處理芯片一較佳實(shí)施例組成結(jié)構(gòu)示意圖。由于本發(fā)明涉及數(shù)據(jù)更新技術(shù),僅對(duì)FIFO處理芯片中與寫操作有關(guān)部分加以改動(dòng),其它與讀操作有關(guān)的部分沒(méi)有變化。因此圖4僅顯示了FIFO處理芯片與寫操作有關(guān)部分的結(jié)構(gòu)關(guān)系,以下也僅對(duì)于寫操作有關(guān)的部分加以描述。如圖4所示該FIFO處理芯片中與寫操作相關(guān)的部分主要有操作控制線401,寫指針控制模塊402、更新控制模塊403、MUX404、緩存模塊405、寫入數(shù)據(jù)線406、寫信號(hào)生成模塊407、空滿信號(hào)生成模塊408、譯碼器a、譯碼器b、譯碼器c和譯碼器d。
其中,操作控制線401從外部設(shè)備引入FIFO處理芯片400,用于向FIFO處理芯片400內(nèi)部輸出控制信號(hào)來(lái)標(biāo)識(shí)寫入數(shù)據(jù)的性質(zhì)。譯碼器a、譯碼器b、譯碼器c和譯碼器d接收操作控制線401輸出的控制信號(hào),并根據(jù)它們所控制的不同功能各自進(jìn)行譯碼,輸出不同的控制信號(hào)。寫指針控制模塊402接收譯碼器b輸出的控制信號(hào)和寫信號(hào)生成模塊407生成的寫信號(hào),用于生成并輸出寫指針。更新控制模塊403接收譯碼器a輸出的控制信號(hào)、寫信號(hào)和寫指針,用于將當(dāng)前寫指針作為更新指針進(jìn)行寄存,并將更新指針輸出。MUX404接收譯碼器c輸出的控制信號(hào)、寫指針和更新指針,用于選擇寫指針或更新指針作為寫入地址并輸出寫入地址。寫入數(shù)據(jù)線406用于從外部設(shè)備接收并輸出寫入數(shù)據(jù)。緩存模塊405接收寫信號(hào)、寫入數(shù)據(jù)和寫入地址,用于按寫入地址存儲(chǔ)寫入數(shù)據(jù)??諠M信號(hào)生成模塊408接收譯碼器d輸出的控制信號(hào)和寫信號(hào),生成滿信號(hào)并輸出至FIFO處理芯片400外部和寫信號(hào)生成模塊407。寫信號(hào)生成模塊407,接收滿信號(hào)和外部設(shè)備發(fā)送的外部寫信號(hào),用于生成并輸出寫信號(hào)。這里,外部設(shè)備為與FIFO處理芯片400進(jìn)行通信、傳輸數(shù)據(jù)和控制其操作的設(shè)備。
這里,操作控制線401輸出的控制信號(hào)為兩位,其取值及其意義為00表示寫入正常數(shù)據(jù);01表示寫入待更新數(shù)據(jù);10表示寫入更新數(shù)據(jù);11表示無(wú)效。當(dāng)控制信號(hào)為01,譯碼器a輸出有效控制信號(hào),其它條件下,譯碼器a則輸出無(wú)效控制信號(hào)。如果譯碼器a輸出有效控制信號(hào),并且寫信號(hào)有效,更新控制模塊403將當(dāng)前寫指針作為更新指針進(jìn)行寄存;否則更新指針保持不變。當(dāng)兩位控制信號(hào)為00或01,譯碼器b輸出有效控制信號(hào),其它條件下,譯碼器b則輸出無(wú)效控制信號(hào)。如果譯碼器b輸出有效控制信號(hào),并且寫信號(hào)有效,寫指針控制模塊402將寫指針加一;否則寫指針不變。當(dāng)兩位控制信號(hào)為10時(shí),譯碼器c輸出有效控制信號(hào),其它條件下,譯碼器c則輸出無(wú)效控制信號(hào)。如果譯碼器c輸出有效控制信號(hào),MUX404選擇更新指針作為寫入地址;否則選擇寫指針作為寫入地址。
下面結(jié)合圖4和圖5對(duì)該芯片完成數(shù)據(jù)更新的工作原理加以說(shuō)明。由于圖4中寫信號(hào)生成模塊407、空滿信號(hào)生成模塊408和譯碼器d的工作原理不屬本發(fā)明重點(diǎn),所以不再詳述。圖5為圖4所述FIFO處理芯片完成數(shù)據(jù)更新的過(guò)程示意圖。寫指針箭頭和更新指針箭頭分別指向的是寫指針?biāo)鶚?biāo)識(shí)的地址和更新指針?biāo)鶚?biāo)識(shí)的地址。如圖5所示,圖中1到10表示的是圖4中緩存模塊405的十個(gè)存儲(chǔ)單元。每一次寫操作將對(duì)其中一個(gè)存儲(chǔ)單元寫入數(shù)據(jù)。因?yàn)橐韵虏襟E描述為一個(gè)完整的數(shù)據(jù)更新過(guò)程,與寫信號(hào)是否有效無(wú)關(guān),因此設(shè)定寫信號(hào)均有效。具體數(shù)據(jù)更新步驟如圖5所示步驟501當(dāng)前輸入的兩位控制信號(hào)為00,系統(tǒng)要求寫入正常數(shù)據(jù)。此時(shí)圖4中譯碼器a和譯碼器c發(fā)送無(wú)效控制信號(hào),譯碼器b發(fā)送有效控制信號(hào)。因此,更新控制模塊403不進(jìn)行操作;MUX404選擇寫指針作為寫入地址;寫指針?biāo)鶚?biāo)識(shí)的地址為存儲(chǔ)單元1的地址,緩存模塊405按存儲(chǔ)單元1的地址寫入正常數(shù)據(jù);然后寫指針控制模塊402將寫指針加一再輸出至MUX404。
步驟502當(dāng)前輸入的兩位控制信號(hào)為00,系統(tǒng)仍要求寫入正常數(shù)據(jù)。圖4中譯碼器a和譯碼器c發(fā)送無(wú)效控制信號(hào),譯碼器b發(fā)送有效控制信號(hào)。因此同樣,更新控制模塊403不進(jìn)行操作;MUX404選擇寫指針作為寫入地址;寫指針?biāo)鶚?biāo)識(shí)的地址從右向左依次為存儲(chǔ)單元2~4的地址,緩存模塊405從右向左依次按存儲(chǔ)單元2~4的地址寫入正常數(shù)據(jù);同時(shí)每對(duì)一個(gè)存儲(chǔ)單元寫入數(shù)據(jù)后,寫指針控制模塊402將寫指針加一再輸出至MUX404。
步驟503當(dāng)前輸入的兩位控制信號(hào)為01,即系統(tǒng)要求寫入待更新數(shù)據(jù)。圖4中譯碼器c發(fā)送無(wú)效控制信號(hào),譯碼器a和譯碼器b發(fā)送有效控制信號(hào)。因此,更新控制模塊403將當(dāng)前寫指針作為更新指針進(jìn)行寄存;MUX404選擇寫指針作為寫入地址;寫指針?biāo)鶚?biāo)識(shí)的地址為存儲(chǔ)單元5的地址,緩存模塊405按存儲(chǔ)單元5的地址寫入待更新數(shù)據(jù);然后寫指針控制模塊402將寫指針加一再輸出至MUX404。
步驟504當(dāng)前輸入的兩位控制信號(hào)為00,即系統(tǒng)繼續(xù)要求寫入正常數(shù)據(jù)。圖4中譯碼器a和譯碼器c發(fā)送無(wú)效控制信號(hào),譯碼器b發(fā)送有效控制信號(hào)。因此,更新控制模塊403不進(jìn)行操作;MUX404選擇寫指針作為寫入地址;寫指針?biāo)鶚?biāo)識(shí)的地址從右向左依次為存儲(chǔ)單元6~9的地址,緩存模塊405從右向左依次按存儲(chǔ)單元6~9的地址寫入正常數(shù)據(jù);同時(shí)每對(duì)一個(gè)存儲(chǔ)單元寫入數(shù)據(jù)后,寫指針控制模塊402將寫指針加一再輸出至MUX404。
步驟505當(dāng)前輸入的兩位控制信號(hào)為10即系統(tǒng)要求寫入更新數(shù)據(jù)。圖4中譯碼器a和譯碼器b發(fā)送無(wú)效控制信號(hào),譯碼器c發(fā)送有效控制信號(hào)。因此,更新控制模塊403不進(jìn)行操作;MUX404選擇更新指針作為寫入地址;更新指針?biāo)鶚?biāo)識(shí)的地址為存儲(chǔ)單元5的地址,緩存模塊405按存儲(chǔ)單元5的地址寫入更新數(shù)據(jù);但寫指針控制模塊402不對(duì)寫指針進(jìn)行加一操作,即寫指針不變,完成更新操作。
基于上述FIFO處理芯片,本發(fā)明FIFO處理芯片的數(shù)據(jù)更新方法如圖6所示。該方法從外部設(shè)備向FIFO處理芯片內(nèi)部引入操作控制線輸出標(biāo)識(shí)寫入數(shù)據(jù)性質(zhì)的控制信號(hào),在FIFO處理芯片內(nèi)部設(shè)置生成更新指針的更新控制模塊,其主要處理步驟如下步驟601FIFO處理芯片根據(jù)控制信號(hào)判斷當(dāng)前寫入數(shù)據(jù)是否為待更新數(shù)據(jù),如果是,轉(zhuǎn)入步驟602;如果不是,說(shuō)明當(dāng)前寫入數(shù)據(jù)可能是正常數(shù)據(jù)、更新數(shù)據(jù)或無(wú)效數(shù)據(jù),轉(zhuǎn)入步驟603。
步驟602更新控制模塊將當(dāng)前寫指針作為更新指針進(jìn)行寄存,即將更新指針賦為當(dāng)前寫指針;FIFO處理芯片將寫指針作為寫入地址寫入待更新數(shù)據(jù),然后寫指針控制模塊將寫指針加一,再返回步驟601判斷下一個(gè)寫入數(shù)據(jù)性質(zhì)。
步驟603FIFO處理芯片根據(jù)控制信號(hào)判斷當(dāng)前寫入數(shù)據(jù)是否為正常數(shù)據(jù),如果是,轉(zhuǎn)入步驟604;如果不是,說(shuō)明當(dāng)前寫入數(shù)據(jù)是更新數(shù)據(jù)或無(wú)效數(shù)據(jù),轉(zhuǎn)入步驟605。
步驟604FIFO處理芯片將寫指針作為寫入地址寫入正常數(shù)據(jù),然后寫指針控制模塊將寫指針加一;但更新控制模塊不進(jìn)行寄存操作,即更新指針保持不變;再轉(zhuǎn)入步驟601繼續(xù)判斷下一個(gè)寫入數(shù)據(jù)性質(zhì)。
步驟605FIFO處理芯片根據(jù)控制信號(hào)判斷當(dāng)前寫入數(shù)據(jù)是否為更新數(shù)據(jù),如果是,轉(zhuǎn)入步驟606;如果不是,說(shuō)明當(dāng)前寫入數(shù)據(jù)是無(wú)效數(shù)據(jù),轉(zhuǎn)入步驟607。
步驟606寫指針控制模塊不對(duì)寫指針進(jìn)行加一操作,即寫指針保持不變;FIFO處理芯片將更新指針作為寫入地址寫入更新數(shù)據(jù),數(shù)據(jù)更新結(jié)束。
步驟607停止寫入數(shù)據(jù),即FIFO處理芯片停止寫操作,寫指針控制模塊不對(duì)寫指針進(jìn)行操作,更新控制模塊也不進(jìn)行寄存操作,即寫指針和更新指針均保持不變;再轉(zhuǎn)入步驟601繼續(xù)判斷下一個(gè)寫入數(shù)據(jù)性質(zhì)。
圖6是從寫入一個(gè)待更新數(shù)據(jù)到寫入一個(gè)更新數(shù)據(jù)的處理過(guò)程,即對(duì)于一個(gè)待更新數(shù)據(jù)進(jìn)行更新的處理過(guò)程。如果FIFO處理芯片有多個(gè)數(shù)據(jù)需要更新的話,每對(duì)一個(gè)待更新數(shù)據(jù)進(jìn)行數(shù)據(jù)更新結(jié)束以后,將重新執(zhí)行此數(shù)據(jù)更新流程,從而對(duì)下一個(gè)待更新數(shù)據(jù)進(jìn)行更新。
可見(jiàn),應(yīng)用上述可以進(jìn)行數(shù)據(jù)更新的FIFO處理芯片以及數(shù)據(jù)更新方案可以在實(shí)現(xiàn)數(shù)據(jù)更新的同時(shí)避免寫指針的跳轉(zhuǎn),保證了FIFO處理芯片的獨(dú)立性,并大大減小了接口復(fù)雜度。
權(quán)利要求
1.一種先進(jìn)先出FIFO處理芯片,包括緩存模塊,用于接收寫入地址和寫入數(shù)據(jù),按寫入地址存儲(chǔ)寫入數(shù)據(jù);寫入數(shù)據(jù)線,用于從外部設(shè)備接收并輸出寫入數(shù)據(jù);其特征在于,該芯片還包括操作控制線,用于從外部設(shè)備接收并輸出控制信號(hào);寫指針控制模塊,用于接收控制信號(hào),生成并輸出寫指針;更新控制模塊,用于接收控制信號(hào),寄存標(biāo)識(shí)待更新地址的寫指針,生成并輸出更新指針;寫入地址選擇器MUX,用于接收控制信號(hào)、寫指針和更新指針,選擇寫指針或更新指針作為寫入地址并輸出寫入地址。
2.根據(jù)權(quán)利要求1所述的芯片,其特征在于,在操作控制線與寫指針控制模塊之間進(jìn)一步連接有譯碼器。
3.根據(jù)權(quán)利要求1所述的芯片,其特征在于,在操作控制線與更新控制模塊之間進(jìn)一步連接有譯碼器。
4.根據(jù)權(quán)利要求1所述的芯片,其特征在于,在操作控制線與MUX之間進(jìn)一步連接有譯碼器。
5.一種FIFO處理芯片的數(shù)據(jù)更新方法,其特征在于,在FIFO處理芯片內(nèi)部設(shè)置更新控制模塊,該方法還包括以下步驟a.根據(jù)從外部設(shè)備接收的控制信號(hào)判斷當(dāng)前寫入數(shù)據(jù)是否為待更新數(shù)據(jù),如果是,更新控制模塊寄存當(dāng)前寫指針,并將寫指針作為寫入地址寫入待更新數(shù)據(jù),返回步驟a;否則,轉(zhuǎn)入步驟b;b.根據(jù)控制信號(hào)判斷當(dāng)前寫入數(shù)據(jù)是否為更新數(shù)據(jù),如果是,將更新控制模塊所寄存的寫指針作為寫入地址寫入更新數(shù)據(jù),更新結(jié)束;否則,返回步驟a。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,步驟a與步驟b之間,進(jìn)一步包括,根據(jù)控制信號(hào)判斷當(dāng)前寫入數(shù)據(jù)是否為正常數(shù)據(jù),如果是,將寫指針作為寫入地址寫入正常數(shù)據(jù),返回步驟a;否則,轉(zhuǎn)入步驟b。
全文摘要
本發(fā)明公開(kāi)了一種先進(jìn)先出(FIFO)處理芯片,包括緩存模塊,用于接收寫入地址和寫入數(shù)據(jù),按寫入地址存儲(chǔ)寫入數(shù)據(jù);寫入數(shù)據(jù)線,用于從外部設(shè)備接收并輸出寫入數(shù)據(jù);操作控制線,用于從外部設(shè)備接收并輸出控制信號(hào);寫指針控制模塊,用于接收控制信號(hào),生成并輸出寫指針;更新控制模塊,用于接收控制信號(hào),寄存標(biāo)識(shí)待更新地址的寫指針,生成并輸出更新指針;寫入地址選擇器(MUX),用于接收控制信號(hào)、寫指針和更新指針,選擇寫指針或更新指針作為寫入地址輸出。本發(fā)明同時(shí)還公開(kāi)了一種FIFO處理芯片的數(shù)據(jù)更新方法。采用該芯片和方法在對(duì)FIFO處理芯片內(nèi)某一存儲(chǔ)區(qū)域進(jìn)行數(shù)據(jù)更新時(shí),保證了FIFO處理芯片的獨(dú)立性,減小了接口復(fù)雜度,并避免了寫指針的跳轉(zhuǎn)。
文檔編號(hào)H04L12/54GK1665215SQ20041000651
公開(kāi)日2005年9月7日 申請(qǐng)日期2004年3月4日 優(yōu)先權(quán)日2004年3月4日
發(fā)明者孫文華, 李敏秋, 劉義, 盛春明 申請(qǐng)人:華為技術(shù)有限公司