專利名稱:隊列管理中的數(shù)據(jù)出隊方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實施例涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種隊列管理中的數(shù)據(jù)出隊方法及裝置。
背景技術(shù):
在數(shù)據(jù)交換類芯片中,隊列管理(Queue Manager,簡稱為QM)是一種常用的關(guān)鍵技術(shù)。QM是將芯片輸入信元的描述符(Cell Descriptor,簡稱為⑶)信息按所屬隊列進行緩存,等待控制通路的調(diào)度后再輸出。各個隊列內(nèi)部按照先入先出(First In First Out,簡稱為FIF0)的方式進行管理。各個隊列之間采用鏈表方式共享一塊或者多塊描述符緩存。描述符緩存的類型通常采用延遲固定的片內(nèi)的具有靜止存儲功能的內(nèi)存(Static Random Access Memory,簡稱為SRAM)、增強動態(tài)隨機存取存儲器(Enhanced Dynamic Random Access Memory,簡稱為EDRAM)、或者片外的四相數(shù)據(jù)率存儲器(Quad Data Rate Memory,簡稱為QDR)、縮短讀潛伏時間的動態(tài)隨機存取器(Reduce Latency Dynamic Random Access Memory,簡稱為RLDRAM)等等。描述符緩存中的隊列鏈表(Link List Memory,簡稱為LLM)的數(shù)據(jù)結(jié)構(gòu)中至少包括隊頭節(jié)點、隊尾節(jié)點、總節(jié)點個數(shù)和隊長計數(shù)。其中,隊頭節(jié)點用于保存隊列中隊頭節(jié)點的CD和下一個節(jié)點的CD緩存地址。隊尾節(jié)點用于保存隊列的隊尾節(jié)點CD??偣?jié)點個數(shù)用于說明隊列鏈表總共的節(jié)點數(shù)N,每個節(jié)點的指針可以取值在0 N-I之間,指針代表了鏈表的下一個節(jié)點的地址。隊長計數(shù)用于保存隊列的長度,單位為CD的個數(shù)。每次數(shù)據(jù)的出入隊都需要刷新該計數(shù)長度?,F(xiàn)有技術(shù)中至少存在如下問題數(shù)據(jù)出隊時,需要讀取隊列鏈表中下一個節(jié)點的地址,然后才能根據(jù)該地址發(fā)起緩存的讀操作,對數(shù)據(jù)的出隊速度有很大影響。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種隊列管理中的數(shù)據(jù)出隊方法及裝置,用以解決現(xiàn)有技術(shù)中數(shù)據(jù)出隊速度較慢的問題。本發(fā)明實施例提供一種隊列管理中的數(shù)據(jù)出隊方法,包括交替使用N組指針在隊列鏈表中指示N個隊列,所述N個隊列中的每個隊列包括多個有順序的節(jié)點,所述N個隊列中的每個節(jié)點對應(yīng)一個緩存地址,所述N組指針中的每組指針包括頭指針和尾指針,所述頭指針用于指示隊頭節(jié)點,所述尾指針用于指示隊尾節(jié)
根據(jù)所述隊尾節(jié)點對應(yīng)的緩存地址在緩存中讀出出隊數(shù)據(jù),并輸出所述出隊數(shù)據(jù);N為大于等于2的正整數(shù)。本發(fā)明實施例提供一種隊列管理中的數(shù)據(jù)出隊裝置,包括處理單元,用于交替使用N組指針在隊列鏈表中指示N個隊列,所述N個隊列中的每個隊列包括多個有順序的節(jié)點,所述N個隊列中的每個節(jié)點對應(yīng)一個緩存地址,所述N組指針中的每組指針包括頭指針和尾指針,所述頭指針用于指示隊列頭節(jié)點,所述尾指針用于指示隊列尾節(jié)點;輸出單元,用于根據(jù)所述隊列尾節(jié)點對應(yīng)的緩存地址在緩存中讀出出隊數(shù)據(jù),并輸出所述出隊數(shù)據(jù);N為大于等于2的正整數(shù)。本發(fā)明實施例的隊列管理中的數(shù)據(jù)出隊方法及裝置,通過交替使用N組指針在隊列鏈表中指示N個隊列,每個隊列包括多個有順序的節(jié)點,每個節(jié)點對應(yīng)一個緩存地址,每組指針包括頭指針和尾指針,用頭指針指示隊頭節(jié)點,用尾指針指示隊尾節(jié)點,根據(jù)隊尾節(jié)點對應(yīng)的緩存地址在緩存中讀出出隊數(shù)據(jù),并輸出出隊數(shù)據(jù)。其中,N組指針的隊尾節(jié)點對應(yīng)的緩存地址在緩存中可以同時讀出N組出隊數(shù)據(jù),盡可能地減少由于隊列鏈表的訪問延遲而造成的數(shù)據(jù)出隊的延遲。有效提高了數(shù)據(jù)出隊的速率。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明一個實施例提供的隊列管理中的數(shù)據(jù)出隊方法的流程圖;圖2為本發(fā)明又一實施例提供的隊列管理中的數(shù)據(jù)出隊方法的流程圖;圖3為本發(fā)明再一實施例提供的隊列管理中的數(shù)據(jù)出隊方法的流程圖;圖4為本發(fā)明還一實施例提供的隊列管理中的數(shù)據(jù)出隊方法的流程圖;圖5a 圖5e為本發(fā)明實施例提供的信元入隊的示意圖;圖6為本發(fā)明又一個實施例提供的隊列管理中的數(shù)據(jù)出隊方法的流程圖;圖7為本發(fā)明一個實施例提供的隊列管理中的數(shù)據(jù)出隊裝置的結(jié)構(gòu)示意圖。
具體實施例方式為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。圖1為本發(fā)明一個實施例提供的隊列管理中的數(shù)據(jù)出隊方法的流程圖,如圖1所示,該方法包括步驟101、交替使用N組指針在隊列鏈表中指示N個隊列,該N個隊列中的每個隊列包括多個有順序的節(jié)點,每個節(jié)點對應(yīng)一個緩存地址,N組指針中的每組指針包括頭指針和尾指針,頭指針用于指示隊頭節(jié)點,尾指針用于指示隊尾節(jié)點。需要說明的是,外部器件的時鐘周期與芯片訪問隊列鏈表的時鐘周期是不同的, 例如,外部器件的時鐘周期是ls,而芯片訪問隊列鏈表的時鐘周期是5s。也就是說,外部器件將數(shù)據(jù)發(fā)送給芯片,以使芯片訪問隊列鏈表,經(jīng)過5s,芯片才能夠向外部器件返回信息, 那么對于外部器件的器件而言,已經(jīng)過去了 5個ls,也就是延誤了 5個外部器件的時鐘周期,這就是訪問隊列鏈表的延遲時鐘。為了克服上述訪問隊列鏈表的延時,本發(fā)明實施例通過N組指針去指示隊列鏈表的N個隊列。N的數(shù)目可以由訪問隊列鏈表的延遲時鐘來定。仍以上述具體實例為例,訪問隊列鏈表的延遲時鐘為5個外部器件的時鐘周期,那么N優(yōu)選等于5。也就是說用5組指針去指示隊列鏈表的5個隊列,每一組隊列都包括多個有順序的節(jié)點,每個節(jié)點都對應(yīng)一個緩沖地址。5組指針中的每組指針都包括頭指針和尾指針,其中的頭指針用于隊頭節(jié)點, 尾指針用于指示隊尾節(jié)點。步驟102、根據(jù)隊尾節(jié)點對應(yīng)的緩存地址在緩存中讀出出隊數(shù)據(jù),并輸出該出隊數(shù)據(jù),其中,N為大于等于2的正整數(shù)。由于使用了 N組指針指示隊列鏈表的N個隊列,也就是說,N個外部器件的時鐘周期,芯片接收到了外部器件發(fā)送的N次數(shù)據(jù),如果每次接收到的數(shù)據(jù)進入隊列鏈表中不同的隊列,那么就會有N個隊尾節(jié)點。芯片將N個隊尾節(jié)點對應(yīng)的緩存地址通知外部器件, 以使得外部器件根據(jù)N個隊尾節(jié)點對應(yīng)的緩存地址在緩存中讀出N個出隊數(shù)據(jù),并按照外部器件的時鐘周期依次輸出該N個出隊數(shù)據(jù),可以有效避免芯片訪問隊列鏈表所造成的延時,實現(xiàn)數(shù)據(jù)的連續(xù)出隊。仍以步驟101中的具體實例為例,使用了 5組指針指示隊列鏈表的5個隊列,5個外部器件的時鐘周期,芯片接收到了 5次數(shù)據(jù),每次接收到的數(shù)據(jù)進入隊列鏈表中不同的隊列,那么就有5個隊尾節(jié)點。芯片將5個隊尾節(jié)點對應(yīng)的緩存地址通知外部器件,以使得外部器件根據(jù)5個隊尾節(jié)點對應(yīng)的緩存地址在緩存中讀出5個出隊數(shù)據(jù),并按照外部器件的時鐘周期依次輸出5個出隊數(shù)據(jù)。輸出最后一個出隊數(shù)據(jù)后,由于已經(jīng)過了 5個外部器件的時鐘周期,下5個出隊數(shù)據(jù)已經(jīng)讀出,準(zhǔn)備好依次出隊,因此實現(xiàn)了數(shù)據(jù)的連續(xù)出隊。這里需要說明的是,出隊數(shù)據(jù)可以是信元,也可以是信元描述符。通過如上描述還可以知道,步驟101中交替使用N組指針在隊列鏈表中指示N個隊列具體可以理解為在N個外部器件的時鐘周期內(nèi)交替使用N組指針在隊列鏈表中指示 N個隊列。在上述實施方式的基礎(chǔ)上,圖2為本發(fā)明又一實施例提供的隊列管理中的數(shù)據(jù)出隊方法流程圖,如圖2所示,在圖1的基礎(chǔ)上,該方法還可以包括步驟100a、將入隊數(shù)據(jù)存入緩存中,并按照入隊數(shù)據(jù)的緩存地址在當(dāng)前隊列中創(chuàng)建節(jié)點;具體的,在接收到數(shù)據(jù)的入隊請求時,根據(jù)接收到的入隊請求在緩存中申請該入隊數(shù)據(jù)的緩存地址,并將入隊數(shù)據(jù)存入已申請的緩存地址中,然后根據(jù)已申請的緩存地址在當(dāng)前隊列中創(chuàng)建相應(yīng)的節(jié)點。步驟100c、使用當(dāng)前組指針中的當(dāng)前尾指針指示所創(chuàng)建的節(jié)點,當(dāng)前組指針中的當(dāng)前頭指針指示當(dāng)前隊列的隊頭節(jié)點。在上述實施方式的基礎(chǔ)上,圖3為本發(fā)明再一實施例提供的隊列管理中的數(shù)據(jù)出隊方法流程圖,如圖3所示,在步驟IOOc之前,該方法還可以包括步驟100b、通過指針數(shù)目寄存器對當(dāng)前組指針進行標(biāo)識。其中,可以使用一個總指針數(shù)目寄存器用于對當(dāng)前組指針進行標(biāo)識,這種情況建立在頭尾指針彼此關(guān)聯(lián)而作為一組指針的情況。還可以使用頭指針數(shù)目寄存器對當(dāng)前組指針的頭指針進行標(biāo)識,使用尾指針數(shù)目寄存器對當(dāng)前組指針的尾指針進行標(biāo)識,這種情況下頭尾指針可以彼此沒有關(guān)系,而在方法執(zhí)行過程中任意的頭尾指針都可以組成一組指針作為當(dāng)前組指針。圖4為本發(fā)明還一實施例提供的隊列管理中的數(shù)據(jù)出隊方法的流程圖,圖4提供的方法是上述方法實施例的一種具體形式,不用以限制本發(fā)明的保護范圍。如圖4所示,該方法包括步驟401、數(shù)據(jù)交換類芯片接收到輸入信元的入隊請求,入隊請求中攜帶該請求入隊的信元所屬隊列的ID。步驟402、判斷空閑地址池是否為空;如果不為空,則為該請求入隊的信元申請一個描述符緩存(⑶RAM)的緩存地址 (CurrentPtr),并執(zhí)行步驟 403 ;如果為空,則進行相關(guān)的異常處理。這里的異常處理包括丟棄當(dāng)前的描述符、停止入隊同時報警等等。其中,空閑地址池可以理解為信元入隊時分配的緩沖的空閑地址,用于存放⑶。步驟403、根據(jù)該請求入隊的信元所屬隊列的ID,獲得該隊列當(dāng)前入隊的尾指針。當(dāng)然在步驟403中還可以獲得該隊列的長度,作為QM的一個基本元素,用于判斷隊列是否為空。步驟404、將請求入隊的信元的描述符寫入描述符緩存中的緩存地址,并將當(dāng)前入隊的尾指針指向LLM的空白處填入當(dāng)前分配的緩存地址。步驟405、更新當(dāng)前可用的指針和隊列長度。一種實施方式下,如果獲得的隊列長度為0 N,也就是說全部頭尾指針中仍存在沒有被使用過的指針,則將當(dāng)前可用的頭指針也更新為當(dāng)前分配的緩存地址(即與尾指針指向相同的LLM的位置);如果獲得的隊列長度大于N,也就是說所有的頭尾指針都已經(jīng)被使用過,則需要將當(dāng)前可用的尾指針更新為當(dāng)前分配的緩存地址。執(zhí)行完上述方法后,將隊列長度加1。隨著N個尾指針的依次使用,可以將同一隊列連續(xù)入隊的⑶均勻地串為N條子鏈。使得芯片可以同時讀取各條子鏈上的數(shù)據(jù),并發(fā)送給外部器件。下面通過一種具體的例子對信元的入隊方法進行描述,假設(shè)LLM的訪問延遲是外部器件的時鐘周期的兩倍,則N為2,即一個隊列包含2個頭指針和2個尾指針。其中通過頭指針數(shù)目寄存器對當(dāng)前出隊的頭指針進行標(biāo)識,通過尾指針數(shù)目寄存器對當(dāng)前入隊的尾指針進行標(biāo)識。如圖5a 圖5e所示的信元入隊的示意圖。圖5a中為初始化狀態(tài),頭指針數(shù)目寄存器HeadPtrNum中標(biāo)識的當(dāng)前出隊的頭指針為HeadPtrJ),尾指針數(shù)目寄存器Tai IPtrNum中標(biāo)識的當(dāng)前入隊的尾指針為Tai lPtr_0, 可用的頭指針包括HeadPtr_0和HeadPtr_l,可用的尾指針包括TailPtr_0和TailPtr_l, 隊列長度Qlen = 0。圖5b在圖5a的基礎(chǔ)上向LLM輸入一個描述符緩存的地址為2的信元,HeadPtrJ) =2,TailPtrJ) = 2,Qlen = 1,可用的頭指針仍為HeadPtr_0, TailPtrNum將當(dāng)前入隊的尾指針更新為TailPtr_l。圖5c在圖5b的基礎(chǔ)上向LLM輸入一個描述符緩存的地址為4的信元,HeadPtr_l=4,HeadPtr_l = 4,Qlen = 2,可用的頭指針仍為HeadPtr_0,TailPtrNum將當(dāng)前入隊的尾指針更新為TailPtrJ)。圖5d在圖5c的基礎(chǔ)上向LLM輸入一個描述符緩存的地址為6的信元,HeadPtrJ) =2,HeadPtrJ)指向的下一個信元的描述符緩存的地址為6,TailPtrJ) = 6,Qlen = 3,可用的頭指針仍為HeadPtr_0,TailPtrNum將當(dāng)前入隊的尾指針更新為TailPtr_l。圖5e為圖5d的基礎(chǔ)上向LLM輸入一個描述符緩存的地址為10的信元,HeadPtr_l =4,HeadPtr_l指向的下一個信元的描述符緩存的地址為10,TailPtr_l = 10,Qlen = 4, 可用的頭指針仍為HeadPtr_0,TailPtrNum將當(dāng)前入隊的尾指針更新為TailPtr_0。圖6為本發(fā)明又一個實施例提供的隊列管理中的數(shù)據(jù)出隊方法的流程圖,如圖6 所示,該方法包括步驟601、數(shù)據(jù)交換類芯片接收到輸入信元的出隊請求,出隊請求中攜帶該請求出隊的信元所屬隊列的ID。步驟602、根據(jù)該請求出隊的信元所屬隊列的ID,獲得該隊列的長度以及該隊列當(dāng)前可用的頭指針。步驟603、將LLM中第一個節(jié)點存儲的下一個節(jié)點的緩存地址更新為當(dāng)前可用的頭指針指向的位置,并將隊列的長度減1。 步驟604、將當(dāng)前可用的隊列頭指針?biāo)涂臻e地址管理模塊(Free Address Manager,簡稱為FAM)回收。步驟605、輸出在描述符緩存中讀出的描述符。本發(fā)明實施例的隊列管理中的數(shù)據(jù)出隊方法,通過交替使用N組指針在隊列鏈表中指示N個隊列,每個隊列包括多個有順序的節(jié)點,每個節(jié)點對應(yīng)一個緩存地址,每組指針包括頭指針和尾指針,用頭指針指示隊頭節(jié)點,用尾指針指示隊尾節(jié)點,根據(jù)隊尾節(jié)點對應(yīng)的緩存地址在緩存中讀出出隊數(shù)據(jù),并輸出出隊數(shù)據(jù)。其中,N組指針的隊尾節(jié)點對應(yīng)的緩存地址在緩存中可以同時讀出N組出隊數(shù)據(jù),盡可能地減少由于隊列鏈表的訪問延遲而造成的數(shù)據(jù)出隊的延遲。有效提高了數(shù)據(jù)出隊的速率。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。圖7為本發(fā)明一個實施例提供的隊列管理中的數(shù)據(jù)出隊裝置的結(jié)構(gòu)示意圖,如圖7所示,該隊列管理中的數(shù)據(jù)出隊裝置為上述方法實施例中隊列管理中的數(shù)據(jù)出隊方法的執(zhí)行主體,可以為一種具體型號的芯片或者處理器等外部器件(相對于數(shù)據(jù)交換芯片而言),此處不做限定。該隊列管理中的數(shù)據(jù)出隊裝置包括處理單元701和輸出單元702。 其中,處理單元701用于交替使用N組指針在隊列鏈表中指示N個隊列,該N個隊列中的每個隊列包括多個有順序的節(jié)點,該N個隊列中的每個節(jié)點對應(yīng)一個緩存地址,該N組指針中的每組指針包括頭指針和尾指針,該頭指針用于指示隊列頭節(jié)點,該尾指針用于指示隊列尾節(jié)點;輸出單元702用于根據(jù)該隊列尾節(jié)點對應(yīng)的緩存地址在緩存中讀出出隊數(shù)據(jù),并輸出該出隊數(shù)據(jù);N為大于等于2的正整數(shù)。在上述實施方式的基礎(chǔ)上,該處理單元701還用于通過指針數(shù)目寄存器對當(dāng)前組指針進行標(biāo)識。在上述任一種實施方式的基礎(chǔ)上,該處理單元701還用于根據(jù)接收的入隊請求在緩存中申請該入隊數(shù)據(jù)的緩存地址,并將入隊數(shù)據(jù)存入已申請的緩存地址中本發(fā)明實施例的隊列管理中的數(shù)據(jù)出隊裝置,通過交替使用N組指針在隊列鏈表中指示N個隊列,每個隊列包括多個有順序的節(jié)點,每個節(jié)點對應(yīng)一個緩存地址,每組指針包括頭指針和尾指針,用頭指針指示隊頭節(jié)點,用尾指針指示隊尾節(jié)點,根據(jù)隊尾節(jié)點對應(yīng)的緩存地址在緩存中讀出出隊數(shù)據(jù),并輸出出隊數(shù)據(jù)。其中,N組指針的隊尾節(jié)點對應(yīng)的緩存地址在緩存中可以同時讀出N組出隊數(shù)據(jù),盡可能地減少由于隊列鏈表的訪問延遲而造成的數(shù)據(jù)出隊的延遲。有效提高了數(shù)據(jù)出隊的速率。最后應(yīng)說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種隊列管理中的數(shù)據(jù)出隊方法,其特征在于,包括交替使用N組指針在隊列鏈表中指示N個隊列,所述N個隊列中的每個隊列包括多個有順序的節(jié)點,所述N個隊列中的每個節(jié)點對應(yīng)一個緩存地址,所述N組指針中的每組指針包括頭指針和尾指針,所述頭指針用于指示隊頭節(jié)點,所述尾指針用于指示隊尾節(jié)點;根據(jù)所述隊尾節(jié)點對應(yīng)的緩存地址在緩存中讀出出隊數(shù)據(jù),并輸出所述出隊數(shù)據(jù);N 為大于等于2的正整數(shù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括將入隊數(shù)據(jù)存入所述緩存中,并按照入隊數(shù)據(jù)的緩存地址在當(dāng)前隊列中創(chuàng)建節(jié)點,并使用當(dāng)前組指針中的當(dāng)前尾指針指示所創(chuàng)建的節(jié)點,所述當(dāng)前組指針中的當(dāng)前頭指針指示當(dāng)前隊列的隊頭節(jié)點。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述在使用當(dāng)前組指針中的當(dāng)前尾指針指示所創(chuàng)建的節(jié)點之前,還包括通過指針數(shù)目寄存器對當(dāng)前組指針進行標(biāo)識。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述將入隊數(shù)據(jù)存入所述緩存中包括根據(jù)接收的入隊請求在緩存中申請所述入隊數(shù)據(jù)的緩存地址,并將入隊數(shù)據(jù)存入已申請的緩存地址中。
5.根據(jù)權(quán)利要求1-4中任一項所述的方法,其特征在于,所述交替使用N組指針在隊列鏈表中指示N個隊列包括在N個芯片時鐘周期內(nèi)交替使用N組指針在隊列鏈表中指示N個隊列。
6.根據(jù)權(quán)利要求1-5中任一項所述的方法,其特征在于,所述數(shù)據(jù)為信元或信元的描述符。
7.一種隊列管理中的數(shù)據(jù)出隊裝置,其特征在于,包括處理單元,用于交替使用N組指針在隊列鏈表中指示N個隊列,所述N個隊列中的每個隊列包括多個有順序的節(jié)點,所述N個隊列中的每個節(jié)點對應(yīng)一個緩存地址,所述N組指針中的每組指針包括頭指針和尾指針,所述頭指針用于指示隊列頭節(jié)點,所述尾指針用于指示隊列尾節(jié)點;輸出單元,用于根據(jù)所述隊列尾節(jié)點對應(yīng)的緩存地址在緩存中讀出出隊數(shù)據(jù),并輸出所述出隊數(shù)據(jù);N為大于等于2的正整數(shù)。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述處理單元,還用于將入隊數(shù)據(jù)存入所述緩存中,并按照入隊數(shù)據(jù)的緩存地址在當(dāng)前隊列中創(chuàng)建節(jié)點,并使用當(dāng)前組指針中的當(dāng)前尾指針指示所創(chuàng)建的節(jié)點,所述當(dāng)前組指針中的當(dāng)前頭指針指示當(dāng)前隊列的隊列頭節(jié)點ο
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述處理單元,還用于通過指針數(shù)目寄存器對當(dāng)前組指針進行標(biāo)識。
10.根據(jù)權(quán)利要求8或9所述的裝置,其特征在于,所述處理單元,還用于根據(jù)接收的入隊請求在緩存中申請所述入隊數(shù)據(jù)的緩存地址,并將入隊數(shù)據(jù)存入已申請的緩存地址中。全文摘要
本發(fā)明提供一種隊列管理中的數(shù)據(jù)出隊方法及裝置。方法包括交替使用N組指針在隊列鏈表中指示N個隊列,所述N個隊列中的每個隊列包括多個有順序的節(jié)點,所述N個隊列中的每個節(jié)點對應(yīng)一個緩存地址,所述N組指針中的每組指針包括頭指針和尾指針,所述頭指針用于指示隊頭節(jié)點,所述尾指針用于指示隊尾節(jié)點;根據(jù)所述隊尾節(jié)點對應(yīng)的緩存地址在緩存中讀出出隊數(shù)據(jù),并輸出所述出隊數(shù)據(jù);N為大于等于2的正整數(shù)。裝置包括處理單元和輸出單元。本發(fā)明提供的方案有效提高了數(shù)據(jù)出隊的速率。
文檔編號H04L12/24GK102437929SQ20111042422
公開日2012年5月2日 申請日期2011年12月16日 優(yōu)先權(quán)日2011年12月16日
發(fā)明者張科, 秦思林 申請人:華為技術(shù)有限公司