两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種具有二次索引結構的存儲設備及其操作方法

文檔序號:6608061閱讀:164來源:國知局
專利名稱:一種具有二次索引結構的存儲設備及其操作方法
技術領域
本發(fā)明涉及通信網絡領域中多通道數據的存儲,或者并行處理領域中多處理單元 指令的存儲領域,特別是涉及一種具有二次索引結構的存儲設備及其操作方法
背景技術
在芯片設計中,通常涉及多個相同屬性,但是具有不同來源,或者不同目標的數據 存儲問題。設計一般要求不同來源,或者不同目標的數據分別存儲而互不干擾。比如在多 核處理器設計中,不同處理器核的指令流應該被存放在不同的先進先出隊列,否則一個指 令流的執(zhí)行可能會阻塞另外一個指令流的執(zhí)行,在某些情況下,由于阻塞會造成死鎖。為了使用不同的先進先出隊列保存不同的數據流,通常的做法是實現多個完整的 先進先出隊列(FIFO),每個FIFO對應于不同的數據流,每個FIFO各自管理各自的存儲隊 列,則不同FIFO的數據流不會相互阻塞。這樣的實現方式會造成硬件資源的浪費,比如每 個FIFO都要使用一塊雙端口存儲(Dual-port RAM),在RAM數量受限的情況(如可編程邏 輯器件中)下會造成資源緊張;再比如每個FIFO都有獨立的計數器來記錄FIFO中數據隊 列的頭部、尾部,需要較多的硬件資源。

發(fā)明內容
本發(fā)明的目的在于提供一種具有二次索引結構的存儲設備及其操作方法,通過采 用兩次索引結構,減少了雙端口存儲的使用,以及隊列管理資源的使用,并且能夠保證同一 時刻同一個FIFO被讀寫,或者同一時刻不同FIFO—個被讀而另一個被寫,充分發(fā)揮雙端口 存儲的性能。為實現本發(fā)明的目的而提供的一種具有二次索引結構的存儲設備,所述設備,包 括多隊列存儲單元,從邏輯上被劃分為N個FIFO,具有單獨的讀端口和寫端口,能夠 對單元內任意FIFO同時進行讀寫操作;索引表模塊,用于存儲所述N個先入先出隊列的索引信息,每個先入先出隊列的 索引信息存儲在所述索引表模塊中的一行;兩個索引寄存器,用于暫存從所述索引表模塊中讀取出來的索引信息以供讀操作 和寫操作同時使用。所述多隊列存儲單元是一雙端口存儲。所述索引表模塊使用深度為N的雙端口存儲。所述索引表模塊中的每一行的索引信息由下面的元素構成{頭部指針,尾部指 針,空滿信息};頭部指針指向多隊列存儲中對應的FIFO的頭部,尾部指針指向多隊列存儲 中對應FIFO的尾部;空滿信息表示此FIFO的狀態(tài),是空隊列還是滿隊列。對某個FIFO的讀寫應該首先根據FIFO的號碼到索引表中取出索引信息,然后根 據索引信息里面頭部指針或者尾部指針索引到對應的FIFO的頭部或者尾部,從而進行讀或者寫操作所述索引寄存器使用通用寄存器實現。所述索引寄存器的結構為{索引狀態(tài),FIFO號,頭部指針,尾部指針,空滿信息};索引狀態(tài)表示此索引寄存器的狀態(tài),是四種狀態(tài)中的一種空閑、讀、寫、讀寫,FIFO號表示 此索引寄存器的內容代表哪個FIFO的索引信息,同時也代表了此索引寄存器對應于所述 索引表模塊中的哪一行,頭部指針指向多隊列存儲單元中對應的FIFO的頭部,尾部指針指 向多隊列存儲模塊中對應FIFO的尾部,空滿信息表示對應FIFO的狀態(tài),是空隊列還是滿隊 列。為實現本發(fā)明的目的還提供一種具有二次索弓I結構的存儲設備的操作方法,所述 方法,包括下列步驟步驟100.外部設備輸入期望操作的先入先出隊列號,查看兩個索引寄存器中的 先入先出隊列號,判斷是否存在一個索引寄存器中的先入先出隊列號與當前要操作的先入 先出隊列號相同,若存在,則執(zhí)行步驟200 ;否則,執(zhí)行步驟300 ;步驟200.使用此匹配的索引寄存器來操作對應的先入先出隊列;步驟300.選擇兩個索引寄存器中索引狀態(tài)為空閑狀態(tài)的索引寄存器,根據此索 引寄存器的先入先出隊列號把索引寄存器的內容寫回到索引表中以更新所述索引表,同時 根據將要操作的先入先出隊列號從索引表中把新的索引信息從索引表中讀取到此索引寄 存器中,并更新索引寄存器的索引狀態(tài)和先入先出隊列號。所述索引表中的每一行的索引信息由下面的元素構成{頭部指針,尾部指針,空 滿信息};頭部指針指向多隊列存儲中對應的FIFO的頭部,尾部指針指向多隊列存儲中對 應FIFO的尾部;空滿信息表示此FIFO的狀態(tài),是空隊列還是滿隊列。所述索引寄存器的結構為{索引狀態(tài),FIFO號,頭部指針,尾部指針,空滿信息}; 索引狀態(tài)表示此索引寄存器的狀態(tài),是四種狀態(tài)中的一種空閑、讀、寫、讀寫,FIFO號表示 此索引寄存器的內容代表哪個FIFO的索引信息,同時也代表了此索引寄存器對應于所述 索引表模塊中的哪一行,頭部指針指向多隊列存儲單元中對應的FIFO的頭部,尾部指針指 向多隊列存儲模塊中對應FIFO的尾部,空滿信息表示對應FIFO的狀態(tài),是空隊列還是滿隊 列。當所述索引寄存器的內容將要被一個新的FIFO的索引信息所替換時,當前索引 寄存器中存儲的索引信息需要先寫回到索引表中以更新索引表對應的行。本發(fā)明的有益效果是采用兩次索弓|,將一塊雙端口存儲從邏輯上劃分為多個 FIFO結構的存儲,減少了雙端口存儲的使用,以及隊列管理資源的使用,并且能夠保證同一 時刻同一個FIFO被讀寫,或者同一時刻不同FIFO—個被讀而另一個被寫,充分發(fā)揮雙端口 存儲的性能。


圖1是本發(fā)明的具有二次索引結構的存儲設備的結構示意圖;圖2是本發(fā)明的一種具有二次索引結構的存儲設備的操作方法的步驟流程圖。
具體實施方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對 本發(fā)明的一種具有二次索引結構的存儲設備及其操作方法進行進一步詳細說明。應當理 解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明的一種具有二次索引結構的存儲設備及其操作方法,通過兩次索引,僅僅 使用一套隊列管理模塊,就可以把一塊雙端口存儲從邏輯上劃分為多個FIFO結構的存儲, 減少了雙端口存儲的使用,以及隊列管理資源的使用,并且能夠保證同一時刻同一個FIFO 被讀寫,或者同一時刻不同FIFO —個被讀而另一個被寫,充分發(fā)揮雙端口存儲的性能。下面結合上述目標詳細介紹本發(fā)明的具有二次索引結構的存儲設備,圖1是本發(fā) 明的具有二次索引結構的存儲設備的結構示意圖,如圖1所示,所述設備,包括多隊列存儲單元1,從邏輯上被劃分為N個FIFO,具有單獨的讀端口和寫端口,能 夠對單元內任意FIFO同時讀寫;如圖1所示,所述多隊列存儲單元是一塊雙端口存儲,具有單獨的讀寫端口,可以 對存儲內任意位置同時讀寫,此雙端口存儲從邏輯上被劃分為N個FIFO,如圖1中FIFO 0 到 FIFO N-I。索引表模塊2,用于存儲N個FIFO的索引信息,每個FIFO的索引信息存儲在所述 索引表模塊中的一行;所述索引表模塊使用深度為N的雙端口存儲,用于存儲N個FIFO的索引信息,每 個FIFO的索引信息存儲在所述索引表模塊中的一行,第0行對應于FIFO 0的索引信息,第 1行對應于FIFO 1的索引信息……第N-I行對應于FIF0N-1的索引信息。所述索引表中的每一行的索引信息由下面的元素構成{頭部指針,尾部指針,空 滿信息}。頭部指針指向多隊列存儲中對應的FIFO的頭部;尾部指針指向多隊列存儲中對 應FIFO的尾部;空滿信息表示此FIFO的狀態(tài),是空隊列還是滿隊列。對某個FIFO的讀寫應該首先根據FIFO的號碼到索引表中取出索引信息,然后根 據索引信息里面頭部指針或者尾部指針索引到對應的FIFO的頭部或者尾部,從而進行讀 或者寫操作。此種方法稱之為二次索引。兩個索引寄存器3,用于暫存從所述索引表模塊2中讀取出來的索引信息以供讀 操作和寫操作使用;圖1所示的索引寄存器1和索引寄存器2是兩行結構相同的索引信息,使用寄存 器實現。此兩行索引的作用是暫存從索引表讀取出來內容。由于索引表只有一個讀端口以 及一個寫端口,而兩個FIFO同時被操作時會引起對兩行索引信息的改寫,一個寫端口不能 滿足這種需求;同時索引表的存儲結構不能僅僅直接改變索引表中一行中的某幾位信息, 基于這兩種原因,有必要先把索引表中的信息讀取出來放到索引寄存器1或者索引寄存器 2中,如此才能實現同時對多隊列存儲中不同的FIFO進行讀或者寫。索引寄存器的結構為{索引狀態(tài),FIFO號,頭部指針,尾部指針,空滿信息}。當 FIFO被操作的時候,對應的索引寄存器的內容會發(fā)生改變,比如頭部指針和尾部指針會改 變,為了避免對索引表寫端口的頻繁操作,這個時候不需要更新其在索引表中對應的行的 內容。也即是說,索引寄存器中的信息是最新的信息,而索引表的信息可能是落后的信息。 索引寄存器的內容僅僅在被新的一個FIFO的索引信息替換的時候,才會被更新到索引表對應的行中。索引寄存器各項的含義如下 1.索引狀態(tài)表示此索引寄存器的狀態(tài),可以是四種狀態(tài)中的一種空閑、讀、寫、 讀寫??臻e表示此寄存器空閑,其對應的FIFO無讀寫操作,寄存器內容可以被索引表新的 內容替換;讀狀態(tài)表示此索引對應的FIFO當前正在被讀取,而沒有被寫入;寫狀態(tài)表示此 索引對應的FIFO當前正在被寫入,而沒有被讀?。蛔x寫狀態(tài)表示此索引對應的FIFO當前既 被寫入,也被讀取。2. FIFO號表示此索引寄存器的內容代表哪個FIFO的索引信息,同時也代表了此 索引寄存器對應于索引表中的哪一行。3.頭部指針(H)指向多隊列存儲中對應的FIFO的頭部,如圖1中所示的Hl或者 H2。4.尾部指針⑴指向多隊列存儲中對應FIFO的尾部,如圖1中所示的Tl或者T2。5.空滿信息表示對應FIFO的狀態(tài),是空隊列還是滿隊列。由于多隊列存儲單元只有一個讀端口和一個寫端口,因此不可能出現同時讀兩個 FIFO,或者同時寫兩個FIFO的情況,也不會出現同時操作三個(含三個)以上FIFO的情況, 因此兩個索引寄存器足夠維護多隊列存儲結構的運行。也因此不會出現頭指針Hl和H2同 時有效,或者尾指針Tl和T2同時有效的情況。所以多隊列存儲單元中的寫端口所需要的 尾部指針T會選擇Tl或者T2中有效的那個,讀端口所需要的頭部指針H會選擇Hl或者H2 中有效的那個。相應于本發(fā)明的一種具有二次索引結構的存儲設備,還提供一種具有二次索引結 構的存儲設備的操作方法,圖2是本發(fā)明的一種具有二次索引結構的存儲設備的操作方法 的步驟流程圖,如圖2所示,所述方法,包括下列步驟步驟000.當設備外部希望操作多隊列存儲中的某個FIFO時,則向本專利所說的 設備輸入期望操作的FIFO號。寫操作發(fā)生在圖1所示的多隊列存儲寫端口,讀操作發(fā)生在 圖1所示的多隊列存儲讀端口。兩種操作可以單獨發(fā)生,也可以同時發(fā)生。多隊列存儲的 讀端口和寫端口的輸入的FIFO號可以相同,也可以不同。步驟100.當對多隊列存儲中的FIFO有寫操作或者讀操作時,查看兩個索引寄存 器中的FIFO號,判斷是否存在一個索引寄存器中的FIFO號與當前要操作的FIFO號相同, 若存在,則執(zhí)行步驟200 ;否則,執(zhí)行步驟300 ;步驟200.不管所述索引寄存器的狀態(tài)如何,使用此匹配的索引寄存器來操作對 應的FIFO ;步驟300.選擇兩個索引寄存器中索引狀態(tài)為空閑狀態(tài)的索引寄存器,根據此索 引寄存器的FIFO號把索引寄存器中的{頭部指針,尾部指針,空滿信息}內容寫回到索引 表中以更新所述索引表,同時根據將要操作的FIFO號從索引表中把新的索引信息{頭部指 針,尾部指針,空滿信息}從索引表中讀取到此索引寄存器中,并更新索引寄存器的索引狀 態(tài)和FIFO號。當相應FIFO被操作的時候,對應的索引寄存器的內容會發(fā)生改變,比如頭部指針 和尾部指針會改變,為了避免對索引表寫端口的頻繁操作,這個時候不需要更新其在索引 表中對應的行的內容,而僅更新相應索引寄存器的內容。而在本步驟中,由于索引寄存器的 內容將要被一個新的FIFO的索引信息所替換,因此,當前索引寄存器中存儲的索引信息需要先寫回到索引表中以更新索引表對應的行中,然后才會根據將要操作的FIFO號從索引 表中把新的索引信息從索引表中讀取到此索引寄存器中,并更新索引寄存器的索引狀態(tài)和 FIFO 號。較佳地,由于多隊列存儲器只有一個讀端口和一個寫端口,在新的操作到達多隊 列存儲時,兩個索引寄存器必然至少有一個是空閑狀態(tài),所以一定能夠找到索引寄存器來 操作對應的FIFO 。也由于索引表是雙端口存儲,在更新索引寄存器的時候,可以同時發(fā)起對 索引表的讀和寫,不會造成時間的延誤。本發(fā)明的有益效果是采用兩次索引,將一塊雙端口存儲從邏輯上劃分為多個 FIFO結構的存儲,減少了雙端口存儲的使用,以及隊列管理資源的使用,并且能夠保證同一 時刻同一個FIFO被讀寫,或者同一時刻不同FIFO—個被讀而另一個被寫,充分發(fā)揮雙端口 存儲的性能。通過結合附圖對本發(fā)明具體實施例的描述,本發(fā)明的其它方面及特征對本領域的 技術人員而言是顯而易見的。以上對本發(fā)明的具體實施例進行了描述和說明,這些實施例應被認為其只是示例 性的,并不用于對本發(fā)明進行限制,本發(fā)明應根據所附的權利要求進行解釋。
權利要求
一種具有二次索引結構的存儲設備,其特征在于,所述設備,包括多隊列存儲單元,從邏輯上被劃分為N個FIFO,具有單獨的讀端口和寫端口,能夠對單元內任意FIFO同時進行讀寫操作;索引表模塊,用于存儲所述N個先入先出隊列的索引信息,每個先入先出隊列的索引信息存儲在所述索引表模塊中的一行;兩個索引寄存器,用于暫存從所述索引表模塊中讀取出來的索引信息以供讀操作和寫操作同時使用。
2.根據權利要求1所述的具有二次索引結構的存儲設備,其特征在于,所述多隊列存 儲單元是一雙端口存儲。
3.根據權利要求1所述的具有二次索引結構的存儲設備,其特征在于,所述索引表模 塊使用深度為N的雙端口存儲。
4.根據權利要求1所述的具有二次索引結構的存儲設備,其特征在于,所述索引表模 塊中的每一行的索引信息由下面的元素構成{頭部指針,尾部指針,空滿信息};頭部指針 指向多隊列存儲中對應的FIFO的頭部,尾部指針指向多隊列存儲中對應FIFO的尾部;空滿 信息表示此FIFO的狀態(tài),是空隊列還是滿隊列。
5.根據權利要求1所述的具有二次索引結構的存儲設備,其特征在于,對某個FIFO的 讀寫應該首先根據FIFO的號碼到索引表中取出索引信息,然后根據索引信息里面頭部指 針或者尾部指針索引到對應的FIFO的頭部或者尾部,從而進行讀或者寫操作。
6.根據權利要求1所述的具有二次索引結構的存儲設備,其特征在于,所述索引寄存 器使用通用寄存器實現。
7.根據權利要求1所述的具有二次索引結構的存儲設備,其特征在于,所述索引寄存 器的結構為{索引狀態(tài),FIFO號,頭部指針,尾部指針,空滿信息};索引狀態(tài)表示此索引寄 存器的狀態(tài),是四種狀態(tài)中的一種空閑、讀、寫、讀寫,FIFO號表示此索引寄存器的內容代 表哪個FIFO的索引信息,同時也代表了此索引寄存器對應于所述索引表模塊中的哪一行, 頭部指針指向多隊列存儲單元中對應的FIFO的頭部,尾部指針指向多隊列存儲模塊中對 應FIFO的尾部,空滿信息表示對應FIFO的狀態(tài),是空隊列還是滿隊列。
8.一種具有二次索引結構的存儲設備的操作方法,其特征在于,所述方法,包括下列步驟步驟100.外部設備輸入期望操作的先入先出隊列號,查看兩個索引寄存器中的先入 先出隊列號,判斷是否存在一個索引寄存器中的先入先出隊列號與當前要操作的先入先出 隊列號相同,若存在,則執(zhí)行步驟200 ;否則,執(zhí)行步驟300 ;步驟200.使用此匹配的索引寄存器來操作對應的先入先出隊列;步驟300.選擇兩個索引寄存器中索引狀態(tài)為空閑狀態(tài)的索引寄存器,根據此索引寄 存器的先入先出隊列號把索引寄存器的內容寫回到索引表中以更新所述索引表,同時根據 將要操作的先入先出隊列號從索引表中把新的索引信息從索引表中讀取到此索引寄存器 中,并更新索引寄存器的索引狀態(tài)和先入先出隊列號。
9.根據權利要求8所述的具有二次索引結構的存儲設備的操作方法,其特征在于,所 述索引表中的每一行的索引信息由下面的元素構成{頭部指針,尾部指針,空滿信息};頭 部指針指向多隊列存儲中對應的FIFO的頭部,尾部指針指向多隊列存儲中對應FIFO的尾部;空滿信息表示此FIFO的狀態(tài),是空隊列還是滿隊列。
10.根據權利要求8所述的具有二次索引結構的存儲設備的操作方法,其特征在于,所 述索引寄存器的結構為{索引狀態(tài),FIFO號,頭部指針,尾部指針,空滿信息};索引狀態(tài)表 示此索引寄存器的狀態(tài),是四種狀態(tài)中的一種空閑、讀、寫、讀寫,FIFO號表示此索引寄存 器的內容代表哪個FIFO的索引信息,同時也代表了此索引寄存器對應于所述索引表模塊 中的哪一行,頭部指針指向多隊列存儲單元中對應的FIFO的頭部,尾部指針指向多隊列存 儲模塊中對應FIFO的尾部,空滿信息表示對應FIFO的狀態(tài),是空隊列還是滿隊列。
11.根據權利要求8所述的具有二次索引結構的存儲設備的操作方法,其特征在于,當 所述索引寄存器的內容將要被一個新的FIFO的索引信息所替換時,當前索引寄存器中存 儲的索引信息需要先寫回到索引表中以更新索引表對應的行。
全文摘要
本發(fā)明公開了一種具有二次索引結構的存儲設備,所述設備,包括多隊列存儲單元,從邏輯上被劃分為N個FIFO,具有單獨的讀端口和寫端口,能夠對單元內任意FIFO同時進行讀寫操作;索引表模塊,用于存儲所述N個先入先出隊列的索引信息,每個先入先出隊列的索引信息存儲在所述索引表模塊中的一行;兩個索引寄存器,用于暫存從所述索引表模塊中讀取出來的索引信息以供讀操作和寫操作同時使用。
文檔編號G06F5/06GK101963896SQ20101025976
公開日2011年2月2日 申請日期2010年8月20日 優(yōu)先權日2010年8月20日
發(fā)明者孫凝暉, 安學軍, 曹政, 王凱, 陳飛 申請人:中國科學院計算技術研究所
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
衢州市| 南康市| 贵阳市| 隆化县| 凤冈县| 察隅县| 台东县| 依安县| 田阳县| 关岭| 鸡西市| 乐至县| 新和县| 衡水市| 景洪市| 临泉县| 荥阳市| 南通市| 吉安县| 会昌县| 彰化市| 托里县| 徐闻县| 阜新| 武威市| 舒城县| 忻城县| 定结县| 化州市| 突泉县| 汉寿县| 胶州市| 定襄县| 资兴市| 敦煌市| 平山县| 千阳县| 呼伦贝尔市| 城步| 宝山区| 古蔺县|