TWI720926B - 網路裝置、用於網路裝置之記憶體系統及操作網路裝置之方法 - Google Patents
網路裝置、用於網路裝置之記憶體系統及操作網路裝置之方法 Download PDFInfo
- Publication number
- TWI720926B TWI720926B TW109127109A TW109127109A TWI720926B TW I720926 B TWI720926 B TW I720926B TW 109127109 A TW109127109 A TW 109127109A TW 109127109 A TW109127109 A TW 109127109A TW I720926 B TWI720926 B TW I720926B
- Authority
- TW
- Taiwan
- Prior art keywords
- data element
- memory
- snapshot
- data
- entry
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/0623—Address space extension for memory modules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
描述一種用於一網路裝置之記憶體系統。該記憶體系統包含經組態以儲存一或多個資料元件之一主記憶體。進一步言之,該記憶體系統包含一連結記憶體,其經組態以維持一或多個指標以使經儲存於該主記憶體中之該一或多個資料元件互連。該記憶體系統亦包含一自由入口管理器,其經組態以產生包含該連結記憶體中之一或多個位置之一可用庫組。另外,該記憶體系統包含一內容管理器,其經組態以維持元資料用於該一或多個資料元件之一列表。
Description
本發明之實施例係關於網路裝置。特定言之,本發明之實施例係關於用於網路裝置之記憶體系統。
網路裝置用以轉移資料於一網路中之節點之間。隨著網路增長且通信通道之資料率增加,出現增加一網路裝置可在一段時間內處理之資料量的需要。為滿足此等網路之需求,裝置需要經設計以讀取資料至記憶體中且自記憶體寫出資料以容納網路之需求且最小化讀取請求與寫入請求之間的任何衝突之記憶體系統。當前系統藉由增加一記憶體之存取埠數目及/或增加該記憶體之時脈速度而滿足網路之高容量及高資料率需求,其要求本半導體技術之狀態。然而,增加記憶體上之存取埠之數目及/或使用本半導體技術之狀態來增加記憶體之操作頻率顯著地添加記憶體之成本及/或操作此等記憶體所需之功率預算。
描述一種用於一網路裝置之記憶體系統。該記憶體系統包含經組態以儲存一或多個資料元件之一主記憶體。進一步言之,該記憶體系統包含一連結記憶體,其經組態以維持一或多個指標以使儲存於該主記憶體中之該一或多個資料元件互連。該記憶體系統亦包含一自由入口管理器,其經組態以產生包含該連結記憶體中之一或多個位置的一可用庫組。另外,該記憶體系統包含一內容管理器,其經組態以維持元資料用於多個列表,其中各列表含有一或多個資料元件。
自隨附圖式及自下列實施方式將明白本發明之實施例之其他特徵及優點。
描述針對網路裝置實施一分布式連結列表之一系統及方法之實施例。特定言之,描述一種記憶體系統,其經組態以藉由實施一分布式連結列表而管理資料。該記憶體系統包含用於儲存由一網路裝置接收之資料的一主記憶體。進一步言之,該記憶體系統包含一分布式連結列表。該分布式連結列表包含一連結記憶體、一自由入口管理器及一內容管理器。該分布式連結列表經組態以追蹤儲存於一主記憶體中之資料之位置且使該等位置結合至一列表以維持資料之間的一循序關係。進一步言之,該分布式連結列表使用庫記憶體結構來維持儲存於一主記憶體中之資料之間的一循序關係,而無需主記憶體與分布式連結列表之間的一直接關係。此一架構提供使用單一埠記憶體且降低操作頻率之能力,其降低記憶體系統之成本及複雜性同時仍滿足一高容量網路之效能需求。
圖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。
針對一實施例,如本文中所描述之一記憶體系統經組態以使用一或多個跳表來產生一資料元件列表。使用一或多個跳表之資料元件可克服橫越基於硬體之資料元件列表中固有之讀取率限制。一實例讀取率限制係針對一資料元件之一讀取請求與該資料元件之可用性之間之延遲之一結果。進一步言之,藉由使用包含一或多個跳表之資料元件列表而獲得的效率提供使用具有較少存取埠之較低成本記憶體(例如,一單一存取埠記憶體)的益處。例如,一分布式連結列表之庫記憶體結構可包含跳表。此等跳表可用以致能更高讀取率以克服與硬體相關聯之讀取率限制。
針對一實施例,一資料元件列表經產生以包含K數目個跳表。資料元件列表中之第一K節點之各者係K跳表之頭。各跳表含有一子序列的資料元件,其等形成完整資料元件列表。針對一實施例,一系統經組態以產生一跳表中之兩個後續元件之間之一距離,以基於一記憶體系統之硬體設計來克服一讀取回應延遲。作為一實例讀取率限制,考量具有三個時脈循環之一讀取率限制之一記憶體系統,該記憶體系統經組態以產生一資料元件列表,使得該資料元件列表中之第一跳表之第二元件係在該資料元件列表中之第三元件之後。基於一跳表結構而產生一資料元件列表(諸如本文中所描述之資料元件列表),使得對一資料元件列表中之第一K元件的快速存取能夠克服由於橫越硬體列表之讀取存取之間的延遲。
圖10繪示根據一實施例之使用由一系統產生之跳表之一例示性資料元件列表之一方塊圖。根據此實例,資料元件列表1000包含三個跳表。各跳表包含一頭節點。在圖10中,頭節點標記為1001、1002及1003。資料列表中之各頭節點包含至該跳表中之下一元件之一連結(諸如如本文中所描述之一指標)。如本文中所描述,該資料元件列表內之一跳表中之下一元件的位置係部分基於一資料元件列表中之跳表的數目。一資料元件列表中之跳表的數目亦可係基於用於系統之資料元件之一所要讀取率。在圖10中所繪示之實例中,具有頭節點1001之第一跳表係連結至第一跳表1004之第二節點。具有頭節點1002之第二跳表(該資料元件列表中之第二節點)係連結至第二跳表1005之第二節點。具有一頭節點1003之第三跳表係連結至第三跳表1006之第二節點。
圖11繪示根據一實施例之使用跳表之讀取存取以存取資料元件列表之資料元件的一例示性方法的一方塊圖。下文所描述之實例假設用於一資料元件之一讀取請求與該資料元件之可用性之間的延遲係三個時脈循環。然而,熟習此項技術者將理解,跳表之不同配置可用以解決任何量之延遲。該系統啟始讀取事件以讀取一資料元件列表之一第一節點(1102)。例如,該系統在一時間零處啟始一讀取事件以藉由發佈讀取請求用於第一跳表1001之頭節點、資料元件列表中之第一節點及資料元件列表中之第一跳表之頭節點,使用包含本文中所描述之技術之技術自資料元件列表1000(如圖10所示)讀取第一跳表1001之頭節點。如上文所描述,一記憶體系統(例如)藉由使用本文中所描述之技術讀取頭入口而判定資料元件列表中之第一節點。讀取(1104)與資料元件列表中之第一資料元件相關聯之元資料,其根據一實施例包含其中儲存第一資料元件之一主記憶體中之位址及用於跳表中之下一節點之一指標。針對圖10中所繪示之實例,在第一跳表1001之頭節點之後之跳表中之下一節點基於元資料讀取而經判定為第一跳表1004之第二節點。現具有用於跳表中之下一節點之指標之系統現在可並行操作以基於讀取元資料而存取與第一跳表中之下一資料元件相關聯之元資料(1106)。例如,參考圖10,與第一跳表1001之頭節點相關聯之元資料用以存取與第一跳表1004之第二節點相關聯之元資料,使得用於第一跳表1004之第二節點之元資料在一時間3處可用。
該方法包含啟始一讀取事件用於一資料元件列表之一第二節點(1108)。例如,參考圖10,在一時間1處,該系統啟始一讀取事件以藉由發佈讀取請求用於第二跳表1002之頭節點(其係資料元件列表1000中之第二節點),使用包含本文中所描述之技術之技術而自資料元件列表1000讀取第二跳表1002之頭節點。如上文所描述,一系統(例如)藉由使用本文中所描述之技術讀取頭入口而判定資料元件列表中之第二節點。一旦判定第二節點,則讀取(1110)與資料元件列表之第二資料元件相關聯之元資料,其根據一實施例包含其中儲存第二資料元件之一主記憶體中之位址及用於跳表中之下一節點之一指標。繼續如圖10中所繪示之實例,該系統藉由讀取與第二跳表1002之頭節點相關聯之元資料而判定第二跳表1005之第二節點。進一步言之,該方法包含基於讀取元資料而存取與一第二跳表中之下一資料元件相關聯之元資料(1112)。例如,使用圖10中之實例,該系統使用參考第二跳表1005之第二節點之指標且現在可並行操作以存取與第二跳表1005之第二節點相關聯之元資料,使得元資料將在一時間4處可用。
繼續參考圖10之實例,在一時間2處,該系統啟始讀取事件以藉由發佈讀取請求用於第三跳表1003之頭節點,使用包含本文中所描述之技術之技術而自資料元件列表1000讀取第三節點,第三跳表1003之頭節點。例如,如上文所描述,一記憶體系統藉由使用本文中所描述之技術讀取頭入口而判定資料元件列表中之第三節點。一旦第三節點經判定為第三跳表1003之頭節點,則讀取與第三跳表1003之頭節點相關聯之元資料,其根據一實施例包含其中儲存第三資料元件之一主記憶體中之位址及用於跳表中之下一節點之一指標。如圖10中所繪示,跳表中之下一節點係第三跳表1006之第二節點。現在具有用於跳表中之下一節點之指標的系統現在可並行操作以存取與資料元件相關聯之元資料,使得與資料元件相關聯之元資料將在時間5處可用。
在一時間3處,與資料元件列表1000中之第一跳表1004之第二節點相關聯之元資料基於藉由讀取指標之在時間0處的讀取存取之啟始而可用。在時間4處,與資料元件列表1000中之第二跳表1005之第二節點相關聯之元資料基於藉由讀取指標之在時間1處的讀取存取之啟始而可用。該方法將繼續上文所描述之程序直至讀取資料元件列表中之最後節點為止。圖12繪示根據一實施例之經組態以儲存圖10中所繪示之資料元件列表之一連結記憶體及一內容管理器的一方塊圖。
針對一實施例,經組態以產生一資料元件列表(其包含一或多個跳表)之一記憶體系統包含一記憶體系統,其包含多個庫之分布式連結列表記憶體,包含本文中所描述之記憶體。該連結記憶體經組態以含有與使用包含本文中所描述之技術之技術之資料元件列表相關聯之資料元件連結節點。針對一實施例,該連結記憶體之各庫與資料元件列表之一跳表相關聯。根據一實施例,連結記憶體中之各入口包含元資料,其包含提供儲存於主記憶體中之資料元件之位置之位址、對包含用於跳表中之下一元件之元資料的連結記憶體中之位址之參考的一下一指標及一序列指示符。針對另一實施例,該連結記憶體中之各入口與一緩衝記憶體入口配置相關聯。此一實施例提供用於元資料之儲存,諸如用於跳表中之下一元件之一下一指標。此提供以下益處:需要一較小記憶體分配用於一連結記憶體之每一入口同時維持元資料以實施包含跳表之一資料元件列表。針對一實施例,連結記憶體中之一入口包含其他相關聯資料,其包含如本文中所描述之元資料。而且,該記憶體系統包含一內容管理器,其經組態以使用包含本文中所描述之技術之技術來維持多個尾入口及頭入口。針對一實施例,該內容管理器包含用於與一跳表相關聯之各庫之一頭入口及尾入口。
圖13繪示根據一實施例之一方法之一流程圖,該方法用於實施產生包含一或多個跳表及相關聯元資料之一資料元件列表之方法。圖14a至圖14f繪示表示一母分布式連結列表之一部分之狀態的方塊圖,該母分布式連結列表在如圖13中所繪示之方法期間包含多個庫。針對一實施例,用以產生包含一或多個跳表之一資料元件列表的一方法包含接收一第一資料元件1302,如圖13中所繪示。該方法包含使用包含本文中所描述之技術之技術來:產生一第一元資料1304,其包含對用於跳表中之下一元件之元資料的連結記憶體中之位址的參考之一下一指標;及將第一元資料寫入一記憶體系統中以形成資料元件列表之第一節點1306。例如,如圖14a中所繪示,將經產生之第一元資料1216a寫入至一第一頭入口816。
如圖13中所繪示,該方法包含:產生第二元資料1308,其包含對用於第二跳表中之下一元件之元資料的連結記憶體中之位址的參考之一下一指標;及將第二元資料寫入一記憶體系統中用於一第二資料元件1310,其使用包含本文中所描述之技術之技術到達一網路裝置以形成資料元件列表之一第二節點,其係資料元件列表之第二節點及一第二跳表之頭節點。第二元資料(例如)回應於接收一第二資料元件而產生。例如,如圖14b中所繪示,將經產生之第二元資料1220a寫入至一第二頭入口824。
該方法亦包含:產生第三元資料1312,其包含對用於第三跳表中之下一元件之元資料的連結記憶體中之位址之參考的一下一指標;及將第三元資料寫入一記憶體系統中用於一第三資料元件1314,其使用包含本文中所描述之技術之技術到達一網路裝置以形成資料元件列表之一第三節點,其係第三跳表之頭節點。例如,如圖14c中所繪示,將經產生之第三元資料1224a寫入至一第三頭入口820。進一步言之,該方法包含:產生第四元資料1316,其包含對用於第一跳表中之下一元件之元資料的連結記憶體中之位址之參考的一下一指標;及將元資料寫入一記憶體系統中用於一第四資料元件1318,其使用包含本文中所描述之技術之技術到達一網路裝置以形成資料元件列表之一第四節點,其係第一跳表之第二節點。例如,如圖14d中所繪示,將經產生之第四元資料1216b寫入至一第一記憶體庫中之一位置806b。
而且,該方法包含:產生第五元資料1320,其包含對用於第二跳表中之下一元件之元資料的連結記憶體中之位址之參考的一下一指標;及將元資料寫入一記憶體系統中用於一第五資料元件1322,其使用包含本文中所描述之技術之技術到達一網路裝置以形成資料元件列表之一第五節點,其係第二跳表之第二節點。例如,如圖14e中所繪示,將經產生之第五元資料1220b寫入至一第二記憶體庫中之一位置808c。該方法包含:產生第六元資料1324,其包含對用於第三跳表中之下一元件之元資料的連結記憶體中之位址之參考的一下一指標;及將元資料寫入一記憶體系統中用於一第六資料元件1326,其使用包含本文中所描述之技術之技術到達一網路裝置以形成資料元件列表之一第六節點,其係第三跳表之第二節點。例如,如圖14f中所繪示,將經產生之第六元資料1224b寫入至一第三記憶體庫中之一位置810b。
針對經組態以產生包含一或多個跳表之一資料元件列表的一記憶體系統,一資料元件列表中之各跳表表現為一單一資料元件列表。例如,藉由比較序列識別符而判定讀取之順序,其使用包含本文中所描述之技術之技術而儲存於各跳表之頭入口中。此一記憶體系統經組態以確保藉由實施存取約束而不遇到存取衝突。進一步言之,一記憶體系統經組態以在排程一讀取存取之時脈循環期間限制對一連結記憶體之記憶體庫之寫入。而且,為最小化存取衝突,一記憶體系統經組態以基於一所要讀取率而在一連結記憶體中具有若干記憶體庫。
用於實施經組態以產生包含一或多個跳表之一資料元件列表之一記憶體系統之一寫入的一方法包含產生一可用庫列表於一連結記憶體中。圖15繪示根據一實施例之用於產生一可用庫列表於一連結記憶體中的一流程圖。產生一可用庫列表(潛在地針對各寫入器/源)可包含以下一或多者:自列表移除全部完整庫1522;移除相同於寫入存取之時脈循環中之讀取存取所需之一或多個庫1524;移除一或多個庫1526,其等由最後γ時脈循環中之相同寫入器選擇,其中γ基於記憶體系統之一所要讀取率而判定;及移除經選擇用於相同於其他寫入器之時脈循環中之寫入存取的一或多個庫1528。進一步言之,該方法包含自經產生之可用庫列表選擇最少填充庫1530。
針對一實施例,一記憶體系統經組態以基於包含一或多個快照跳表之資料元件列表而實施一階層分布式連結列表。該記憶體系統經組態以藉由使用包含本文中所描述之技術之技術產生資料元件列表而使資料元件互連。進一步言之,該記憶體系統經組態以藉由基於列表元資料產生一或多個快照而實施一階層分布式連結列表以使用包含本文中所描述之技術之技術維持包含一或多個跳表之資料元件之列表。進一步言之,該記憶體系統經組態以使用包含本文中所描述之技術之技術維持連結列表元資料以使複數個快照互連。
藉由使快照互連,該記憶體系統(例如)經組態以維持資料封包之順序以便該資料封包接收於一網路裝置處,諸如基於經接收用於一資料封包之最後單元之順序。另外,該記憶體系統經組態以藉由基於包含一或多個跳表之一資料元件列表而使快照互連而形成一佇列之資料封包。一佇列可基於一目的位址、網路政策、通信量整形及/或包含用於排序資料封包之此項技術中已知之技術之其他技術而形成。使用本文中所描述之技術,該記憶體系統經組態以維持連結列表元資料以產生快照來使一資料封包之單元之一或多個列表互連。進一步言之,實施一階層分布式連結列表之該記憶體系統經組態以維持經接收之各資料封包之單元且維持經接收之各資料封包之順序,使得各資料封包可自該記憶體系統擷取用於基於經接收之順序及/或封包放置於一佇列中之順序而出埠。而且,自包含跳表之資料元件列表產生之互連快照可用以在一給定操作頻率處提供高讀取率。
針對一實施例,該記憶體系統經組態以產生互連快照(資料元件組列表),其包含一或多個快照跳表,使得包含於互連快照中之各快照(資料元件組)在互連快照中具有一相關聯快照列表節點。快照列表節點包含快照列表元資料用於其相關聯之快照。針對一實施例,快照列表元資料包含一頭位址(在一記憶體中針對快照中之第一資料元件之位址);一尾位址(在記憶體中針對快照中之最後資料元件之位址);及一下一快照指標。下一快照指標包含如本文中所描述之用於快照跳表中之下一快照之一連結或一指標。如本文中所描述,互連快照內之一快照跳表中之下一元件之位置取決於互連快照中之快照跳表之數目。一互連快照列表中之快照跳表之數目可基於用於記憶體系統之資料元件之一所要讀取率。
圖16繪示根據一實施例之由一記憶體系統產生之一互連快照列表(資料元件組列表-1423)。互連快照列表包含四個快照列表節點(1418、1419、1420、1421),其等與4個可變長度快照(1401、1406、1410、1414)相關聯。該四個快照列表節點(1418、1419、1420、1421)包含三個快照跳表,其等之兩者包含一單一節點。該快照跳表包含第一快照列表節點1418及第四快照列表節點1421。該第一快照列表節點包含用於快照1401之快照列表元資料,諸如本文中所描述之快照列表元資料及用於快照跳表1421中之序列快照列表節點之一下一快照指標。第二快照列表節點1419,諸如本文中所描述之快照列表元資料。第三快照列表節點1420,諸如本文中所描述之快照列表元資料。
針對一實施例,經組態以實施來自資料元件列表(其包含一或多個快照跳表)之一階層分布式連結列表之一記憶體系統包含一子分布式連結列表、一母分布式連結列表及一主記憶體。該子分布式連結列表包含多個記憶體庫且經組態以產生一列表之資料元件以使用本文中所描述之技術產生包含一或多個跳表之一資料元件列表。該母分布式連結列表經組態以基於使用本文中所描述之技術由一子分布式連結列表產生之一資料元件列表而產生一快照。該母分布式連結列表亦經組態以維持連結列表元資料以使多個快照互連以使用本文中所描述之技術產生包含一或多個快照跳表之一互連快照列表。藉由使快照互連,一母分布式連結列表(例如)經組態以維持資料元件之順序以便該資料元件接收於一網路裝置處,諸如基於經接收用於一資料封包之最後單元之順序。另外,一母分布式連結列表經組態以藉由使快照互連而形成一佇列之資料封包。
針對一實施例,該記憶體系統經組態以當一資料元件列表到達時使資料元件與其一起儲存。該資料元件跨跳表而儲存於一接收內容中且利用包含關於實施跳表之本文中所描述之存取約束之存取約束。一旦最後資料元件到達資料元件組後,即使用包含本文中所描述之技術之技術將快照捕獲且儲存於一資料元件組中。圖17繪示根據一實施例之產生一互連快照列表之一方法的一流程圖,該互連快照列表包含一或多個資料元件組列表,其包含一或多個跳表及相關聯快照列表元資料。圖18a至圖18f繪示表示在如圖17中所繪示之方法期間包含多個庫之一母分布式連結列表之一部分之狀態的方塊圖。如圖17中所繪示,該方法包含捕獲第一快照1602且儲存其於一資料元件組列表中。針對一實施例,儲存一第一快照於一資料元件組列表中包含:產生第一快照列表元資料,其包含對用於第一快照跳表中之下一快照之元資料的記憶體中之位址之參考的一下一快照指標;及將元資料寫入一記憶體系統中以使用包含本文中所描述之技術之儲存及寫入元資料之技術而形成資料元件組列表之第一快照列表節點。例如,如圖18a中所繪示,將經產生之第一快照列表元資料1502a寫入至一第二頭入口824。
在圖17處,該方法包含:產生第二快照列表元資料1606,其包含對用於(若存在)一快照跳表中之下一快照之元資料的記憶體中之位址之參考的一下一快照指標;及使用包含本文中所描述之技術之技術將第二快照列表元資料寫入一記憶體系統中用於一第二快照以形成資料元件列表之一第二快照列表節點1608,其係資料元件組列表之第二節點。例如,如圖18b中所繪示,將經產生之第二快照列表元資料1504a寫入至一第一頭入口816。該方法亦包含:產生第三快照列表元資料1610,其包含對用於(若存在)一快照跳表中之下一快照之快照列表元資料的記憶體中之位址之參考的一下一快照指標;及使用包含本文中所描述之技術之技術將第三快照列表元資料寫入一記憶體系統中用於一第三快照以形成資料元件組列表之一第三快照列表節點1612。例如,如圖18c中所繪示,將經產生之第三快照列表元資料1506a寫入至一第四頭入口828。進一步言之,如圖17中所繪示,該方法包含:產生第四快照列表元資料1614,其包含對用於(若存在)一快照跳表中之下一快照之第四快照列表元資料的記憶體中之位址之參考的一下一快照指標;及使用包含本文中所描述之技術之技術將第四快照列表元資料寫入一記憶體系統中用於一第四快照以形成資料元件組列表之一第四快照列表節點1616,其係第一快照跳表之第二節點。例如,如圖18d中所繪示,將經產生之第四元資料1504b寫入至一第三記憶體庫中之一位置810a。
用於實施經組態以產生來自資料元件列表(其等包含一或多個快照跳表)之一階層分布式連結列表之一記憶體系統之一寫入的一方法包含在一連結記憶體(包含子連結記憶體及母連結記憶體)中產生一可用庫列表。圖19繪示根據一實施例之用於在一連結記憶體(包含子連結記憶體及母連結記憶體)中產生一可用庫列表之一流程圖。產生一可用庫列表可包含以下一或多者:自列表移除全部完整庫1702;移除相同於寫入存取之時脈中之讀取存取所需之一庫1704;移除一或多個庫1706,其等由最後γ時脈循環中之相同寫入器選擇,其中γ基於記憶體系統之一所要讀取率而判定;及移除經選擇用於相同於其他寫入器之時脈循環中之寫入存取的一或多個庫1708。進一步言之,該方法包含自經產生之可用庫列表選擇最少填充庫1710。
圖20繪示根據一實施例之使用一或多個快照跳表之讀取存取之一例示性方法的一方塊圖。用於實施經組態以產生來自資料元件列表(其等包含一或多個快照跳表)之一階層分布式連結列表之一記憶體系統之一讀取的一方法包含:使用在各跳表之頭入口處之快照序列識別符而判定一下一快照跳表(1802)。該方法亦包含使用在頭入口處之最低序列識別符而選擇快照跳表(1804)。該方法亦包含讀取經選擇快照跳表之一頭入口(1806)及評估該入口中之快照(1808)。該快照提供該組資料元件列表跳表。該方法亦包含使用在各跳表之頭入口處之資料元件序列識別符而判定下一資料元件列表跳表(1810)。該方法亦包含使用在頭入口處之最低序列識別符而選擇跳表。針對一實施例,代替序列識別符而使用一循環機制來判定一資料元件列表及/或一跳表中之下一資料元件或快照。
可使用一半導體晶片、ASIC、FPGA之一或多者及使用離散組件實施本文中所描述之實施例。而且,該記憶體系統之元件可作為一或多個核心而實施於一半導體晶片上,諸如一單晶片系統(「SoC」)。亦可對一機器實施本文中所描述之實施例,諸如一網路裝置及一或多個電腦系統,包含一程式儲存裝置。該程式儲存裝置包含(但不限於)大型儲存件之任何者之一或多者,其遠距於該機器、隨機存取記憶體、非揮發性記憶體、磁儲存碟或光儲存碟及其他電腦可讀取儲存媒體。
在上述說明書中,已描述本發明之特定例示性實施例。然而,應明白,可對特定例示性實施例做各種修改及改變。因此,本說明書及圖式應被視為一闡釋性含義而非一限制性含義。
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:第四尾入口
1000:資料元件列表
1001:頭節點
1002:頭節點
1003:頭節點
1004:第一跳表
1005:第二跳表
1006:第三跳表
1216a:第一元資料
1216b:第四元資料
1220a:第二元資料
1220b:第五元資料
1224a:第三元資料
1224b:第六元資料
1401:可變長度快照
1406:可變長度快照
1410:可變長度快照
1414:可變長度快照
1418:快照列表節點
1419:快照列表節點
1420:快照列表節點
1421:快照列表節點
1423:資料元件組列表
1502a:第一快照列表元資料
1504a:第二快照列表元資料
1506a:第三快照列表元資料
經由隨附圖式之圖中之實例而非經由其限制圖解說明本發明之實施例,其中相似元件符號指類似元件,且其中:
圖 1繪示根據一實施例之包含實施分布式連結列表之一記憶體系統之一網路裝置的一方塊圖;
圖 2繪示根據一實施例之一記憶體系統之一部分的一方塊圖;
圖 3繪示根據一實施例之包含多個庫之連結記憶體之一記憶體系統之一部分的一方塊圖;
圖 4繪示根據一實施例之用於實施一分布式連結列表之一方法的一流程圖;
圖 5繪示根據一實施例之用於使用一分布式連結列表來儲存一資料元件之一方法的一流程圖;
圖 6繪示根據一實施例之用於使用一分布式連結列表來讀取一資料元件的一流程圖;
圖 7繪示根據一實施例之包含實施階層分布式連結列表之一記憶體系統之一網路裝置的一方塊圖;
圖 8繪示根據一實施例之包含多個庫之母連結記憶體之一母分布式連結列表之一部分的一方塊圖;
圖 9繪示根據一實施例之用於實施一階層分布式連結列表之一方法的一流程圖;
圖 10繪示根據一實施例之使用由一系統產生之跳表之一例示性資料元件列表的一方塊圖;
圖 11繪示根據一實施例之用於使用跳表之讀取存取的一例示性時刻表;
圖 12繪示根據一實施例之經組態以儲存圖10中所繪示之資料元件列表之一連結記憶體及一內容管理器的一方塊圖;
圖 13繪示根據一實施例之用於一方法的一流程圖,該方法用於實施產生包含一或多個跳表及相關聯元資料之一資料元件列表之方法;
圖 14a 至圖 14f繪示根據一實施例之表示產生包含一或多個跳表及相關聯元資料之一資料元件列表之方法的方塊圖;
圖 15繪示根據一實施例之用於在一連結記憶體中產生一可用庫列表之一流程圖;
圖 16繪示根據一實施例之由一記憶體系統產生之一互連快照列表;
圖 17繪示根據一實施例之產生一互連快照列表之一方法之一流程圖,該互連快照列表包含一或多個資料元件組列表,其包含一或多個跳表及相關聯快照列表元資料;
圖 18a 至圖 18d繪示根據一實施例之表示產生一互連快照列表之方法之方塊圖,該互連快照列表包含一或多個資料元件組列表,其等包含一或多個跳表及相關聯快照列表元資料;
圖 19繪示根據一實施例之用於在一連結記憶體中產生一可用庫列表之一流程圖,其包含子連結記憶體及母連結記憶體;及
圖 20繪示根據一實施例之用於使用一或多個快照跳表之讀取存取之一例示性方法的一方塊圖。
10:網路裝置
12:輸入/輸出埠
14:主記憶體
16:處理器
18:分布式連結列表
20:連結記憶體
22:自由入口管理器
24:內容管理器
Claims (22)
- 一種網路裝置,其包括: 一主記憶體,其儲存來自多個資料元件群組之多個資料元件,各資料元件群組包含資料元件之一經排序序列(ordered sequence); 一子連結記憶體,其包含複數個記憶體庫,其中各記憶體庫儲存一或多個入口(entry),各入口包含(i)一主記憶體位置之一位址,其儲存由該入口所識別之一資料元件,及(ii)一子連結記憶體庫之一位址,其儲存在包含由該入口所識別之該資料元件之一資料元件群組中之一下一個資料元件; 一子管理器,其針對在該子連結記憶體中之該複數個記憶體庫之各記憶體庫而包含一或多個頭(head)節點及一或多個尾(tail)節點, 其中各頭節點維持(i)一主記憶體位置之一位址,其儲存一特別頭資料元件,該特別頭資料元件係針對包含該特別頭資料元件之一資料元件群組之一各別記憶體庫中之一第一資料元件,(ii)至該相同記憶體庫中之一子連結記憶體入口之一位址,及(iii)一資料元件序列數目,其表示在包含該特別頭資料元件之該資料元件群組中依資料元件之一經排序序列之該特別頭資料元件之一位置,及 其中各尾節點維持至儲存一特別尾資料元件之一主記憶體位置之一位址,該特別尾資料元件係針對包含該特別尾資料元件之一資料元件群組之該各別記憶體庫中之一最近(most recent)資料元件;及 一母管理器,其針對在該子連結記憶體中之該複數個記憶體庫中之各記憶體庫而包含一或多個頭入口, 其中該一或多個頭入口之各頭入口儲存(i)一快照指標(snapshot pointer),其用於存取關於在一快照記憶體中之一特別資料元件群組之元資料(metadata),及(ii)一快照序列數目,其指示將在下一次被存取之另一資料元件群組, 其中關於一資料元件群組之該元資料包含(i)指向對應於在該子管理器中之該資料元件群組之該一或多個頭節點或該一或多個尾節點之至少一者之指標,及(ii)序列數目,其對應於針對對應於該資料元件群組之該一或多個頭節點或該一或多個尾節點之至少一者之資料元件序列數目,及 其中該快照序列數目對應於一到達順序(arrival order),資料元件群組依該到達順序而到達該網路裝置,該特別資料元件群組及該另一資料元件群組係已到達該網路裝置之連續的(successive)資料元件群組。
- 如請求項1之網路裝置,其進一步包括電路(circuitry),該電路經組態以使用該一或多個頭入口以進行以下操作: 基於儲存於各頭入口中之一快照序列數目判定用於存取一或多個資料元件群組之一快照順序; 基於該快照順序存取關於在該快照記憶體中之一資料元件群組之元資料;及 針對該經存取之資料元件群組,使用該各別元資料以判定用於存取在該複數個記憶體庫中之一或多個頭節點或一或多個尾節點之至少一者之一連續順序(sequential order),該複數個記憶體庫包含針對在該經存取之資料元件群組中之資料元件之資訊。
- 如請求項1之網路裝置,其進一步包括一快照記憶體,該快照記憶體儲存關於一或多個資料元件群組之元資料。
- 如請求項1之網路裝置,其中該母管理器進一步包含針對在該子連結記憶體中之該複數個記憶體庫中之各記憶體庫之一或多個尾入口,其中該一或多個尾入口之各尾入口儲存用於連結(link)對應於該一或多個尾入口之一資料元件群組之該一或多個資料元件之元資料。
- 如請求項1之網路裝置,其中一資料元件群組表示一資料封包,及其中資料元件序列數目指定用於結合儲存於對應於一資料封包之該主記憶體中之資料元件以再生(regenerate)該資料封包之一連續順序。
- 如請求項5之網路裝置,其中快照序列數目指示該到達順序,一或多個資料封包依該到達順序已到達該網路裝置。
- 如請求項1之網路裝置,其中在一記憶體庫中之各頭節點與在該記憶體庫中之一尾節點相關聯,其中該頭節點及該相關聯之尾節點經組態以儲存針對一資料元件群組之資訊,該資料元件群組包含具有儲存於該記憶體庫中之相對應入口之一或多個資料元件。
- 如請求項1之網路裝置,其中該複數個記憶體庫之各記憶體庫具有一單一存取埠。
- 如請求項1之網路裝置,其進一步包括: 一自由(free)入口管理器,其經組態以識別在該子連結記憶體中之可用(available)記憶體庫,各可用記憶體庫包含非當前使用以維持任何入口之一或多個位置且係可用以儲存針對一或多個新資料元件之一或多個新入口。
- 如請求項9之網路裝置,其中識別在該子連結記憶體中之該可用記憶體庫包括排除(exclude)經排程(scheduled)而用於寫入或讀取操作之記憶體庫。
- 一種用於操作一網路裝置之方法,該方法包括: 於一主記憶體中儲存來自多個資料元件群組之多個資料元件,各資料元件群組包含資料元件之一經排序序列; 於一子連結記憶體中之複數個記憶體庫之各記憶體庫中儲存一或多個入口,各入口包含:(i)一主記憶體位置之一位址,其儲存由該入口所識別之一資料元件,及(ii)一子連結記憶體庫之一位址,其儲存在包含由該入口所識別之該資料元件之一資料元件群組中之一下一個資料元件; 於包含針對在該子連結記憶體中之該複數個記憶體庫之各記憶體庫之一或多個頭節點及一或多個尾節點之一子管理器中之各頭節點中,儲存(i)一主記憶體位置之一位址,其儲存一特別頭資料元件,該特別頭資料元件係針對包含該特別頭資料元件之一資料元件群組之一各別記憶體庫中之一第一資料元件,(ii)至該相同記憶體庫中之一子連結記憶體入口之一位址,及(iii)一資料元件序列數目,其表示在包含該特別頭資料元件之該資料元件群組中依資料元件之一經排序序列之該特別頭資料元件之一位置; 於該子管理器中之各尾節點中儲存至一主記憶體位置之一位址,該位址儲存一特別尾資料元件,該特別尾資料元件係針對包含該特別尾資料元件之一資料元件群組之該各別記憶體庫中之一最近資料元件;及 於包含針對在該子連結記憶體中之該複數個記憶體庫中之各記憶體庫之一或多個頭入口之一母管理器中之各頭入口,儲存(i)一快照指標,其用於存取關於在一快照記憶體中之一特別資料元件群組之元資料,及(ii)一快照序列數目,其指示將在下一次被存取之另一資料元件群組, 其中關於一資料元件群組之該元資料包含(i)指向對應於在該子管理器中之該資料元件群組之該一或多個頭節點或該一或多個尾節點之至少一者之指標,及(ii)序列數目,其對應於針對對應於該資料元件群組之該一或多個頭節點或該一或多個尾節點之至少一者之資料元件序列數目,及 其中該快照序列數目對應於一到達順序(arrival order),資料元件群組依該到達順序而到達該網路裝置,該特別資料元件群組及該另一資料元件群組係已到達該網路裝置之連續的資料元件群組。
- 如請求項11之方法,其進一步包括: 基於儲存於各頭入口中之一快照序列數目判定用於存取一或多個資料元件群組之一快照順序; 基於該快照順序存取關於在該快照記憶體中之一資料元件群組之元資料;及 針對該經存取之資料元件群組,使用該各別元資料以判定用於存取在該複數個記憶體庫中之一或多個頭節點或一或多個尾節點之至少一者之一連續順序,該複數個記憶體庫包含針對在該經存取之資料元件群組中之資料元件之資訊。
- 如請求項11之方法,其進一步包括於一快照記憶體中儲存關於一或多個資料元件群組之元資料。
- 如請求項11之方法,其中該母管理器進一步包含針對在該子連結記憶體中之該複數個記憶體庫中之各記憶體庫之一或多個尾入口,該方法進一步包括: 於該一或多個尾入口之各尾入口中,儲存用於連結對應於該一或多個尾入口之一資料元件群組之該一或多個資料元件之元資料。
- 如請求項11之方法,其中一資料元件群組表示一資料封包,該方法進一步包括: 使用資料元件序列數目而指定用於結合儲存於對應於一資料封包之該主記憶體中之資料元件以再生該資料封包之一連續順序。
- 如請求項15之方法,其進一步包括: 使用快照序列數目而指示該到達順序,一或多個資料封包依該到達順序已到達該網路裝置。
- 如請求項11之方法,其中在一記憶體庫中之各頭節點與在該記憶體庫中之一尾節點相關聯,該方法進一步包括: 於一頭節點及一相關聯之尾節點中,儲存針對一資料元件群組之資訊,該資料元件群組包含具有儲存於該記憶體庫中之相對應入口之一或多個資料元件。
- 如請求項11之方法,其中該複數個記憶體庫之各記憶體庫具有一單一存取埠。
- 如請求項11之方法,其進一步包括: 使用一自由入口管理器而識別在該子連結記憶體中之可用記憶體庫,各可用記憶體庫包含非當前使用以維持任何入口之一或多個位置且係可用以儲存針對一或多個新資料元件之一或多個新入口。
- 如請求項19之方法,其中識別在該子連結記憶體中之該可用記憶體庫包括排除經排程而用於寫入或讀取操作之記憶體庫。
- 一種用於操作一網路裝置之方法,該方法包括: 於一主記憶體中儲存來自多個資料元件群組之多個資料元件,各資料元件群組包含資料元件之一經排序序列; 於一子連結記憶體中之複數個記憶體庫之各記憶體庫中,儲存一或多個入口,各入口包含:(i)一主記憶體位置之一位址,其儲存由該入口所識別之一資料元件,及(ii)一子連結記憶體庫之一位址,其儲存在包含由該入口所識別之該資料元件之一資料元件群組中之一下一個資料元件; 於包含針對在該子連結記憶體中之該複數個記憶體庫之各記憶體庫之一或多個頭節點及一或多個尾節點之一子管理器中之各頭節點中,儲存(i)一主記憶體位置之一位址,其儲存一特別頭資料元件,該特別頭資料元件係針對包含該特別頭資料元件之一資料元件群組之一各別記憶體庫中之一第一資料元件,(ii)至該相同記憶體庫中之一子連結記憶體入口之一位址,及(iii)一資料元件序列數目,其表示在包含該特別頭資料元件之該資料元件群組中依資料元件之一經排序序列之該特別頭資料元件之一位置; 於該子管理器中之各尾節點中,儲存至一主記憶體位置之一位址,該位址儲存一特別尾資料元件,該特別尾資料元件係針對包含該特別尾資料元件之一資料元件群組之一各別記憶體庫中之一最近資料元件; 於包含針對在該子連結記憶體中之該複數個記憶體庫中之各記憶體庫之一或多個頭入口之一母管理器中之各頭入口,儲存(i)一快照指標,其用於存取關於在一快照記憶體中之一特別資料元件群組之元資料,及(ii)一快照序列數目,其指示將在下一次被存取之另一資料元件群組,其中該快照序列數目對應於一到達順序,資料元件群組依該到達順序而到達該網路裝置,該特別資料元件群組及該另一資料元件群組係已到達該網路裝置之連續的資料元件群組; 基於儲存於各頭入口中之一快照序列數目判定用於存取一或多個資料元件群組之一快照順序; 基於該快照順序存取關於在該快照記憶體中之一資料元件群組之元資料;及 針對該經存取之資料元件群組,使用該各別元資料以判定用於存取在該複數個記憶體庫中之一或多個頭節點或一或多個尾節點之至少一者之一連續順序,該複數個記憶體庫包含針對在該經存取之資料元件群組中之資料元件之資訊。
- 一種網路裝置,其包括: 一主記憶體,其儲存來自多個資料元件群組之多個資料元件,各資料元件群組包含資料元件之一經排序序列; 一子連結記憶體,其包含複數個記憶體庫,其中各記憶體庫儲存一或多個入口,各入口包含:(i)一主記憶體位置之一位址,其儲存由該入口所識別之一資料元件,及(ii)一子連結記憶體庫之一位址,其儲存在包含由該入口所識別之該資料元件之一資料元件群組中之一下一個資料元件; 一子管理器,其針對在該子連結記憶體中之該複數個記憶體庫之各記憶體庫而包含一或多個頭節點及一或多個尾節點, 其中各頭節點維持(i)一主記憶體位置之一位址,其儲存一特別頭資料元件,該特別頭資料元件係針對包含該特別頭資料元件之一資料元件群組之一各別記憶體庫中之一第一資料元件,(ii)至該相同記憶體庫中之一子連結記憶體入口之一位址,及(iii)一資料元件序列數目,其表示在包含該特別頭資料元件之該資料元件群組中依資料元件之一經排序序列之該特別頭資料元件之一位置,及 其中各尾節點維持至儲存一特別尾資料元件之一主記憶體位置之一位址,該特別尾資料元件係針對包含該特別尾資料元件之一資料元件群組之該各別記憶體庫中之一最近資料元件; 一母管理器,其針對在該子連結記憶體中之該複數個記憶體庫中之各記憶體庫而包含一或多個頭入口, 其中該一或多個頭入口之各頭入口儲存(i)一快照指標,其用於存取關於在一快照記憶體中之一特別資料元件群組之元資料,及(ii)一快照序列數目,其指示將在下一次被存取之另一資料元件群組, 其中該快照序列數目對應於一到達順序,資料元件群組依該到達順序而到達該網路裝置,該特別資料元件群組及該另一資料元件群組係已到達該網路裝置之連續的資料元件群組;及 電路,其經組態以使用該一或多個頭入口以進行以下操作: 基於儲存於各頭入口中之一快照序列數目判定用於存取一或多個資料元件群組之一快照順序; 基於該快照順序存取關於在該快照記憶體中之一資料元件群組之元資料;及 針對該經存取之資料元件群組,使用該各別元資料以判定用於存取在該複數個記憶體庫中之一或多個頭節點或一或多個尾節點之至少一者之一連續順序,該複數個記憶體庫包含針對在該經存取之資料元件群組中之資料元件之資訊。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/800,654 | 2015-07-15 | ||
US14/800,654 US20170017414A1 (en) | 2015-07-15 | 2015-07-15 | System And Method For Implementing Hierarchical Distributed-Linked Lists For Network Devices |
US201562209215P | 2015-08-24 | 2015-08-24 | |
US62/209,215 | 2015-08-24 | ||
US14/975,585 US20170017419A1 (en) | 2015-07-15 | 2015-12-18 | System And Method For Enabling High Read Rates To Data Element Lists |
US14/975,585 | 2015-12-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202044009A TW202044009A (zh) | 2020-12-01 |
TWI720926B true TWI720926B (zh) | 2021-03-01 |
Family
ID=57758253
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105122271A TWI704488B (zh) | 2015-07-15 | 2016-07-14 | 網路裝置、用於網路裝置之記憶體系統及操作網路裝置之方法 |
TW109127109A TWI720926B (zh) | 2015-07-15 | 2016-07-14 | 網路裝置、用於網路裝置之記憶體系統及操作網路裝置之方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105122271A TWI704488B (zh) | 2015-07-15 | 2016-07-14 | 網路裝置、用於網路裝置之記憶體系統及操作網路裝置之方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US20170017419A1 (zh) |
CN (2) | CN108139867B (zh) |
TW (2) | TWI704488B (zh) |
WO (1) | WO2017011671A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11803471B2 (en) | 2021-08-23 | 2023-10-31 | Apple Inc. | Scalable system on a chip |
Families Citing this family (4)
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 |
CN109388490B (zh) * | 2017-08-07 | 2020-11-17 | 华为技术有限公司 | 一种内存分配方法和服务器 |
US11221955B2 (en) * | 2018-09-06 | 2022-01-11 | International Business Machines Corporation | Metadata track selection switching in a data storage system |
CN109324987B (zh) * | 2018-09-27 | 2021-06-01 | 海信视像科技股份有限公司 | 模拟通信接口的时序控制方法、装置与电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW467370U (en) * | 1999-12-07 | 2001-12-01 | Via Tech Inc | Reference clock generation circuit of the disk data pre-recording region |
CN102117278A (zh) * | 2009-12-31 | 2011-07-06 | 联想(北京)有限公司 | 链表的创建方法及系统、数据的查找方法及系统 |
CN102971997A (zh) * | 2010-01-18 | 2013-03-13 | 马维尔国际有限公司 | 包括数据分段和数据描述分段的分组缓冲器 |
US20140351535A1 (en) * | 2013-05-23 | 2014-11-27 | Netapp, Inc. | Snapshots and versioning of transactional storage class memory |
US20150124833A1 (en) * | 2013-11-05 | 2015-05-07 | Cisco Technology, Inc. | Boosting linked list throughput |
TWI488118B (zh) * | 2011-12-16 | 2015-06-11 | Nvidia Corp | 處理系統中動態產生任務的傳訊、排序和執行 |
Family Cites Families (71)
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 |
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 |
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 |
CN1400549A (zh) * | 2001-08-07 | 2003-03-05 | 华为技术有限公司 | 在数据库中检索数据和向拨号上网用户分配ip地址的方法 |
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 |
US8549176B2 (en) * | 2004-12-01 | 2013-10-01 | Cisco Technology, Inc. | Propagation of routing information in RSVP-TE for inter-domain TE-LSPs |
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 |
US7669015B2 (en) | 2006-02-22 | 2010-02-23 | Sun Microsystems Inc. | Methods and apparatus to implement parallel transactions |
US8150805B1 (en) * | 2006-06-30 | 2012-04-03 | Symantec Operating Corporation | Consistency interval marker assisted in-band commands in distributed systems |
US7680842B2 (en) * | 2006-08-18 | 2010-03-16 | Isilon Systems, Inc. | Systems and methods for a snapshot of data |
US7899958B2 (en) * | 2006-12-21 | 2011-03-01 | Unisys Corporation | Input/output completion system and method for a data processing platform |
US9601199B2 (en) * | 2007-01-26 | 2017-03-21 | Intel Corporation | Iterator register for structured memory |
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 |
CN101681312B (zh) | 2008-02-29 | 2012-05-23 | 株式会社东芝 | 存储器系统 |
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 |
WO2010011342A1 (en) * | 2008-07-25 | 2010-01-28 | Brown University | 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 |
CN101594302B (zh) * | 2009-07-01 | 2011-08-03 | 华为技术有限公司 | 数据出队的方法及装置 |
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 |
CN103858392B (zh) | 2011-08-02 | 2018-12-14 | 凯为公司 | 用于更新规则编译数据结构的方法和装置 |
WO2012162949A1 (zh) * | 2011-08-17 | 2012-12-06 | 华为技术有限公司 | 一种报文重组重排序方法、装置和系统 |
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 |
GB2505185A (en) | 2012-08-21 | 2014-02-26 | Ibm | Creating a backup image of a first memory space in a second memory space. |
US9251053B2 (en) * | 2013-03-14 | 2016-02-02 | SanDisk Technologies, Inc. | Managing configuration parameters for a non-volatile medium |
US9535832B2 (en) * | 2013-04-30 | 2017-01-03 | Mediatek Singapore Pte. Ltd. | Multi-hierarchy interconnect system and method for cache system |
US9128615B2 (en) | 2013-05-15 | 2015-09-08 | Sandisk Technologies Inc. | Storage systems that create snapshot queues |
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 |
-
2015
- 2015-12-18 US US14/975,585 patent/US20170017419A1/en not_active Abandoned
-
2016
- 2016-06-24 US US15/192,820 patent/US9785367B2/en active Active
- 2016-07-14 CN CN201680047978.0A patent/CN108139867B/zh active Active
- 2016-07-14 CN CN201910888914.9A patent/CN110765030B/zh active Active
- 2016-07-14 WO PCT/US2016/042303 patent/WO2017011671A1/en active Application Filing
- 2016-07-14 TW TW105122271A patent/TWI704488B/zh active
- 2016-07-14 TW TW109127109A patent/TWI720926B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW467370U (en) * | 1999-12-07 | 2001-12-01 | Via Tech Inc | Reference clock generation circuit of the disk data pre-recording region |
CN102117278A (zh) * | 2009-12-31 | 2011-07-06 | 联想(北京)有限公司 | 链表的创建方法及系统、数据的查找方法及系统 |
CN102971997A (zh) * | 2010-01-18 | 2013-03-13 | 马维尔国际有限公司 | 包括数据分段和数据描述分段的分组缓冲器 |
TWI488118B (zh) * | 2011-12-16 | 2015-06-11 | Nvidia Corp | 處理系統中動態產生任務的傳訊、排序和執行 |
US20140351535A1 (en) * | 2013-05-23 | 2014-11-27 | Netapp, Inc. | Snapshots and versioning of transactional storage class memory |
US20150124833A1 (en) * | 2013-11-05 | 2015-05-07 | Cisco Technology, Inc. | Boosting linked list throughput |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11803471B2 (en) | 2021-08-23 | 2023-10-31 | Apple Inc. | Scalable system on a chip |
US11934313B2 (en) | 2021-08-23 | 2024-03-19 | Apple Inc. | Scalable system on a chip |
US12007895B2 (en) | 2021-08-23 | 2024-06-11 | Apple Inc. | Scalable system on a chip |
Also Published As
Publication number | Publication date |
---|---|
WO2017011671A1 (en) | 2017-01-19 |
CN110765030B (zh) | 2023-11-24 |
TW202044009A (zh) | 2020-12-01 |
TWI704488B (zh) | 2020-09-11 |
CN110765030A (zh) | 2020-02-07 |
CN108139867A (zh) | 2018-06-08 |
US20170017419A1 (en) | 2017-01-19 |
US9785367B2 (en) | 2017-10-10 |
TW201716984A (zh) | 2017-05-16 |
CN108139867B (zh) | 2019-10-18 |
US20170017423A1 (en) | 2017-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI655575B (zh) | 用於使資料元件列表能夠有高讀取率之系統及方法 | |
TWI720926B (zh) | 網路裝置、用於網路裝置之記憶體系統及操作網路裝置之方法 | |
TWI706314B (zh) | 用於網路裝置之記憶體系統、網路裝置、及操作網路裝置的方法 | |
TWI696070B (zh) | 記憶體系統及在網路裝置中實施該記憶體系統之方法,以及網路裝置 | |
WO2016050059A1 (zh) | 共享存储并发访问处理方法及装置、存储介质 | |
US10067690B1 (en) | System and methods for flexible data access containers |