TWI696070B - 記憶體系統及在網路裝置中實施該記憶體系統之方法,以及網路裝置 - Google Patents

記憶體系統及在網路裝置中實施該記憶體系統之方法,以及網路裝置 Download PDF

Info

Publication number
TWI696070B
TWI696070B TW105122270A TW105122270A TWI696070B TW I696070 B TWI696070 B TW I696070B TW 105122270 A TW105122270 A TW 105122270A TW 105122270 A TW105122270 A TW 105122270A TW I696070 B TWI696070 B TW I696070B
Authority
TW
Taiwan
Prior art keywords
memory
individual
entry
list
data
Prior art date
Application number
TW105122270A
Other languages
English (en)
Other versions
TW201717017A (zh
Inventor
阿維奈許 嘉尼卓 曼尼
穆罕默德K 伊沙
尼爾 貝瑞特
Original Assignee
美商伊諾凡恩有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商伊諾凡恩有限公司 filed Critical 美商伊諾凡恩有限公司
Publication of TW201717017A publication Critical patent/TW201717017A/zh
Application granted granted Critical
Publication of TWI696070B publication Critical patent/TWI696070B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

描述一種用於一網路裝置之記憶體系統。該記憶體系統包含經組態以儲存一或多個資料元件之一主記憶體。進一步言之,該記憶體系統包含一連結記憶體,其經組態以維持一或多個指標,以使儲存於該主記憶體中之該一或多個資料元件互連。該記憶體系統亦包含一自由入口管理器,其經組態以產生包含該連結記憶體中之一或多個位置之一可用記憶體庫組。另外,該記憶體系統包含一內容管理器,其經組態以維持元資料用於該一或多個資料元件之一列表。

Description

記憶體系統及在網路裝置中實施該記憶體系統之方法,以及網路裝置
本發明之實施例係關於網路裝置。特定言之,本發明之實施例係關於用於網路裝置之記憶體系統。
網路裝置用以轉移資料於一網路中之節點之間。隨著網路增長且通信通道之資料率增加,出現增加一網路裝置可在一段時間內處理之資料量的需要。為滿足此等網路之需求,裝置需要經設計以讀取資料至記憶體中且自記憶體寫出資料以容納網路之需求且最小化讀取請求與寫入請求之間的任何衝突之記憶體系統。當前系統藉由增加一記憶體之存取埠數目及/或增加該記憶體之時脈速度而滿足網路之高容量及高資料率需求,其要求本半導體技術之狀態。然而,增加記憶體上之存取埠之數目及使用本半導體技術之狀態來增加記憶體之操作頻率顯著地添加記憶體之成本及操作此等記憶體所需之功率預算。
描述一種用於一網路裝置之記憶體系統。該記憶體系統包含經組態以儲存一或多個資料元件之一主記憶體。進一步言之,該記憶體系統包含一連結記憶體,其經組態以維持一或多個指標以使儲存於該主記憶體中之該一或多個資料元件互連。該記憶體系統亦包含一自由 入口管理器,其經組態以產生包含該連結記憶體中之一或多個位置的一可用記憶體庫組。另外,該記憶體系統包含一內容管理器,其經組態以維持元資料用於多個列表,其中各列表含有一或多個資料元件。
自隨附圖式及自下列實施方式將明白本發明之實施例之其他特徵及優點。
10:網路裝置
12:輸入/輸出埠
14:主記憶體
16:處理器
18:分布式連結列表
20:連結記憶體
22:自由入口管理器
24:內容管理器
200:主記憶體
202a-202d:位置
204:連結記憶體
206a-206d:位置
210:內容管理器
212:頭入口
214:尾入口
300:主記憶體
302a-302d:主記憶體位置
303:連結記憶體
304a:第一記憶體庫
304b:第二記憶體庫
304c:第三記憶體庫
304d:第四記憶體庫
306a-306d:位置
308a-308d:位置
310a-310d:位置
312a-312d:位置
314:內容管理器
316:第一頭入口
318:第一尾入口
320:第二頭入口
322:第二尾入口
324:第三頭入口
326:第三尾入口
328:第四頭入口
330:第四尾入口
710:網路裝置
712:輸入/輸出埠
714:主記憶體
716:處理器
718:母分布式連結列表
720:母連結記憶體
722:母自由入口管理器
724:母內容管理器
725:母快照記憶體
726:子分布式連結列表
730:子連結記憶體
732:子自由入口管理器
734:子內容管理器
800:母快照記憶體
802a-802d:母快照記憶體
803:母連結記憶體
804a:第一記憶體庫
804b:第二記憶體庫
804c:第三記憶體庫
804d:第四記憶體庫
806a-806d:位置
808a-808d:位置
810a-810d:位置
812a-812d:位置
814:母內容管理器
816:第一頭入口
818:第一尾入口
820:第二頭入口
822:第二尾入口
824:第三頭入口
826:第三尾入口
828:第四頭入口
830:第四尾入口
經由隨附圖式之圖中之實例而非經由其限制圖解說明本發明之實施例,其中相似元件符號指類似元件,且其中:圖1繪示根據一實施例之包含實施分布式連結列表之一記憶體系統之一網路裝置的一方塊圖;圖2繪示根據一實施例之一記憶體系統之一部分的一方塊圖;圖3繪示根據一實施例之包含多個記憶體庫之連結記憶體之一記憶體系統之一部分的一方塊圖;圖4繪示根據一實施例之用於實施一分布式連結列表之一方法的一流程圖;圖5繪示根據一實施例之用於使用一分布式連結列表來儲存一資料元件之一方法的一流程圖;圖6繪示根據一實施例之用於使用一分布式連結列表來讀取一資料元件的一流程圖;圖7繪示根據一實施例之包含實施階層分布式連結列表之一記憶體系統之一網路裝置的一方塊圖;圖8繪示根據一實施例之包含多個記憶體庫之母連結記憶體之一母分布式連結列表之一部分的一方塊圖;及圖9繪示根據一實施例之用於實施一階層分布式連結列表之一方法的一流程圖。
描述針對網路裝置實施一分布式連結列表之一系統及方法之實施例。特定言之,描述一種記憶體系統,其經組態以藉由實施一分布式連結列表而管理資料。該記憶體系統包含用於儲存由一網路裝置接收之資料的一主記憶體。進一步言之,該記憶體系統包含一分布式連結列表。該分布式連結列表包含一連結記憶體、一自由入口管理器及一內容管理器。該分布式連結列表經組態以追蹤儲存於一主記憶體中之資料之位置且使該等位置結合至一列表以維持資料之間的一循序關係。進一步言之,該分布式連結列表使用成庫組之記憶體結構來維持儲存於一主記憶體中之資料之間的一循序關係,而無需主記憶體與分布式連結列表之間的一直接關係。此一架構提供使用單一埠記憶體且降低操作頻率之能力,其降低記憶體系統之成本及複雜性同時仍滿足一高容量網路之效能需求。
圖1繪示根據一實施例之包含實施分布式連結列表之一記憶體系統的一網路裝置的一方塊圖。明確言之,圖1繪示包含複數個輸入/輸出埠12之一網路裝置10。使用包含此項技術中已知之技術之技術透過埠12接收並傳輸資料封包。埠12與一主記憶體14耦合。一主記憶體可包含記憶體技術,包含(但不限於)動態隨機存取記憶體(「DRAM」)、靜態隨機存取記憶體(「SRAM」)、快閃記憶體及用以儲存資料之包含此項技術中已知之技術之其他技術。
主記憶體14與一或多個處理器16耦合。一處理器16可包含(但不限於)一中央處理單元(「CPU」)、一控制器、一專用積體電路(「ASIC」)、場可程式化閘陣列(「FPGA」)或其他類型之控制單元。一或多個處理器16經組態以使用包含此項技術中已知之技術之技術來管理對主記憶體14之存取。例如,一或多個處理器16經組態以判定用以儲存接收於一或多個埠12上之資料的一位置。一或多個處理器16亦經組態以當儲存於主記憶體14中之資料待傳輸於一或多個埠12上 時讀取該資料。進一步言之,一或多個處理器16經組態以使用包含此項技術中已知之技術之技術來覆寫、更新及無效化記憶體位置。
進一步言之,圖1中所繪示之實施例包含一分布式連結列表18。 分布式連結列表18與一或多個處理器16耦合。進一步言之,分布式連結列表18包含一連結記憶體20、一自由入口管理器22及一內容管理器24。連結記憶體20經組態以維持元資料以使儲存於主記憶體14中之資料元件互連。針對一實施例,維持元資料包含使用包含本文中所描述之技術之技術來產生、儲存並更新元資料。另外,連結記憶體20經組態以儲存包含用以參考儲存於主記憶體14中之資料元件的一或多個指標之元資料。連結記憶體20可包含如本文中所描述之記憶體技術之一或多者。連結記憶體20包含用於儲存資訊之複數個位置。該複數個位置之各者具有用以存取儲存於該位置中之資料的一位址。針對一實施例,連結記憶體20包含複數個記憶體庫,其中該等記憶體庫之各者包含複數個位置且各位置具有用以存取資料之一位址。
根據圖1中所繪示之實施例,一分布式連結列表18亦包含一自由入口管理器22。自由入口管理器22經組態以在連結記憶體20中產生一可用記憶體庫組之位置。該可用記憶體庫組係在連結記憶體20中之一群組之一或多個位址,其等未被使用或分配。針對一實施例,該一或多個位址常駐於該連結記憶體之不同記憶體庫中。例如,自由入口管理器22經組態以維持該等位置之一列表之一或多個位址於未被使用或分配之記憶體中,用於儲存用於當前作為一可用記憶體庫組而儲存於主記憶體14中之一資料元件之元資料。針對一實施例,一自由入口管理器22使用包含此項技術中已知之記憶體技術之一或多個記憶體技術用於儲存一可用記憶體庫組。針對一實施例,一或多個處理器16經組態以當一連結記憶體位址經使用或經分配以使儲存於一主記憶體14中之資料元件互連時自自由入口管理器22移除一連結記憶體位址。進一 步言之,一或多個處理器16經組態以在一連結記憶體位址不再使用之後添加該連結記憶體位址至自由入口管理器22。例如,一旦自主記憶體14讀取一資料元件,則一或多個處理器16經組態以解除分配或無效化與該資料元件相關聯之連結記憶體20之一位置,其包含將該位置之位址寫入於自由入口管理器22中。
根據圖1中所繪示之實施例,分布式連結列表包含一內容管理器24。內容管理器24經組態以維持包含使儲存於主記憶體14中之一或多個資料元件互連之指標之元資料。針對一實施例,內容管理器24維持元資料,其包含一頭位址或在連結記憶體20中用於一列表中之第一入口之位址,及一尾位址,連結記憶體20中用於儲存於連結記憶體20中之列表中之最後入口之位址。針對一實施例,如本文中所描述實施一分布式連結列表之該記憶體系統提供自該連結記憶體解除連結該主記憶體之優點。解除連結提供更有效記憶體技術及架構之使用,包含(但不限於)使用單一埠記憶體及使用具有較低時脈速率之記憶體。此提供較低成本記憶體技術及較低功率消耗之使用同時滿足一高速、高容量網路裝置之需要。
圖2繪示根據一實施例之一記憶體系統之一部分的一方塊圖。一記憶體系統之該部分包含一主記憶體200、一連結記憶體204及一內容管理器210。主記憶體200包含用於儲存資料元件之一或多個位置202a-d。一資料元件包含(但不限於)一資料封包或一資料封包之一單元。如此項技術中已知,一資料封包可分裂成複數個單元。此等位置202a-d使用使用包含此項技術中已知之技術之技術與一或多個位置202a-d之各者相關聯之位址而存取。連結記憶體204亦包含位置206a-d用於儲存元資料以產生一或多個列表。例如,處理器16經組態以將元資料寫入至位置206a-d,其與位置202a-d互連以形成入口於該列表中。該列表維持儲存於主記憶體200中之資料元件應自主記憶體200讀 取之序列之一順序。該順序可基於先入先出(FIFO)、優先權或包含用於網路裝置之此項技術中已知之標準之其他標準之一或多者。
針對一實施例,連結記憶體204經組態以儲存元資料(諸如一或多個指標),其等用以使入口互連來形成經儲存於主記憶體中之資料元件的一或多個列表。針對一實施例,經儲存於連結記憶體204中之元資料(諸如一指標)規定該列表中之下一入口之連結記憶體204內之一位置的位址。除一指標外,根據一實施例,連結記憶體204中之一位置206a-d包含另一元資料,其包含(但不限於)一序列識別符(例如一資料元件序列識別符)及在該主記憶體中用於一資料元件之一位置之一位址。一序列識別符表示資料元件及快照自記憶體讀取之順序或序列。針對一實施例,一資料元件序列識別符係基於該等資料元件在一網路裝置處接收的順序。而且,連結記憶體204經組態以儲存該位址於連結記憶體204之一位置206a-d中,用於一資料元件被儲存於其中之主記憶體200中的位置202a-d。
圖2中所繪示之實施例亦包含一內容管理器210。內容管理器210經組態以維持元資料用於一或多個列表,其中各列表包含一或多個資料元件。明確言之,內容管理器210包含經組態以儲存元資料用於一列表之頭或第一入口及該列表之尾,或最後入口之一頭入口212及一尾入口214。針對一實施例,用於頭及尾之元資料被儲存於一或多個暫存器中。然而,熟習此項技術者將理解,可使用包含本文中所描述之技術之其他記憶體技術。經儲存於頭入口212中的元資料包含在其中儲存一列表之第一入口之主記憶體200中之位置202a-d的位址。經儲存於頭入口212中之元資料亦包含至一列表中之下一入口之位置206a-d之一指標。例如,該指標係至連結記憶體204中之一位置206a-d之一位址,其係該列表中之下一入口。另外,頭入口212可包含該資料元件之一資料元件序列識別符。尾入口214包含上文所描述之類型 之元資料的一或多者,但用於一列表中之最後入口。在一列表包含僅一個資料元件的情況下,頭入口212及尾入口214將包含相同元資料。 針對一實施例,當元資料係儲存於主記憶體200中或自主記憶體200讀取時,一或多個處理器用以更新、覆寫及無效化頭入口212及尾入口214中之元資料。
圖3繪示根據一實施例之包含分布式連結列表記憶體之多個記憶體庫之一記憶體系統之一部分之一方塊圖。一記憶體系統之該部分包含一主記憶體300、一連結記憶體303及一內容管理器314。主記憶體300可係使用本文中所描述之技術來實施。該連結記憶體係由一陣列之記憶體元件(諸如記憶體庫304a-d)形成。針對一實施例,各記憶體庫304a-d係一單一埠記憶體,其提供每時脈循環之一單一存取。如圖3中所繪示,實施例包含一第一記憶體庫304a,其包含位置306a-d,一第二記憶體庫304b,其包含位置308a-d,一第三記憶體庫304c,其包含位置310a-d及一第四記憶體庫304d,其包含位置312a-d。
如上文所描述,該連結記憶體經組態以儲存元資料,其包含至對經儲存於該主記憶體中之資料元件之位置之位址之參考的指標。因為可使用至主記憶體之一位置之一指標,所以不需要主記憶體之位置與連結記憶體之位置之間之一直接關係。此提供用以使用一單獨及不同架構用於主記憶體及連結記憶體的靈活性,諸如針對主記憶體之每一記憶體庫,連結記憶體具有記憶體的多個記憶體庫。連結記憶體之多個記憶體庫的使用提供用以使用具有一單一存取埠之記憶體及/或具有較低時脈速度之記憶體的能力。如上文所描述,連結記憶體經組態以使用包含上文所描述之技術的技術來儲存用以使入口互連形成經儲存於主記憶體中之資料元件之一列表的指標。進一步言之,連結記憶體之多個記憶體庫的使用提供一架構,其可按比例來調整以支持較高容量系統。例如,使用連結記憶體之多個記憶體庫之一記憶體系統 可經設計以處理每時脈循環之至少K+1記憶體存取,其中K係每時脈循環(其可儲存於一主記憶體中)之資料元件的數目,且1係自主記憶體之讀取的數目。一記憶體系統之其他實例經組態以使用包含本文中所描述之技術之技術來支持每時脈循環之自主記憶體之一個以上讀取。
如圖3中所繪示,實施例亦包含一內容管理器314。內容管理器314包含多個尾入口及頭入口。明確言之,內容管理器314包含用於連結記憶體304a之第一記憶體庫之一第一頭入口316及一第一尾入口318、用於連結記憶體304b之第二記憶體庫之一第二頭入口320及一第二尾入口322、用於連結記憶體304c之第三記憶體庫之一第三頭入口324及一第三尾入口326及用於連結記憶體304d之第四記憶體庫之一第四頭入口328及一第四尾入口330。尾入口及頭入口之各組分別針對各記憶體庫維持元資料用於一列表之第一入口及最後入口。即,第一頭入口316維持元資料用於儲存於第一記憶體庫304a中之第一入口且第一尾入口318維持元資料用於儲存於第一記憶體庫304a中之最後入口。第二頭入口320維持元資料用於儲存於第二記憶體庫304b中之第一入口且第二尾入口322維持元資料用於儲存於第二記憶體庫304b中之一列表之最後入口。第三頭入口324維持元資料用於儲存於第三記憶體庫304c中之一列表之第一入口且第三尾入口326維持元資料用於儲存於第三記憶體庫304c中之該列表之最後入口。第四頭入口328維持元資料用於儲存於第四記憶體庫304d中之一列表之第一入口且第四尾入口330維持元資料用於儲存於第四記憶體庫304d中之該列表之最後入口。各頭入口及尾入口經組態以儲存包含本文中所描述之元資料之元資料。各記憶體庫304a-d之列表一起用以產生一完整列表,其使儲存於主記憶體300中之資料元件互連。
針對一實施例,一處理器經組態以指派一資料元件序列識別符 至接收於一埠上之各資料元件。該資料元件序列識別符經指派至各資料元件以指示各資料元件被接收的順序。該資料元件序列識別符作為元資料而儲存於連結記憶體之位置中,如本文中所描述。另外,若儲存於主記憶體中之對應資料元件係一記憶體庫中之一列表之頭或一記憶體庫中之一列表之一尾,則資料元件序列識別符儲存於一頭入口及尾入口中。
針對包含連結記憶體之多個記憶體庫之一實施例(諸如,圖3中所繪示之實施例),記憶體系統經組態以藉由比較經指派至資料封包之資料元件序列識別符而判定一列表中之下一元素。經組態以判定下一元素之一記憶體系統包含經組態以讀取經儲存用於連結記憶體303中之各記憶體庫304a-d之頭入口316、320、324及328之一處理器。該處理器比較儲存於頭入口316、320、324及328之全部中之資料元件序列識別符來判定該等資料元件之哪一者係一列表中之下一者。針對一實施例,最低資料元件序列識別符係經指派使得最低數值可用以判定一列表中之下一資料元件之一數值;然而,系統不受限於使用最低資料元件序列識別符作為一指示器。根據一實施例,一資料元件序列識別符一旦到達網路裝置後即經指派為一資料元件。一旦處理器判定列表中之下一資料元件,則該處理器經組態以擷取資料元件儲存於其中之主記憶體位置302a-d之位址。針對一實施例,一處理器經組態以自具有最低資料元件序列識別符之頭入口316、320、324及328擷取位址。 一處理器進一步經組態以使用經擷取位址來讀取出自主記憶體之資料元件。
針對一實施例,一處理器經組態以更新出自主記憶體之儲存於頭入口中之一資料元件之元資料。該處理器經組態以使用儲存列表中之下一入口用於記憶體庫304a-d的連結記憶體303中之位置之位址。一處理器亦經組態以當添加一新的入口至該列表用於記憶體庫304a-d 時回應於儲存於主記憶體300中之一新的資料元件而更新一尾入口318、322、326及330用於一記憶體庫304a-d。
如上文所描述,一自由入口管理器用以產生一可用記憶體庫組用於儲存入口於連結記憶體中。針對包含記憶體之多個記憶體庫之一實施例(例如,圖3中所繪示之實施例),該自由入口管理器經組態以產生一可用記憶體庫組,其包含該等記憶體庫之各者中之一或多個位置,使得一存取衝突將不發生。若需要至一記憶體庫之一讀取或寫入存取超過連結記憶體之一記憶體庫之容量,則一存取衝突將發生。例如,包含具有一單一存取埠之記憶體庫之一連結記憶體將受限於每時脈循環之一個讀取或寫入。因此,在使用具有一單一存取埠之記憶體庫之一實施例中,一自由入口管理器將經組態以自可用記憶體庫組排除經排程用於一時脈循環中之一讀取或寫入之一記憶體庫之位置。
根據一實施例,一自由入口管理器經組態以基於下列標準之一或多者而產生一可用記憶體庫組,包含(但不限於):1)一位置不由另一資料元件使用;2)含有至一列表之一入口之一記憶體庫不藉由一讀取操作存取;及3)含有一連結入口之一記憶體庫不經存取用於連結操作。連結操作包含(但不限於)寫入用以更新元資料之存取,讀取用以更新一頭入口或尾入口之存取,寫入用以包含元資料用於至一列表之一新的入口之存取、用以無效化一列表中之一入口之存取或至連結記憶體中之位置之其他存取。一自由入口管理器亦可經組態以判定用於包含一個以上單一存取埠之記憶體庫之讀取/寫入存取可用性。一自由入口管理器經組態以基於此項技術中已知之技術判定一記憶體庫之可用性,包含(但不限於)一請求位元/旗標組、經啟動之一請求匯流排線、一排程協定或至一記憶體庫之存取經排程或依其他方式保留之其他指示器。
圖4繪示根據一實施例之用於實施一分布式連結列表之一方法的 一流程圖。該方法包含儲存一或多個資料元件402。例如,儲存一或多個資料元件於一主記憶體中包含使用包含本文中所描述之技術之技術。進一步言之,該方法包含維持一或多個指標來使一或多個資料元件互連404。例如,維持一或多個指標以使該一或多個資料元件互連包含使用如本文中所描述之技術來儲存並更新指標及其他元資料。該方法亦包含分配一或多個入口於一連結記憶體中406。例如,分配一或多個入口於一連結記憶體中包含自位置之一可用記憶體庫組選擇一位置且使用包含本文中所描述之技術之技術來設定用以參考該位置之位址之一指標。而且,該方法包含維持元資料以形成該一或多個資料元件之一列表408。例如,維持元資料以形成該一或多個資料元件之一列表包含使用包含本文中所描述之技術之技術來儲存並更新頭入口及尾入口。
圖5繪示根據一實施例之用於使用一分布式連結列表來儲存一資料元件之一方法的一流程圖。該方法包含接收一資料元件502。該方法亦包含儲存一資料元件504。儲存一資料元件包含使用包含本文中所描述之技術之技術。進一步言之,該方法包含在記憶體中產生位置之一可用記憶體庫組用於儲存指標506。產生位置之一可用記憶體庫組用於儲存指標包含使用包含本文中所描述之技術之技術。該方法亦包含分配一自由位置於記憶體中508。例如,分配一自由位置於記憶體中包含自位置之一可用記憶體庫組選擇一位置且設定一指標以參考該位置之位址。另外,該方法包含將元資料寫入記憶體中之自由位置中510。將元資料寫入記憶體中之自由位置中包含使用包含本文中所描述之技術之技術。該方法亦包含更新一尾入口及可選擇地一頭入口512。例如,當產生一新的列表(排隊/連結)或自記憶體讀取一列表中之第一入口(出隊/未連結)時,該方法更新一頭入口。例如,當添加一新的入口至該列表(排隊/連結)或自記憶體讀取最後入口(出隊/未連結) 時,該方法更新一尾入口。更新一頭入口及/或一尾入口包含使用包含本文中所描述之技術之技術。
圖6繪示根據一實施例之用於使用一分布式連結列表來讀取一資料元件的一流程圖。該方法包含接收一讀取請求用於一資料元件602。進一步言之,該方法包含判定一列表之下一資料元件604。例如,判定一列表之下一資料元件包含使用包含本文中所描述之技術之技術來使用一或多個頭入口。該方法亦包含擷取位置用於列表之下一資料元件606。例如,擷取位置用於列表之下一資料元件包含使用包含本文中所描述之技術之技術自頭入口讀取下一元件之記憶體中之位置之位址。而且,該方法包含基於經擷取位置自記憶體讀取下一資料元件608。基於經擷取位置自記憶體讀取下一資料元件包含使用諸如本文中所描述之技術之技術。該方法亦包含更新一頭入口及可選地更新一尾入口610。例如,當產生一新的列表或自記憶體讀取一列表中之第一入口時,該方法更新一頭入口。例如,當添加一新的入口至列表或自記憶體讀取最後入口時,該方法更新一尾入口。更新一頭入口及/或一尾入口包含使用包含本文中所描述之技術之技術。
圖7繪示根據一實施例之包含實施一階層分布式連結列表之一記憶體系統之一網路裝置的一方塊圖。該記憶體系統經組態以藉由使用包含本文中所描述之技術之技術產生列表而使資料元件互連。進一步言之,實施一階層分布式連結列表之該記憶體系統經組態以基於用以維持列表之資料元件之列表元資料而產生一或多個快照。維持列表元資料包含使用包含本文中所描述之技術之技術來產生、儲存及更新列表元資料。該記憶體系統經組態以維持連結列表元資料以使複數個快照互連。針對一實施例,維持連結列表元資料包含使用包含本文中所描述之技術之技術而產生、儲存並更新連結列表元資料。
針對一實施例,實施一階層分布式連結列表之該記憶體系統經 組態以儲存經分裂成複數個單元之多個資料封包,其中各單元接著被傳輸且接收於一網路裝置710處。該記憶體系統經組態以當使用一子分布式連結列表726來接收單元時,接收一資料封包之單元且使一資料封包之單元互連。子分布式連結列表726經組態以使用關於實施一分布式連結列表並產生資料元件之列表之本文中所描述的技術來產生一資料封包之一列表的單元。由子分布式連結列表726產生之列表的單元維持資料封包之單元的順序,以便使用一子連結記憶體730、一子自由入口管理器732及一子內容管理器734在一網路裝置處接收該等單元。子連結記憶體730經組態以使用關於實施一連結記憶體之本文中所描述的技術來維持元資料,以使經儲存於主記憶體714中的資料元件互連。子自由入口管理器732經組態以使用包含關於實施一自由入口管理器之本文中所描述之技術的技術來產生位置之一子可用記憶體庫組於子連結記憶體730中。子內容管理器734經組態以使用包含關於實施一自由入口管理器之本文中所描述之技術的技術來維持包含指標的元資料,該等指標使經儲存於主記憶體714中的一或多個資料元件互連。
進一步言之,根據一實施例,實施一階層分布式連結列表之一記憶體系統包含一母分布式連結列表718。母分布式連結列表718經組態以基於由一子分布式連結列表726產生之一列表的資料元件來產生一快照。母分布式連結列表718亦經組態以維持連結列表元資料以使多個快照互連。藉由使快照互連,例如,一母分布式連結列表718經組態以維持資料封包之順序,以便該資料封包接收於一網路裝置處,諸如基於經接收用於一資料封包之最後單元的順序。另外,一母分布式連結列表718經組態以藉由使快照互連來形成一佇列之資料封包。 可基於目的位址、網路政策、通信量調整及/或包含此項技術中已知之技術的技術來形成一佇列,用於排序資料封包。使用一子分布式連 結列表726以產生一列表之單元用於經接收之每一資料封包,且使用一母分布式連結列表718以維持連結列表元資料,以產生快照以使一資料封包之一或多個列表之單元互連,實施一階層分布式連結列表之該記憶體系統經組態以維持該等單元用於經接收之各資料封包,且維持經接收之各資料封包的順序,使得可自記憶體系統擷取各資料封包,而基於經接收之順序及/或封包放置於一佇列中之順序來出埠。
明確言之,圖7繪示包含複數個輸入/輸出埠712之一網路裝置710。使用包含此項技術中已知之技術的技術而透過埠712接收並傳輸資料封包。埠712與一主記憶體714耦合。一主記憶體可包含記憶體技術,包含(但不限於)動態隨機存取記憶體(「DRAM」)、靜態隨機存取記憶體(「SRAM」)、快閃記憶體及用以儲存資料之包含此項技術中已知之技術的其他技術。
主記憶體714耦合一或多個處理器716。一處理器716包含(但不限於)一中央處理單元(「CPU」)、一控制器、一專用積體電路(「ASIC」)、場可程式化閘陣列(「FPGA」)或其他類型之控制單元。一或多個處理器716經組態以使用包含此項技術中已知之技術的技術來管理至主記憶體714的存取。例如,一或多個處理器716經組態以判定用以儲存經接收於一或多個埠712上之資料之一位置。一或多個處理器716亦經組態以當經儲存於主記憶體714中之資料待傳輸於一或多個埠712上時讀取該資料。進一步言之,一或多個處理器716經組態以使用包含此項技術中已知之技術的技術來覆寫、更新及無效化記憶體位置。
進一步言之,圖7中所繪示之實施例包含一母分布式連結列表718。母分布式連結列表718係與一或多個處理器716耦合。進一步言之,母分布式連結列表718包含一母連結記憶體720、一母自由入口管理器722、一母內容管理器724及母快照記憶體725。母連結記憶體720 經組態以維持連結列表元資料,以使基於用以使經儲存於主記憶體714中之資料元件互連的列表元資料來產生的複數個快照互連。例如,母連結記憶體720經組態以儲存包含一或多個指標之連結列表元資料,該一或多個指標參考經儲存於一母快照記憶體725中之至少一快照。母連結記憶體720可包含如本文中所描述之記憶體技術之一或多者。母連結記憶體720包含複數個位置用於儲存資訊。該複數個位置之各者具有用以存取儲存於該位置中之資料之一位址。針對一實施例,母連結記憶體720包含複數個記憶體庫,其中該等記憶體庫之各者包含複數個位置,且各位置具有用以存取資料之一位址。一母連結記憶體720亦可包含一單一記憶體庫。
根據圖7中所繪示之一母分布式連結列表718亦包含一母自由入口管理器722。自由入口管理器722經組態以產生母連結記憶體720中之位置之一母可用記憶體庫組。該母可用記憶體庫組係母連結記憶體720中之一群組之一或多個位址,其等不使用或不經分配使用。針對一實施例,該一或多個位址常駐於母連結記憶體720之不同記憶體庫中。例如,母自由入口管理器722經組態以維持一列表之位址用於母連結記憶體720中之位置,其等不用於儲存或不經分配用於儲存連結列表元資料用於使當前儲存於一母快照記憶體725中之快照互連作為一母可用記憶體庫組。針對一實施例,一母自由入口管理器722使用包含此項技術中已知之技術之一或多個記憶體技術用於儲存一母可用記憶體庫組。針對一實施例,一或多個處理器716經組態以當一連結記憶體位址經使用或經分配以儲存連結列表元資料以使儲存於一母內容管理器724中之快照互連時,自母自由入口管理器722移除一母連結記憶體位址。進一步言之,一或多個處理器716經組態以在一連接記憶體位址不再使用或分配之後,添加該母連結記憶體位址至母自由入口管理器722。例如,一旦與一快照相關聯之一資料元件或資料封包 自主記憶體714讀取,則一或多個處理器716經組態以解除分配或無效化與該快照相關聯之母連結記憶體720之一位置,其包含將該位置之位址寫入於母自由入口管理器722中。
根據圖7中所繪示之實施例,母分布式連結列表718包含一母內容管理器724。母內容管理器724經組態以維持包含一或多個指標之快照列表元資料,該一或多個指標使儲存於母快照記憶體725中之一或多個快照互連以產生一列表之快照。維持快照列表元資料包含使用包含本文中所描述之技術之技術來產生、儲存並更新快照列表元資料。 母快照記憶體725包含如本文中所描述之該等記憶體技術之一或多者。與維持於母快照記憶體725中之一列表之資料元件相關聯之列表元資料係一快照。針對一實施例,母內容管理器724維持包含一頭位址(母快照記憶體725中用於一列表之快照中之第一入口之位址)及一尾位址(母快照記憶體725中用於該列表之快照中之最後入口之位址)之快照列表元資料。實施如本文中所描述之一階層分布式連結列表之一記憶體系統之實施例提供使主記憶體與連結記憶體斷開連結之優點。解除連結提供更有效記憶體技術及架構之使用,包含(但不限於)使用單一埠記憶體及使用具有較低時脈速率之記憶體。此提供較低成本記憶體技術及較低功率消耗之使用同時滿足一高速、高容量網路裝置之需要。
針對一實施例,該記憶體系統經組態以回應於接收一列表之最後資料元件而儲存維持於子內容管理器734中之列表元資料作為母快照記憶體725中之一快照。該記憶體系統亦可經組態以回應於接收一第二列表之一資料元件而儲存維持於子內容管理器734中之列表元資料作為母快照記憶體725中之一快照。例如,若子內容管理器734當前正儲存列表元資料用於一第一列表之資料元件(諸如與一第一資料封包相關聯之資料元件)且在網路裝置處接收一資料元件用於一第二列 表之資料元件(諸如與一第二資料封包相關聯之資料元件),則該記憶體系統經組態以儲存用於第一列表之列表元資料作為母快照記憶體725中之一第一快照。該記憶體系統經組態以自母快照記憶體725擷取該第一快照且儲存來自子內容管理器734之該列表元資料以更新列表元資料用於第一列表。
該記憶體系統亦經組態以自母快照記憶體725擷取一快照且回應於用以傳輸一資料元件或資料封包之一請求而將該快照之列表元資料儲存於子內容管理器734中。該記憶體系統經組態以更新母內容管理器724及母連結記憶體720中之連結列表元資料且(例如)一旦將該快照之列表元資料儲存於子內容管理器734中後即回應於用以傳輸一資料元件或資料封包之一請求而解除分配該母快照記憶體中之一位置。針對一實施例,處理器/控制器716經組態以使用包含此項技術中已知之技術之技術來擷取一快照,儲存連結列表元資料,更新連結列表元資料及其他元資料。
圖8繪示根據一實施例之包含母連結記憶體之多個記憶體庫之一母分布式連結列表之一部分的一方塊圖。該母分布式連結列表之該部分包含一母快照記憶體800、一母連結記憶體803及一母內容管理器814。母快照記憶體800可使用本文中所描述之技術實施。母連結記憶體803由一陣列之記憶體元件形成,諸如記憶體庫804a-d。針對一實施例,各記憶體庫804a-d係一單一埠記憶體,其提供每時脈循環之一單一存取。如圖8中所繪示,該實施例包含一第一記憶體庫804a,其包含位置806a-d,一第二記憶體庫804b,其包含位置808a-d,一第三記憶體庫804c,其包含位置810a-d及一第四記憶體庫804d,其包含位置812a-d。
如圖8中所繪示,實施例亦包含一母內容管理器814。母內容管理器814包含多個尾入口及頭入口。明確言之,母內容管理器814包含 用於母連結記憶體804a之第一記憶體庫之一第一頭入口816及一第一尾入口818、用於母連結記憶體804b之第二記憶體庫之一第二頭入口820及一第二尾入口822、用於母連結記憶體804c之第三記憶體庫之一第三頭入口824及一第三尾入口826及用於母連結記憶體804d之第四記憶體庫之一第四頭入口828及一第四尾入口830。尾入口及頭入口之各組分別針對母連結記憶體803之各記憶體庫維持快照列表元資料用於一列表之快照之第一入口及最後入口。即,第一頭入口816維持快照元資料用於儲存於第一記憶體庫804a中之第一入口且第一尾入口818維持快照元資料用於儲存於第一記憶體庫804a中之最後入口。第二頭入口820維持快照元資料用於儲存於第二記憶體庫804b中之第一入口且第二尾入口822維持快照元資料用於儲存於第二記憶體庫804b中之最後入口。第三頭入口824維持快照元資料用於儲存於第三記憶體庫804c中之一列表之快照之第一入口且第三尾入口826維持快照元資料用於儲存於第三記憶體庫804c中之該列表之快照之最後入口。第四頭入口828維持快照元資料用於儲存於第四記憶體庫804d中之一列表之快照之第一入口且第四尾入口830維持快照元資料用於儲存於第四記憶體庫804d中之該列表之快照之最後入口。各頭入口及尾入口經組態以儲存包含本文中所描述之元資料之快照列表元資料。各記憶體庫804a-d之列表之快照一起用以產生一完整快照列表,其使儲存於母快照記憶體800中之快照之一或多者互連。
針對一實施例,一處理器經組態以指派一快照序列識別符至各快照。該快照序列識別符指示在網路裝置處依其接收各快照之順序。 例如,在經接收用於快照之最後資料元件到達後即指派一快照序列識別符。該快照序列識別符作為連結列表元資料而儲存於母連結記憶體803之位置中,如本文中所描述。另外,若儲存於母快照記憶體800中之對應快照係一記憶體庫中之一列表之快照之頭或一記憶體庫中之一 列表之快照之一尾,則快照序列識別符儲存於一頭入口及可選地尾入口中。
針對包含母連結記憶體803之多個記憶體庫之一實施例(諸如,圖8中所繪示之實施例),記憶體系統經組態以藉由比較經指派至快照之快照序列識別符而判定一列表之快照中之下一快照。經組態以判定下一快照之一記憶體系統包含經組態以讀取經儲存用於母內容管理器814中之各記憶體庫804a-d之頭入口816、820、824及828之一處理器。該處理器比較儲存於頭入口816、820、824及828之全部中之快照序列識別符來判定該等快照之哪一者係一列表之快照中之下一者。針對一實施例,最低快照序列識別符係經指派使得最低數值可用以判定一列表中之下一資料元件之一數值;然而,系統不受限於使用最低快照序列識別符作為一指示器。根據一實施例,一快照序列識別符一旦到達網路裝置後即經指派為一資料元件。一旦處理器判定列表中之下一快照,則該處理器經組態以擷取快照儲存於其中之母快照記憶體802a-d之位址。針對一實施例,一處理器經組態以自具有最低快照序列識別符之頭入口816、820、824及828擷取位址。一處理器進一步經組態以使用包含本文中所描述之技術之技術來使用經擷取位址來讀取出自母快照記憶體800之資料元件且儲存該快照於一子內容管理器中。
針對一實施例,一處理器經組態以更新出自母快照記憶體800之儲存於母內容管理器814之頭入口中之一快照之連結列表元資料。該處理器經組態以使用儲存列表之快照中之下一入口用於記憶體庫804a-d的母連結記憶體803中之位置之位址。一處理器亦經組態以當添加一新的快照至該列表之快照用於記憶體庫804a-d時(例如)回應於儲存於母快照記憶體800中之一新的快照而更新一尾入口818、822、826及830用於一記憶體庫804a-d。
如上文所描述,一母自由入口管理器用以產生一母可用記憶體庫組用於儲存入口於母連結記憶體803中。針對包含記憶體之多個記憶體庫之一實施例(例如,圖8中所繪示之實施例),該母自由入口管理器經組態以產生一母可用記憶體庫組,其包含該等記憶體庫之各者中之一或多個位置,使得一存取衝突將不發生。若需要至一記憶體庫之一讀取或寫入存取超過母連結記憶體之一記憶體庫之容量,則一存取衝突將發生。例如,包含具有一單一存取埠之記憶體庫之一母連結記憶體將受限於每時脈循環之一個讀取或寫入。因此,在使用具有一單一存取埠之記憶體庫之一實施例中,一母自由入口管理器將經組態以自母可用記憶體庫組排除經排程用於一時脈循環中之一讀取或寫入之一記憶體庫之位置。
根據一實施例,一母自由入口管理器經組態以基於下列標準之一或多者而產生一母可用記憶體庫組,包含(但不限於):1)一位置不由另一資料元件使用;2)含有至一列表之一入口之一記憶體庫不藉由一讀取操作存取;及3)含有一連結入口之一記憶體庫不經存取用於連結操作。連結操作包含(但不限於)寫入用以更新連結列表元資料之存取,讀取用以更新一頭入口或尾入口之存取,寫入用以包含連結列表元資料用於至一列表之一新的入口之存取、用以無效化一列表之快照中之一入口之存取或至母連結記憶體中之位置之其他存取。一母自由入口管理器亦可經組態以判定用於庫之讀取/寫入存取可用性,包含一個以上單一存取埠。一母自由入口管理器經組態以基於此項技術中已知之技術判定一記憶體庫之可用性,包含(但不限於)一請求位元/旗標組、經啟動之一請求匯流排線、一排程協定或至一記憶體庫之存取經排程或依其他方式保留之其他指示器。
圖9繪示根據一實施例之用於實施一階層分布式連結列表之一方法的一流程圖。該方法包含使用包含本文中所描述之技術之技術來儲 存一或多個資料元件(902)。該方法亦包含使用包含本文中所描述之技術之技術來維持列表元資料以使該一或多個資料元件互連(904)。 進一步言之,該方法包含使用包含本文中所描述之技術之技術基於該列表元資料而產生至少一第一快照(906)。該方法包含使用本文中所描述之技術之技術來分配一或多個位置於一記憶體中(908)。另外,該方法可選地包含使用包含本文中所描述之技術之技術來維持連結列表元資料以使該第一快照與至少一第二快照互連(910)。而且,該方法可選地包含使用包含本文中所描述之技術之技術基於該列表元資料而判定該資料元件列表之一下一資料元件(912)。該方法可選地包含基於該連結列表元資料而判定該第二快照之一記憶體中之一位置914。
可使用一半導體晶片、ASIC、FPGA之一或多者及使用離散組件實施本文中所描述之實施例。而且,該記憶體系統之元件可作為一或多個核心而實施於一半導體晶片上,諸如一單晶片系統(「SoC」)。 亦可對一機器實施本文中所描述之實施例,諸如一網路裝置及一或多個電腦系統,包含一程式儲存裝置。該程式儲存裝置包含(但不限於)大型儲存件之任何者之一或多者,其遠距於該機器、隨機存取記憶體、非揮發性記憶體、磁儲存碟或光儲存碟及其他電腦可讀取儲存媒體。
在上述說明書中,已描述本發明之特定例示性實施例。然而,應明白,可對特定例示性實施例做各種修改及改變。因此,本說明書及圖式應被視為一闡釋性含義而非一限制性含義。
10:網路裝置
12:輸入/輸出埠
14:主記憶體
16:處理器
18:分布式連結列表
20:連結記憶體
22:自由入口管理器
24:內容管理器

Claims (21)

  1. 一種用於一網路裝置之記憶體系統,其包括:一主記憶體,其經組態以儲存資料元件;一連結記憶體,其包含複數個記憶體庫,該等記憶體庫之各者經組態以儲存複數個節點,該複數個節點之每一者儲存(i)一個別資料元件指標至該主記憶體,用於存取藉由該個別資料元件指標所參考之一個別資料元件,及(ii)一個別序列識別符,用於判定用於存取該複數個記憶體庫之一順序,其中在該複數個記憶體庫中之該等資料元件指標指向儲存於該主記憶體中之該等資料元件以形成表示一資料封包之資料元件之一列表;一自由入口管理器,其經組態以產生包含該連結記憶體中之一或多個位置之一可用記憶體庫組;及一內容管理器,其經組態以維持用於形成資料元件之該列表之元資料,該內容管理器包含對應於該複數個記憶體庫之複數個頭入口,其中該複數個頭入口之每一頭入口經組態以儲存(i)一個別連結記憶體指標,其指向該連結記憶體之該個別記憶體庫中之一個別節點,及(ii)針對該個別節點之該個別序列識別符;一處理器,其經組態以使用在該內容管理器中之該等頭入口,而基於儲存於該複數個頭入口之每一頭入口中之該個別序列識別符來判定用於存取該複數個記憶體庫之該順序;及基於該經判定之順序存取該複數個記憶體庫而重建該資料封包。
  2. 如請求項1之記憶體系統,其中該自由入口管理器經組態以產生 包含該一或多個位置之該可用記憶體庫組,使得對該連結記憶體之一寫入操作不與一讀取操作衝突。
  3. 如請求項1之記憶體系統,其中該等資料元件之一資料元件係該資料封包之一單元。
  4. 如請求項1之記憶體系統,其中該序列識別符界定資料元件之一序列。
  5. 如請求項4之記憶體系統,其中該內容管理器經組態以維持用於形成該等資料元件之該序列之元資料。
  6. 如請求項5之記憶體系統,其中該內容管理器包含對應於該複數個記憶體庫之複數個尾入口,該複數個尾入口之每一尾入口經組態以儲存一連結記憶體指標,其指向對應於在該個別記憶體庫中之一最後儲存節點之在該個別記憶體庫中之一個別節點。
  7. 如請求項1之記憶體系統,其中基於儲存於該複數個頭入口之每一頭入口中之該個別序列識別符來判定用於存取該複數個記憶體庫之該順序包括:比較在該複數個頭入口中之該等序列識別符以判定該等序列識別符之一順序;及基於該等序列識別符之該順序來判定用於存取該複數個記憶體庫之該順序。
  8. 一種網路裝置,其包括:複數個輸入/輸出埠,其經組態以接收及傳輸資料封包;一主記憶體,其耦合至該複數個輸入/輸出埠且經組態以儲存對應於該等資料封包之資料元件;一連結記憶體,其包含複數個記憶體庫,該等記憶體庫之各者經組態以儲存複數個節點,該複數個節點之每一者儲存(i)一個別資料元件指標至該主記憶體,用於存取藉由該個別資料元 件指標所參考之一個別資料元件,及(ii)一個別序列識別符,用於判定用於存取該複數個記憶體庫之一順序,其中在該複數個記憶體庫中之該等資料元件指標指向儲存於該主記憶體中之該等資料元件以形成表示一資料封包之資料元件之一列表;一自由入口管理器,其經組態以產生包含該連結記憶體中之一或多個位置之一可用記憶體庫組;及一內容管理器,其經組態以維持用於形成資料元件之該列表之元資料,該內容管理器包含對應於該複數個記憶體庫之複數個頭入口,其中該複數個頭入口之每一頭入口經組態以儲存(i)一個別連結記憶體指標,其指向該連結記憶體之該個別記憶體庫中之一個別節點,及(ii)針對該個別節點之該個別序列識別符;一處理器,其經組態以使用在該內容管理器中之該等頭入口,而基於儲存於該複數個頭入口之每一頭入口中之該個別序列識別符來判定用於存取該複數個記憶體庫之該順序;及基於該經判定之順序存取該複數個記憶體庫而重建該資料封包。
  9. 如請求項8之網路裝置,其中該自由入口管理器經組態以產生包含該一或多個位置之該可用記憶體庫組,使得對該連結記憶體之一寫入操作不與一讀取操作衝突。
  10. 如請求項8之網路裝置,其中該等資料元件之一資料元件係該資料封包之一單元。
  11. 如請求項8之網路裝置,其中該等資料元件形成資料元件之一序列。
  12. 如請求項11之網路裝置,其中該內容管理器經組態以維持用於形 成該等資料元件之該序列之元資料。
  13. 如請求項12之網路裝置,其中該內容管理器包含對應於該複數個記憶體庫之複數個尾入口,該複數個尾入口之每一尾入口經組態以儲存一連結記憶體指標,其指向對應於在該個別記憶體庫中之一最後儲存節點之在該個別記憶體庫中之一個別節點。
  14. 如請求項8之網路裝置,其中基於儲存於該複數個頭入口之每一頭入口中之該個別序列識別符來判定用於存取該複數個記憶體庫之該順序包括:比較在該複數個頭入口中之該等序列識別符以判定該等序列識別符之一順序;及基於該等序列識別符之該順序來判定用於存取該複數個記憶體庫之該順序。
  15. 一種用於操作一網路裝置之一記憶體系統之方法,該方法包括:儲存資料元件於一主記憶體中;於包含複數個記憶體庫之一連結記憶體之每一記憶體庫中儲存複數個節點,該複數個節點之各者儲存(i)一個別資料元件指標至該主記憶體,用於存取藉由該個別資料元件指標所參考之一個別資料元件,及(ii)一個別序列識別符,用於判定用於存取該複數個記憶體庫之一順序,其中在該複數個記憶體庫中之該等資料元件指標指向儲存於該主記憶體中之該等資料元件以形成表示一資料封包之資料元件之一列表;藉由一自由入口管理器產生包含該連結記憶體中之一或多個位置之一可用記憶體庫組;於包含對應於該複數個記憶體庫的複數個頭入口之一內容管理器之每一頭入口中儲存用於形成資料元件之該列表之元資 料,該元資料包含(i)一個別連結記憶體指標,其指向該連結記憶體之該個別記憶體庫中之一個別節點,及(ii)針對該個別節點之該個別序列識別符;及使用在該內容管理器中之該等頭入口,以基於儲存於該複數個頭入口之每一頭入口中之該個別序列識別符來判定用於存取該複數個記憶體庫之該順序;及基於該經判定之順序存取該複數個記憶體庫而重建該資料封包。
  16. 如請求項15之方法,其中產生該可用記憶體庫組包括產生包含該一或多個位置之該可用記憶體庫組,使得對該連結記憶體之一寫入操作不與一讀取操作衝突。
  17. 如請求項15之方法,其中該等資料元件之一資料元件係該資料封包之一單元。
  18. 如請求項15之方法,其中該等資料元件形成資料元件之一序列。
  19. 如請求項18之方法,其中該內容管理器經組態以維持用於形成該等資料元件之該序列之元資料。
  20. 如請求項19之方法,其中該內容管理器包含對應於該複數個記憶體庫之複數個尾入口,且其中該方法包括儲存一連結記憶體指標於該複數個尾入口之每一尾入口中,該連結記憶體指標指向對應於在該個別記憶體庫中之一最後儲存節點之在該個別記憶體庫中之一個別節點。
  21. 如請求項15之方法,其中基於儲存於該複數個頭入口之每一頭入口中之該個別序列識別符來判定用於存取該複數個記憶體庫之該順序包括:比較在該複數個頭入口中之該等序列識別符以判定該等序列 識別符之一順序;及基於該等序列識別符之該順序來判定用於存取該複數個記憶體庫之該順序。
TW105122270A 2015-07-15 2016-07-14 記憶體系統及在網路裝置中實施該記憶體系統之方法,以及網路裝置 TWI696070B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/800,649 2015-07-15
US14/800,649 US20170017567A1 (en) 2015-07-15 2015-07-15 System And Method For Implementing Distributed-Linked Lists For Network Devices

Publications (2)

Publication Number Publication Date
TW201717017A TW201717017A (zh) 2017-05-16
TWI696070B true TWI696070B (zh) 2020-06-11

Family

ID=57758342

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105122270A TWI696070B (zh) 2015-07-15 2016-07-14 記憶體系統及在網路裝置中實施該記憶體系統之方法,以及網路裝置

Country Status (4)

Country Link
US (2) US20170017567A1 (zh)
CN (1) CN108139767B (zh)
TW (1) TWI696070B (zh)
WO (1) WO2017011654A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170017420A1 (en) 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Enabling High Read Rates To Data Element Lists
EP3312727B1 (en) * 2016-03-02 2018-11-14 Huawei Technologies Co., Ltd. Differential data backup method and device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5093910A (en) * 1986-10-29 1992-03-03 United Technologies Corporation Serial data transmission between redundant channels
TW201342243A (zh) * 2011-12-16 2013-10-16 Nvidia Corp 處理系統中動態產生任務的傳訊、排序和執行
US20140059311A1 (en) * 2012-08-21 2014-02-27 International Business Machines Corporation Data Backup or Restore Using Main Memory and Non-Volatile Storage Media
US20140281119A1 (en) * 2013-03-14 2014-09-18 Fusion-Io, Inc. Managing Configuration Parameters for a Non-Volatile Medium

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6493347B2 (en) 1996-12-16 2002-12-10 Juniper Networks, Inc. Memory organization in a switching device
US6032207A (en) 1996-12-23 2000-02-29 Bull Hn Information Systems Inc. Search mechanism for a queue system
US6117185A (en) 1997-09-24 2000-09-12 International Business Machines Corporation Skip list data storage during compilation
US6178133B1 (en) 1999-03-01 2001-01-23 Micron Technology, Inc. Method and system for accessing rows in multiple memory banks within an integrated circuit
US7406214B2 (en) * 1999-05-19 2008-07-29 Digimarc Corporation Methods and devices employing optical sensors and/or steganography
US7627870B1 (en) 2001-04-28 2009-12-01 Cisco Technology, Inc. Method and apparatus for a data structure comprising a hierarchy of queues or linked list data structures
US6892378B2 (en) 2001-09-17 2005-05-10 Hewlett-Packard Development Company, L.P. Method to detect unbounded growth of linked lists in a running application
US6754735B2 (en) 2001-12-21 2004-06-22 Agere Systems Inc. Single descriptor scatter gather data transfer to or from a host processor
US20030196024A1 (en) 2002-04-16 2003-10-16 Exanet, Inc. Apparatus and method for a skip-list based cache
US6829617B2 (en) 2002-02-15 2004-12-07 International Business Machines Corporation Providing a snapshot of a subset of a file system
US7733888B2 (en) 2002-06-04 2010-06-08 Alcatel-Lucent Usa Inc. Pointer allocation by prime numbers
US7349382B2 (en) 2002-08-10 2008-03-25 Cisco Technology, Inc. Reverse path forwarding protection of packets using automated population of access control lists based on a forwarding information base
US7930426B1 (en) 2003-04-01 2011-04-19 Cisco Technology, Inc. Method for tracking transmission status of data to entities such as peers in a network
US8566292B2 (en) 2003-04-14 2013-10-22 Schneider Electric It Corporation Method and system for journaling and accessing sensor and configuration data
CA2426619A1 (en) 2003-04-25 2004-10-25 Ibm Canada Limited - Ibm Canada Limitee Defensive heap memory management
US7827375B2 (en) 2003-04-30 2010-11-02 International Business Machines Corporation Defensive heap memory management
US7111136B2 (en) 2003-06-26 2006-09-19 Hitachi, Ltd. Method and apparatus for backup and recovery system using storage based journaling
US7321951B2 (en) 2003-11-17 2008-01-22 Micron Technology, Inc. Method for testing flash memory power loss recovery
US7865364B2 (en) 2005-05-05 2011-01-04 Nuance Communications, Inc. Avoiding repeated misunderstandings in spoken dialog system
JP2006332927A (ja) 2005-05-25 2006-12-07 Seiko Epson Corp Tcp/ip受信処理回路及びそれを具備する半導体集積回路
US7831624B2 (en) 2005-06-24 2010-11-09 Seagate Technology Llc Skip list with address related table structure
US20070198979A1 (en) 2006-02-22 2007-08-23 David Dice Methods and apparatus to implement parallel transactions
US7899958B2 (en) 2006-12-21 2011-03-01 Unisys Corporation Input/output completion system and method for a data processing platform
US8600953B1 (en) 2007-06-08 2013-12-03 Symantec Corporation Verification of metadata integrity for inode-based backups
US20090006804A1 (en) 2007-06-29 2009-01-01 Seagate Technology Llc Bi-level map structure for sparse allocation of virtual storage
US7793146B1 (en) 2007-08-07 2010-09-07 Panasas, Inc. Methods for storing data in a data storage system where a RAID-X format or formats are implemented at a file level
US8375062B2 (en) 2007-11-19 2013-02-12 Oracle America, Inc. Simple optimistic skiplist
NO327653B1 (no) 2007-12-20 2009-09-07 Fast Search & Transfer As Fremgangsmate for dynamisk oppdatering av en indeks og en sokemotor som implementerer samme
EP2248027A4 (en) 2008-02-29 2011-05-18 Toshiba Kk STORAGE SYSTEM
US8458380B2 (en) * 2008-03-26 2013-06-04 Qualcomm Incorporated Off-line task list architecture utilizing tightly coupled memory system
US8126927B1 (en) 2008-06-06 2012-02-28 Amdocs Software Systems Limited Data structure, method, and computer program for providing a linked list in a first dimension and a plurality of linked lists in a second dimension
CA2731954C (en) 2008-07-25 2014-10-21 Roberto Tamassia Apparatus, methods, and computer program products providing dynamic provable data possession
US8352519B2 (en) 2008-07-31 2013-01-08 Microsoft Corporation Maintaining large random sample with semi-random append-only operations
US20100125554A1 (en) 2008-11-18 2010-05-20 Unisys Corporation Memory Recovery Across Reboots of an Emulated Operating System
US8412677B2 (en) 2008-11-26 2013-04-02 Commvault Systems, Inc. Systems and methods for byte-level or quasi byte-level single instancing
US8515911B1 (en) 2009-01-06 2013-08-20 Emc Corporation Methods and apparatus for managing multiple point in time copies in a file system
US8266408B2 (en) 2009-03-17 2012-09-11 Memoir Systems, Inc. System and method for storing data in a virtualized high speed memory system
US8873550B2 (en) * 2010-05-18 2014-10-28 Lsi Corporation Task queuing in a multi-flow network processor architecture
US8583893B2 (en) * 2009-05-28 2013-11-12 Marvell World Trade Ltd. Metadata management for virtual volumes
US8533388B2 (en) 2009-06-15 2013-09-10 Broadcom Corporation Scalable multi-bank memory architecture
AU2009202442A1 (en) 2009-06-18 2011-01-13 Canon Kabushiki Kaisha Skip list generation
US8402071B2 (en) 2009-06-19 2013-03-19 Aptare, Inc. Catalog that stores file system metadata in an optimized manner
EP2290562A1 (en) 2009-08-24 2011-03-02 Amadeus S.A.S. Segmented main-memory stored relational database table system with improved collaborative scan algorithm
US8205062B2 (en) 2009-10-14 2012-06-19 Inetco Systems Limited Tiered data management method and system for high performance data monitoring
US8364864B2 (en) 2010-03-17 2013-01-29 Juniper Networks, Inc. Multi-bank queuing architecture for higher bandwidth on-chip memory buffer
US9251214B2 (en) 2010-04-08 2016-02-02 Microsoft Technology Licensing, Llc In-memory database system
US8694733B2 (en) 2011-01-03 2014-04-08 Sandisk Enterprise Ip Llc Slave consistency in a synchronous replication environment
US8909602B2 (en) 2011-02-03 2014-12-09 Vmware, Inc. Programmatic snapshot and revert of virtualized data center inventory
US8806112B2 (en) 2011-07-14 2014-08-12 Lsi Corporation Meta data handling within a flash media controller
US8937952B2 (en) 2011-08-02 2015-01-20 Cavium, Inc. Packet classification
US9063768B2 (en) 2011-10-10 2015-06-23 Vmware, Inc. Method and apparatus for comparing configuration and topology of virtualized datacenter inventories
US20130339569A1 (en) 2012-06-14 2013-12-19 Infinidat Ltd. Storage System and Method for Operating Thereof
US9160624B2 (en) 2012-07-03 2015-10-13 Opera Software Ireland Limited Linked list scripting engine
US9128615B2 (en) 2013-05-15 2015-09-08 Sandisk Technologies Inc. Storage systems that create snapshot queues
US9411533B2 (en) * 2013-05-23 2016-08-09 Netapp, Inc. Snapshots and versioning of transactional storage class memory
US9584637B2 (en) 2014-02-19 2017-02-28 Netronome Systems, Inc. Guaranteed in-order packet delivery
US20150270015A1 (en) 2014-03-19 2015-09-24 Micron Technology, Inc. Memory mapping
US20150295883A1 (en) 2014-04-09 2015-10-15 Freescale Semiconductor, Inc. Storage and retrieval of information using internet protocol addresses
US10726831B2 (en) 2014-05-20 2020-07-28 Amazon Technologies, Inc. Context interpretation in natural language processing using previous dialog acts
US10162716B2 (en) 2014-06-09 2018-12-25 Sap Se Hybrid SCM-DRAM transactional storage engine for fast data recovery
US9959299B2 (en) 2014-12-02 2018-05-01 International Business Machines Corporation Compression-aware partial sort of streaming columnar data
US20160179865A1 (en) 2014-12-17 2016-06-23 Yahoo! Inc. Method and system for concurrency control in log-structured merge data stores
US10616144B2 (en) 2015-03-30 2020-04-07 Cavium, Llc Packet processing system, method and device having reduced static power consumption

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5093910A (en) * 1986-10-29 1992-03-03 United Technologies Corporation Serial data transmission between redundant channels
TW201342243A (zh) * 2011-12-16 2013-10-16 Nvidia Corp 處理系統中動態產生任務的傳訊、排序和執行
US20140059311A1 (en) * 2012-08-21 2014-02-27 International Business Machines Corporation Data Backup or Restore Using Main Memory and Non-Volatile Storage Media
US20140281119A1 (en) * 2013-03-14 2014-09-18 Fusion-Io, Inc. Managing Configuration Parameters for a Non-Volatile Medium

Also Published As

Publication number Publication date
US20170017567A1 (en) 2017-01-19
US9767014B2 (en) 2017-09-19
WO2017011654A1 (en) 2017-01-19
CN108139767A (zh) 2018-06-08
TW201717017A (zh) 2017-05-16
CN108139767B (zh) 2020-02-07
US20170017568A1 (en) 2017-01-19

Similar Documents

Publication Publication Date Title
US10740006B2 (en) System and method for enabling high read rates to data element lists
TWI706314B (zh) 用於網路裝置之記憶體系統、網路裝置、及操作網路裝置的方法
US20090003344A1 (en) Asyncronous broadcast for ordered delivery between compute nodes in a parallel computing system where packet header space is limited
US9785367B2 (en) System and method for enabling high read rates to data element lists
US10275352B1 (en) Supporting responses for memory types with non-uniform latencies on same channel
US10049035B1 (en) Stream memory management unit (SMMU)
US20210377150A1 (en) Memory pooled time sensitive networking based architectures
TWI696070B (zh) 記憶體系統及在網路裝置中實施該記憶體系統之方法,以及網路裝置
US10067690B1 (en) System and methods for flexible data access containers