TW201605195A - Method and apparatus for table aging in a network switch - Google Patents
Method and apparatus for table aging in a network switch Download PDFInfo
- Publication number
- TW201605195A TW201605195A TW104112032A TW104112032A TW201605195A TW 201605195 A TW201605195 A TW 201605195A TW 104112032 A TW104112032 A TW 104112032A TW 104112032 A TW104112032 A TW 104112032A TW 201605195 A TW201605195 A TW 201605195A
- Authority
- TW
- Taiwan
- Prior art keywords
- age
- memory
- aging
- network switch
- search
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/252—Store and forward routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3081—ATM peripheral units, e.g. policing, insertion or extraction
- H04L49/309—Header conversion, routing tables or routing tags
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/1016—Performance improvement
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Dram (AREA)
- Tests Of Electronic Circuits (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
Description
本發明涉及高速網路交換機中的表老化(table aging)。更具體地,本發明涉及用於網路交換機中的表老化的方法和裝置。 The present invention relates to table aging in high speed network switches. More specifically, the present invention relates to methods and apparatus for table aging in network switches.
現有技術的網路交換機實施表老化。具體而言,在封包處理階段期間,在某個表處完成查找。該表中的匹配的條目被標注為命中。在記憶體中儲存用於所有表條目的條目命中資訊。週期性硬體或者軟體程序監控條目命中資訊。如果表條目未被命中一段時間則可以執行動作。例如,MAC位址的老化被用來驅逐和更新轉發表條目。在一些其它情況下,這一機制可以用於網路調試。 The prior art network switch implements table aging. Specifically, the lookup is done at a table during the packet processing phase. The matching entries in the table are marked as hits. The entry hit information for all table entries is stored in the memory. A periodic hardware or software program monitors entry hit information. An action can be performed if the table entry has not been hit for a while. For example, aging of MAC addresses is used to evict and update forwarding table entries. In some other cases, this mechanism can be used for network debugging.
現有技術的網路交換機分配用來老化固定表集合的固定記憶體集合。在現代晶片上系統(SOC)設計中,嵌入式記憶體的面積和功率預算通常主導總晶片預算。作為結果,高效地和靈活地利用有限的記憶體資源是關鍵的。 Prior art network switches allocate a fixed set of memory used to age a fixed set of tables. In modern system-on-a-chip (SOC) designs, the area and power budget of embedded memory typically dominates the total wafer budget. As a result, efficient and flexible use of limited memory resources is critical.
軟體定義聯網(SDN)已經是對業界的顛覆性創新 而出現。它提倡網路設備的控制平面和高速資料平面的分離。傳統上在專門化的硬體交換機晶片中完成網路的控制,諸如流管理、路由更新、表老化。然而,在新的SDN時代中,這些複雜化的功能被移入分離的控制器中。這樣的改變需要一種用於資料平面,最特別地是網路交換機晶片的架構和實現方式的新的和不同的方法。 Software Definition Networking (SDN) is already a disruptive innovation for the industry And appeared. It promotes the separation of control planes and high-speed data planes for network devices. Traditionally, network control, such as flow management, routing updates, and table aging, is done in specialized hardware switch chips. However, in the new SDN era, these complications have been moved into separate controllers. Such changes require a new and different approach to the data plane, and most particularly the architecture and implementation of the network switch chip.
本發明的實施例涉及一種集中式表老化模組,該集中式表老化模組高效地和靈活地利用嵌入式記憶體資源,並且該集中式表老化模組實現和促進分離的網路控制器。集中式表老化模組使用嵌入式記憶體資源來並行執行表的老化。表老化模組執行年齡標記程序和年齡刷新程序。記憶體資源包括年齡標記記憶體和年齡屏蔽記憶體。向年齡標記記憶體應用年齡標記。年齡屏蔽記憶體提供關於表條目的老化的每條目控制細微性。 Embodiments of the present invention relate to a centralized table aging module that efficiently and flexibly utilizes embedded memory resources, and the centralized table aging module implements and facilitates separate network controllers . The centralized table aging module uses embedded memory resources to perform aging of the tables in parallel. The table aging module performs an age tagging process and an age refresher. Memory resources include age-labeled memory and age-shielded memory. Apply age markers to age-labeled memory. The age mask memory provides subtle control of each item regarding the aging of the table entries.
在一個方面中,提供一種網路交換機。該網路交換機包括至少一個核心,該至少一個核心包括多個處理單元。網路交換機也包括晶片上記憶體,該晶片上記憶體儲存多個搜索表。多個處理單元與晶片上記憶體通訊以執行表搜索。網路交換機也包括表老化模組,表老化模組包括它自身的嵌入式記憶體。表老化模組能夠老化多個搜索表中的任何搜索表。在一些實施例中,一旦有搜索表被命中,表老化模組從對應搜索請求接收表ID和命中位址。 In one aspect, a network switch is provided. The network switch includes at least one core, the at least one core including a plurality of processing units. The network switch also includes on-wafer memory on which the memory stores a plurality of search tables. A plurality of processing units communicate with memory on the wafer to perform a table search. The network switch also includes a table aging module, and the table aging module includes its own embedded memory. The table aging module is capable of aging any of the plurality of search tables. In some embodiments, once a search table is hit, the table aging module receives the table ID and the hit address from the corresponding search request.
在一些實施例中,表老化模組執行年齡標記程序和 年齡刷新程序。每當對應的搜索表命中發生時,年齡標記程序將年齡記憶體位元設置為被標記(例如,為1)。年齡刷新程序檢查與搜索表對應的所有年齡記憶體位元。檢查基於配置的週期時間週期性地發生或者由軟體特定地觸發。當年齡記憶體位元為未標記(例如,為0)時,向軟體通知相應表條目過時,並且當年齡記憶體位元被標記(例如,1)時,年齡記憶體位被重置為未標記(例如,0),以為下一輪的年齡標記和年齡刷新做準備。 In some embodiments, the table aging module performs an age tagging process and Age refresh program. The age tagging program sets the age memory bit to be flagged (eg, 1) whenever a corresponding search table hit occurs. The age refresh program checks all age memory bits corresponding to the search table. The check occurs periodically based on the configured cycle time or specifically triggered by the software. When the age memory bit is unmarked (eg, 0), the software is notified that the corresponding table entry is out of date, and when the age memory bit is marked (eg, 1), the age memory bit is reset to unmarked (eg, , 0), in preparation for the next round of age markers and age refresh.
在一些實施例中,網路也包括由表老化模組使用的老化配置集合。老化配置集合包括配置、年齡設定檔和中央老化記憶體池。 In some embodiments, the network also includes an aging configuration set used by the table aging module. The aging configuration set includes configuration, age profiles, and a central aging memory pool.
在一些實施例中,多個搜索表中的每個搜索表在老化配置中的一個老化配置中並且包括老化啟用位和指向年齡設定檔中的一個年齡設定檔的指標。 In some embodiments, each of the plurality of search tables is in an aging configuration in the aging configuration and includes an aging enable bit and an indicator that points to one of the age profiles.
在一些實施例中,年齡設定檔中的每個年齡設定檔都指定用於搜索表的刷新時段並且指定中央老化記憶體池中的老化記憶體分配。中央老化記憶體池是嵌入式的。備選地,中央老化記憶體池是晶片上記憶體的一部分。 In some embodiments, each age profile in the age profile specifies a refresh period for the search table and specifies an aging memory allocation in the central aging memory pool. The central aging memory pool is embedded. Alternatively, the central aging memory pool is part of the memory on the wafer.
在一些實施例中,中央老化記憶體池包括年齡標記記憶體和年齡屏蔽記憶體。在一些實施例中,年齡標記記憶體和年齡屏蔽記憶體中的每個記憶體包含多個物理記憶體塊(tile),其中中央老化記憶體池的記憶體被群組成塊。向年齡標記記憶體應用年齡做標記。年齡屏蔽記憶體提供每條目控制細微性,其中在屏蔽位被設置成0時,對應表條目不參 與老化程序。 In some embodiments, the central aging memory pool includes age tag memory and age mask memory. In some embodiments, each of the age tag memory and the age mask memory comprises a plurality of physical memory tiles, wherein the memory of the central aging memory pool is grouped into blocks. Mark ages for age-coded memory applications. The age mask memory provides subtle control of each item, where the corresponding table entry is not specified when the mask bit is set to 0. With the aging program.
在另一方面中,提供了一種在網路交換機中的表老化模組。表老化模組包括老化記憶體塊。老化記憶體塊通常包括年齡標記記憶體和年齡屏蔽記憶體。 In another aspect, a table aging module in a network switch is provided. The table aging module includes an aging memory block. Aging memory blocks typically include age-labeled memory and age-shielded memory.
表老化模組也包括年齡標記程序。年齡標記程序通常包括用於緩存針對表命中的對老化記憶體塊的年齡標記輸入的輸入佇列。 The table aging module also includes an age tagging program. The age tagging program typically includes an input queue for caching the age tag input to the aging memory block for the table hit.
表老化模組也包括年齡刷新程序。年齡刷新程序通常包括年齡標記記憶體中的讀出的年齡標記資料與年齡屏蔽記憶體中的屏蔽位元的逆值的逐位或(OR)運算。 The table aging module also includes an age refresh program. The age refresh program typically includes a bitwise OR operation of the read age mark data in the age tag memory and the inverse value of the mask bit in the age mask memory.
在一些實施例中,表老化模組也包括年齡中斷佇列。當運算的結果不是全1時,結果和記憶體塊位址以及用於老化記憶體列的列位址被推送到年齡中斷佇列中,該老化記憶體列與搜索表條目的集合相對應。 In some embodiments, the table aging module also includes an age interrupt queue. When the result of the operation is not all ones, the result and the memory block address and the column address for the aging memory column are pushed into the age interrupt queue, which corresponds to the set of search table entries.
在一些實施例中,表老化模組也包括用於控制年齡刷新程序的刷新狀態機。 In some embodiments, the table aging module also includes a refresh state machine for controlling the age refresh program.
在又一方面中,提供了一種網路交換機的方法。該方法包括並行處理多個表搜索請求。該方法也包括,在表命中時產生用於由表老化模組處理的資訊。該方法也包括表老化模組使用中央老化記憶體池來並存執行表的老化。表老化模組使用產生的資訊來執行表的老化。 In yet another aspect, a method of a network switch is provided. The method includes processing a plurality of table search requests in parallel. The method also includes generating information for processing by the table aging module when the table hits. The method also includes the table aging module using a central aging memory pool to coexist the aging of the execution table. The table aging module uses the generated information to perform aging of the table.
在一些實施例中,表的老化包括兩個個別程序,這兩個個別程序包括年齡標記程序和年齡刷新程序。在一些實施例中,可以暫停年齡刷新程序。 In some embodiments, the aging of the table includes two individual programs, including an age tag program and an age refresh program. In some embodiments, the age refresh procedure can be suspended.
在一些實施例中,該方法也包括,在並行處理多個表搜索請求之前,可程式化地指派塊的第一子集合作為年齡標記記憶體、可程式化地指派塊的第二子集合為年齡標記記憶體以及可程式化地配置表老化模組。 In some embodiments, the method also includes, prior to processing the plurality of table search requests in parallel, programmatically assigning the first subset of the blocks as age tag memory, and programmatically assigning the second subset of blocks to The age tag memory and the table aging module can be configured programmatically.
100‧‧‧網路交換機 100‧‧‧Network switch
105‧‧‧核心 105‧‧‧ core
110‧‧‧流量管理器 110‧‧‧Traffic Manager
115‧‧‧處理單元 115‧‧‧Processing unit
120‧‧‧處理單元 120‧‧‧Processing unit
125‧‧‧晶片上記憶體 125‧‧‧ Memory on the wafer
130‧‧‧表老化模組 130‧‧‧ table aging module
200‧‧‧老化配置集合 200‧‧‧Aging configuration set
205‧‧‧配置 205‧‧‧Configuration
210‧‧‧年齡設定檔 210‧‧‧ age profile
215‧‧‧中央老化記憶體池 215‧‧‧Central aging memory pool
300‧‧‧中央老化記憶體池 300‧‧‧Central aging memory pool
305‧‧‧年齡標記記憶體 305‧‧‧ age-labeled memory
310‧‧‧年齡屏蔽記憶體 310‧‧‧ age-shielded memory
400‧‧‧表老化模組 400‧‧‧ table aging module
405‧‧‧年齡標記記憶體 405‧‧‧ age-labeled memory
410‧‧‧年齡屏蔽記憶體 410‧‧‧ age screened memory
415‧‧‧輸入佇列 415‧‧‧Input queue
420‧‧‧刷新狀態機 420‧‧‧Refresh state machine
425‧‧‧年齡中斷佇列 425‧‧‧ age interruption queue
500‧‧‧方法 500‧‧‧ method
505-515‧‧‧步驟 505-515‧‧‧Steps
前文將從如附圖中所示的本發明的示例實施例的以下更具體描述中變得明顯,在附圖中,相似標號指代貫穿不同視圖的相同部分。附圖未必按比例,相反重點在於圖示本發明的實施例。 The foregoing description of the preferred embodiments of the invention, The drawings are not necessarily to scale, the
第一圖圖示了根據本發明的實施例的網路交換機的示例性方面。 The first figure illustrates an exemplary aspect of a network switch in accordance with an embodiment of the present invention.
第二圖圖示了根據本發明的實施例的老化配置集合。 The second figure illustrates an aging configuration set in accordance with an embodiment of the present invention.
第三圖圖示了根據本發明的實施例的示例性中央老化記憶體池。 The third figure illustrates an exemplary central aging memory pool in accordance with an embodiment of the present invention.
第四圖圖示了根據本發明的實施例的表老化模組的框圖。 The fourth figure illustrates a block diagram of a table aging module in accordance with an embodiment of the present invention.
第五圖圖示了根據本發明的實施例的老化的方法。 The fifth figure illustrates a method of aging in accordance with an embodiment of the present invention.
在以下描述中,出於說明的目的而闡述許多細節。然而,本領域普通技術人員將認識到,可以在不使用這些具體細節的情況下實現本發明。因此,本發明不旨在被限於所示實施例,而是將被賦予與在此描述的原理和特徵一致的最廣範圍。 In the following description, numerous details are set forth for purposes of illustration. However, one skilled in the art will recognize that the invention may be practiced without these specific details. Therefore, the present invention is not intended to be limited to the embodiments shown, but the scope of the inventions
本發明的實施例涉及一種集中式表老化模組,該集中式表老化模組高效地和靈活地利用嵌入式記憶體資源,並且實現和促進分離的網路控制器。集中式表老化模組使用嵌入式記憶體資源來並行執行表的老化。表老化模組執行年齡標記程序和年齡刷新程序。記憶體資源包括年齡標記記憶體和年齡屏蔽記憶體。向年齡標記記憶體應用年齡標記。年齡屏蔽記憶體提供關於表條目的老化的每條目控制細微性。 Embodiments of the present invention relate to a centralized table aging module that efficiently and flexibly utilizes embedded memory resources and implements and facilitates separate network controllers. The centralized table aging module uses embedded memory resources to perform aging of the tables in parallel. The table aging module performs an age tagging process and an age refresher. Memory resources include age-labeled memory and age-shielded memory. Apply age markers to age-labeled memory. The age mask memory provides subtle control of each item regarding the aging of the table entries.
第一圖圖示了根據本發明的實施例的網路交換機100的示例性構想。網路交換機100包括一個或者多個核心105和流量管理器110。每個核心105通常包括多個管線級。多個管線級包括多個封包處理單元115和至少一個封包修改器120。在一個或者多個核心105中的所有處理單元115、120與晶片上記憶體125通訊以執行表搜索。晶片上記憶體125可以儲存一個或者多個搜索表。搜索表是老化啟用的或者老化停用的。多個封包處理單元115中的每個封包處理單元能夠存取一個或者多個搜索表。 The first figure illustrates an exemplary concept of a network switch 100 in accordance with an embodiment of the present invention. Network switch 100 includes one or more cores 105 and traffic manager 110. Each core 105 typically includes multiple pipeline stages. The plurality of pipeline stages includes a plurality of packet processing units 115 and at least one packet modifier 120. All of the processing units 115, 120 in one or more of the cores 105 communicate with the on-chip memory 125 to perform a table search. The on-chip memory 125 can store one or more search tables. The search table is age-enabled or age-deactivated. Each of the plurality of packet processing units 115 is capable of accessing one or more search tables.
晶片上記憶體125與表老化模組130耦合。表老化模組130包括其自身嵌入式記憶體。嵌入式記憶體通常在用於表搜索的晶片上記憶體125後面工作。嵌入式記憶體可以被用來老化表搜索記憶體池125中的任何搜索表。通常,一旦有搜索表被命中,第一圖的老化模組130即從對應搜索請求接收表ID(Table ID)和命中位址。 The on-wafer memory 125 is coupled to the surface aging module 130. The table aging module 130 includes its own embedded memory. Embedded memory typically operates behind the on-wafer memory 125 for table search. Embedded memory can be used to age any search table in the table search memory pool 125. Generally, once a search table is hit, the aging module 130 of the first figure receives the table ID (Table ID) and the hit address from the corresponding search request.
表老化模組130執行至少兩個個別的程序,這兩個個別的程序包括年齡老化程序和年齡刷新程序。對於配置為 老化啟用的那些搜索表,在表老化模組130的嵌入式記憶體中存在與每個表條目對應的記憶體位元。每當對應的搜索表命中發生時,年齡標記程序將年齡記憶體位元設置成1。基於配置的週期時間週期性地(即,自動老化模式)或者由軟體特定地觸發(即,觸發模式),年齡刷新程序檢查與搜索表對應的所有年齡記憶體位元。如果年齡記憶體位元是0,表示相應表條目自從先前老化刷新程序以來尚未被命中,則向軟體通知相應表條目過時。如果年齡記憶體位元是1,表示相應表條目是活躍的,則年齡記憶體位元被重置成0,以為下一輪年齡標記和年齡刷新做準備。 The table aging module 130 executes at least two individual programs, including an ageing program and an age refresh program. For configuration as For those search tables that are enabled for aging, there are memory bits corresponding to each table entry in the embedded memory of the table aging module 130. The age tagging program sets the age memory bit to 1 whenever a corresponding search table hit occurs. The age refresh program checks all age memory bits corresponding to the search table based on the configured cycle time periodically (ie, the automatic aging mode) or specifically triggered by the software (ie, the trigger mode). If the age memory bit is 0, indicating that the corresponding table entry has not been hit since the previous aging refresh procedure, the software is notified that the corresponding table entry is out of date. If the age memory bit is 1, indicating that the corresponding table entry is active, the age memory bit is reset to 0 in preparation for the next round of age markers and age refresh.
通常在特徵豐富的網路交換機,例如網路交換機100中存在許多搜索表。例如,可以存在用於網路交換機100的整個SOC晶片的多於160個搜索表。示例性搜索表包括但不限於路由表、存取控制清單(ACL)、流量表等。直接老化160個或者更多搜索表對於SOC晶片一次處理而言可能太多,並且具有較少實用性。 There are typically many search tables in a feature-rich network switch, such as network switch 100. For example, there may be more than 160 search tables for the entire SOC wafer of network switch 100. Exemplary search tables include, but are not limited to, routing tables, access control lists (ACLs), flow meters, and the like. Direct aging of 160 or more search tables may be too much for a single processing of the SOC wafer and has less utility.
第二圖圖示了根據本發明的實施例的老化配置集合200。在一些實施例中,老化配置集合200由第一圖的表老化模組130使用。老化配置集合200包括配置205、年齡設定檔210和中央老化記憶體池215。 The second figure illustrates an aging configuration set 200 in accordance with an embodiment of the present invention. In some embodiments, the aging configuration set 200 is used by the table aging module 130 of the first figure. The aging configuration set 200 includes a configuration 205, an age profile 210, and a central aging memory pool 215.
在一些實施例中,為多於160個搜索表提供了64個年齡設定檔210。然而,可以提供或多或少的年齡設定檔。搜索表中的在老化配置205中的一個老化配置中的每個搜索表包括老化啟用位元(即,age_en)和指向64個年齡設定檔210 中的一個年齡設定檔的指標(即,cfg_id)。age_en指示搜索表是否是老化啟用的。 In some embodiments, 64 age profiles 210 are provided for more than 160 search tables. However, more or less age profiles can be provided. Each of the search tables in the aging configuration 205 in the search table includes an aging enable bit (ie, age_en ) and an indicator pointing to one of the 64 age profiles 210 (ie, cfg_id ) . Age_en indicates whether the search table is aging enabled.
每個年齡設定檔210指定用於搜索表的刷新時段(即,refr_period)。刷新時段為了更高等級系統中的靈活性有利地允許不同老化細微性。例如,MAC表條目可以在數分鐘不活躍之後被老化掉。如另一示例,流量表條目可以在數秒之後被宣告不活躍。年齡設定檔也指定中央老化記憶體池215中的老化記憶體分配(即,mem_row_offset、mem_row_inc)。 Each age profile 210 specifies a refresh period (ie, refr_period ) for the search table. The refresh period advantageously allows for different aging subtleties for flexibility in higher level systems. For example, a MAC table entry can be aged out after a few minutes of inactivity. As another example, the flow meter entry can be declared inactive after a few seconds. The age profile also specifies the aging memory allocation in the central aging memory pool 215 (ie, mem_row_offset , mem_row_inc ).
在一些實施例中,第一圖的表老化模組130使用集中式公共記憶體池。第二圖的老化記憶體池215是集中式公共記憶體池的一部分。在一些實施例中,集中式公共記憶體池是嵌入式的。或者是,集中式公共記憶體池是第一圖的晶片上記憶體125的一部分。 In some embodiments, the table aging module 130 of the first figure uses a centralized public memory pool. The aging memory pool 215 of the second figure is part of a centralized common memory pool. In some embodiments, the centralized public memory pool is embedded. Alternatively, the centralized common memory pool is part of the on-wafer memory 125 of the first figure.
在一些實施例中,即使對應搜索表是老化啟用的,每個表搜索請求仍然指定特定搜索是否應當參與老化程序。這一靈活性的一個示例是MAC表的老化。通常,僅存在用於MAC位址查找的一個表。來源MAC位址查找可能想要參與老化程序。然而,目的地MAC位址查找可能不想參與老化程序,因為目的地可能已經從當前目的地埠移開而網路交換機尚不知道這一點。 In some embodiments, each table search request specifies whether a particular search should participate in the aging procedure, even if the corresponding search table is aging enabled. An example of this flexibility is the aging of the MAC table. Usually, there is only one table for MAC address lookup. Source MAC address lookups may want to participate in the aging process. However, the destination MAC address lookup may not want to participate in the aging procedure because the destination may have been removed from the current destination and the network switch is not aware of this.
第三圖圖示了根據本發明的實施例的示例性中央老化記憶體池300。在一些實施例中,如中央老化記憶體池300那樣相似地配置了第二圖的中央老化記憶體池215。中央老化 記憶體池300包括年齡標記記憶體305和年齡屏蔽記憶體310,它們中的每一個包含多個物理記憶體塊。在一些實施例中,記憶體池300的記憶體被群組成塊。塊通常包含相同數目的記憶體。在一些實施例中,每個塊是64位寬和2048條目深。如第三圖中所示,八個記憶體塊被用來建構年齡標記記憶體305和年齡屏蔽記憶體310中的每個記憶體。然而,年齡標記記憶體305和年齡屏蔽記憶體310中的每個記憶體可以用更多或者更少的記憶體塊來構造。用於年齡標記記憶體305的記憶體塊的數目可以與用於年齡屏蔽記憶體310的記憶體塊的數目相同或者不同。 The third figure illustrates an exemplary central aging memory pool 300 in accordance with an embodiment of the present invention. In some embodiments, the central aging memory pool 215 of the second map is similarly configured as the central aging memory pool 300. Central aging The memory pool 300 includes an age tag memory 305 and an age mask memory 310, each of which contains a plurality of physical memory blocks. In some embodiments, the memory of memory pool 300 is grouped into blocks. Blocks usually contain the same amount of memory. In some embodiments, each block is 64 bits wide and 2048 entries deep. As shown in the third figure, eight memory blocks are used to construct each of the age tag memory 305 and the age mask memory 310. However, each of the age tag memory 305 and the age mask memory 310 can be constructed with more or fewer memory blocks. The number of memory blocks for age tag memory 305 may be the same or different than the number of memory blocks used for age mask memory 310.
如以上所描述的,向年齡標記記憶體305應用年齡標記。年齡屏蔽記憶體310提供每條目控制細微性。如果屏蔽位被設置為0,則對應表條目不參與老化程序。每條目控制細微性提供許多益處。例如,系統想要移除路由表中的任何過時條目。然而,可能存在靜態配置的永遠不應被驅逐的一些路由條目。 Age markers are applied to age-labeled memory 305 as described above. The age mask memory 310 provides fine control of each item. If the mask bit is set to 0, the corresponding table entry does not participate in the aging procedure. Each item controls the subtlety that provides many benefits. For example, the system wants to remove any obsolete entries in the routing table. However, there may be statically configured routing entries that should never be evicted.
第四圖圖示了根據本發明的實施例的表老化模組400的框圖。在一些實施例中,如表老化模組400那樣相似地配置了第一圖的表老化模組130。表老化模組400允許並行處理表老化。 The fourth diagram illustrates a block diagram of a table aging module 400 in accordance with an embodiment of the present invention. In some embodiments, the table aging module 130 of the first map is similarly configured as the aging module 400. The table aging module 400 allows table aging to be processed in parallel.
在年齡標記程序期間,在老化記憶體超額的情況下在可以是FIFO緩衝器的輸入佇列415中緩存針對表命中的對老化記憶體塊405、410的年齡標記輸入。軟體可以配置老化程序以與年齡標記記憶體405的頻寬完美地匹配,這意味著 僅少數表將被老化。備選地,軟體可以配置老化程序以將許多表配置為被老化的。然而,有可能的是並非所有表命中將被標記,其中標記將變成概率性的。用於每個表命中的年齡標記輸入包括表ID(即,tbl_age)和表命中位址。表命中位址被用來恰好映射到對應年齡標記記憶體405的一列中的一位元。 During the age tagging process, the age tag input to the aging memory block 405, 410 for the table hit is cached in the input queue 415, which may be a FIFO buffer, in the case of an aging memory excess. The software can be configured with an aging program to perfectly match the bandwidth of the age tag memory 405, which means that only a few tables will be aged. Alternatively, the software can configure an aging program to configure many tables to be aged. However, it is possible that not all table hits will be flagged, where the tags will become probabilistic. The age tag input for each table hit includes the table ID (ie, tbl_age ) and the table hit address. The table hit address is used to map exactly to a bit in a column of the corresponding age tag memory 405.
在年齡刷新程序期間,年齡標記記憶體405中的讀出的年齡標記資料與年齡屏蔽記憶體410中的屏蔽位元的逆值逐位或(OR)值。如果結果是全1,則條目中的每個條目已經在以往刷新期間被命中。然而,如果結果不是全1,則存在在以往刷新事件期間尚未命中的一個或者多個條目。年齡標記記憶體塊位址和列位址以及取或值的資料被推送到如FIFO緩衝器的年齡中斷佇列425中。然後,出於驅逐目的、網路調試目的及/或其它目的,中斷被發送到CPU,比如外部系統CPU。 During the age refresh procedure, the read age mark data in age tag memory 405 and the inverse value bitwise OR (OR) value of the mask bit in age mask memory 410. If the result is all ones, then each entry in the entry has been hit during a previous refresh. However, if the result is not all ones, then there are one or more entries that have not hit during the previous refresh event. The age tag memory block address and column address and the data of the fetch value are pushed into the age interrupt queue 425, such as the FIFO buffer. The interrupt is then sent to the CPU, such as an external system CPU, for purposes of expulsion, network debugging purposes, and/or other purposes.
刷新狀態機420通常控制年齡刷新程序。表1列舉刷新狀態機420的配置。 Refresh state machine 420 typically controls the age refresh program. Table 1 lists the configuration of the refresh state machine 420.
如果老化單元處於自動老化模式,則年齡刷新程序基於配置的週期時間週期性地檢查與搜索表對應的所有記憶體位。 If the aging unit is in the automatic aging mode, the age refresh program periodically checks all memory locations corresponding to the search table based on the configured cycle time.
如果老化單元處於觸發模式,則trig_cfg_bmp欄位指示64個年齡設定檔中的哪些年齡設定檔將在系統CPU寫時進行年齡刷新程序。 If the aging unit is in the trigger mode, the trig_cfg_bmp field indicates which of the 64 age profiles will perform the age refresh procedure when the system CPU writes.
通常,硬體老化程序與CPU中的軟體相比更快多個數量級地運行,年齡中斷佇列425可能容易溢出。基於en_pause欄位,一旦年齡中斷佇列425佔用水準超過如由fifo_thd欄位設置的某個配置的閾值,刷新程序可以暫停。年齡老化程序通常暫停直至CPU消耗年齡中斷佇列425到配置的閾值以下。 Typically, the hardware aging program runs multiple orders of magnitude faster than the software in the CPU, and the age interrupt queue 425 may easily overflow. Based on the en_pause field, the refresh procedure can be suspended once the age interrupt 425 occupancy level exceeds a configured threshold as set by the fifo_thd field. The ageing program typically pauses until the CPU consumes an age interrupt 425 column below the configured threshold.
由於有限的記憶體硬體或者處理速率,在某個老化配置中並非所有表命中可以被標記,這可能造成錯誤老化報警。然而,由於網路流量的性質,多數活躍流將具有經過交換機的多於一個封包。因此,即使一個封包錯過年齡標記程 序,不可能所有封包都將錯過年齡標記程序,尤其是如果老化刷新週期合理地足夠長,這是針對實際用例的情況。另外,這一硬體架構使軟體能夠在更高等級應用中實施不同表老化機制,例如使用多於1位元寬的年齡計數器來老化。 Due to limited memory hardware or processing speed, not all table hits can be flagged in an aging configuration, which can cause false aging alarms. However, due to the nature of network traffic, most active streams will have more than one packet passing through the switch. So even if a packet misses the age mark Preface, it is unlikely that all packets will miss the age tagging process, especially if the aging refresh cycle is reasonably long enough, this is the case for actual use cases. In addition, this hardware architecture enables software to implement different table aging mechanisms in higher level applications, such as aging with an age counter that is more than one bit wide.
第五圖圖示了根據本發明的實施例的老化的方法500。方法500通常由第一圖的網路交換機100執行。如以上所討論的,網路交換機100包括晶片上記憶體125。多個封包處理單元115與晶片上記憶體125通訊以執行表搜索。 The fifth figure illustrates a method 500 of aging in accordance with an embodiment of the present invention. Method 500 is typically performed by network switch 100 of the first figure. As discussed above, network switch 100 includes on-wafer memory 125. A plurality of packet processing units 115 communicate with the on-chip memory 125 to perform a table search.
在步驟505,並行處理多個表搜索請求。 At step 505, a plurality of table search requests are processed in parallel.
在步驟510,在表命中時,產生資訊用於由表老化模組處理。 At step 510, at the time of the table hit, information is generated for processing by the table aging module.
在步驟515,表老化模組使用中央記憶體池來並行執行表的老化。表老化模組通常使用產生的資訊來執行表的老化。如以上所討論的,表的老化包括兩個個別程序,這兩個個別程序包括年齡標記程序和年齡刷新程序。中央老化記憶體池包括年齡標記記憶體和年齡屏蔽記憶體。 At step 515, the table aging module uses the central memory pool to perform aging of the tables in parallel. Table aging modules typically use the information generated to perform aging of the table. As discussed above, the aging of the table includes two individual programs, including an age tag program and an age refresh program. The central aging memory pool includes age-coded memory and age-shielded memory.
年齡標記程序包括用於緩存針對表命中的對老化記憶體塊的年齡標記輸入的輸入佇列,而年齡刷新程序包括年齡標記記憶體中的讀出的年齡標記資料與年齡屏蔽記憶體中的屏蔽位元的逆值的逐位或(OR)運算。如果結果是全1,則條目中的每個條目已經在以往刷新期間被命中或者需要被保存。然而,如果結果不是全1,則存在在以往刷新事件期間尚未命中的一個或者多個條目。用於那些路由條目的記憶體塊位址和列位址以及取或的資料被推送到年齡中斷佇列中。 然後,出於驅逐目的、網路調試目的及/或其它目的,中斷被發送到CPU,例如外部系統CPU。在一些實施例中,年齡刷新程序可以被暫停以防止年齡中斷佇列的溢出。 The age tagging program includes an input queue for caching the age tag input for the aging memory block for the table hit, and the age refresh program includes the read age tag data in the age tag memory and the mask in the age mask memory. A bitwise OR operation of the inverse of a bit. If the result is all 1, each entry in the entry has been hit during the previous refresh or needs to be saved. However, if the result is not all ones, then there are one or more entries that have not hit during the previous refresh event. The memory block address and column address for those routing entries and the extracted data are pushed into the age interrupt queue. The interrupt is then sent to the CPU, such as an external system CPU, for purposes of expulsion, network debugging purposes, and/or other purposes. In some embodiments, the age refresh program can be suspended to prevent overflow of the age interrupt queue.
在一些實施例中,方法500也包括,在步驟505處並行處理多個表搜索請求之前可程式化地指派塊的第一子集合作為年齡標記記憶體、可程式化地指派塊的第二子集合作為年齡標記記憶體以及可程式化地配置表老化模組。不同於使用專用記憶體用於表老化的現有技術的聯網交換機,網路交換機100使用一種集中式表老化模組,該集中式表老化模組高效地和靈活地使用嵌入式記憶體資源用於表老化。 In some embodiments, method 500 also includes, prior to processing the plurality of table search requests in parallel, the first subset of the blocks can be programmatically assigned as age tag memory, and the second child of the block can be programmatically assigned The collection is used as an age tag memory and the table aging module can be configured programmatically. Unlike prior art networking switches that use dedicated memory for table aging, network switch 100 uses a centralized table aging module that efficiently and flexibly uses embedded memory resources for Table aging.
本領域普通技術人員將認識到其它使用和優點也存在。儘管已經參照許多具體細節描述了本發明,但是本領域普通技術人員將認識到可以在其它具體形式中體現本發明而不偏離本發明的精神。因此,本領域普通技術人員將會理解本發明不會受前述示例細節限制而更確切地將由所附申請專利範圍限定。 One of ordinary skill in the art will recognize that other uses and advantages exist. While the invention has been described with respect to the specific embodiments, the embodiments Therefore, those of ordinary skill in the art will understand that the invention is not limited by the details of the foregoing examples.
400‧‧‧表老化模組 400‧‧‧ table aging module
405‧‧‧年齡標記記憶體 405‧‧‧ age-labeled memory
410‧‧‧年齡屏蔽記憶體 410‧‧‧ age screened memory
415‧‧‧輸入佇列 415‧‧‧Input queue
420‧‧‧刷新狀態機 420‧‧‧Refresh state machine
425‧‧‧年齡中斷佇列 425‧‧‧ age interruption queue
Claims (25)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/289,548 US9773036B2 (en) | 2014-05-28 | 2014-05-28 | Method and apparatus for table aging in a network switch |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201605195A true TW201605195A (en) | 2016-02-01 |
Family
ID=54701909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104112032A TW201605195A (en) | 2014-05-28 | 2015-04-15 | Method and apparatus for table aging in a network switch |
Country Status (4)
Country | Link |
---|---|
US (2) | US9773036B2 (en) |
CN (1) | CN105282037B (en) |
HK (1) | HK1220829A1 (en) |
TW (1) | TW201605195A (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107800652A (en) * | 2017-10-20 | 2018-03-13 | 深圳市楠菲微电子有限公司 | The protocol access method and device used in a switch |
US10777297B2 (en) * | 2018-12-10 | 2020-09-15 | Micron Technology, Inc. | Age-based refresh of firmware |
US11169932B2 (en) | 2019-05-17 | 2021-11-09 | Google Llc | Flow table aging optimized for dram access |
EP3970328B1 (en) * | 2019-05-17 | 2024-10-30 | Google LLC | Flow table aging optimized for dram access |
CN112672387B (en) * | 2020-12-21 | 2021-08-31 | 广西东信易联科技有限公司 | Method and system for automatically switching network modes according to user data |
CN114710438B (en) * | 2022-05-07 | 2022-12-27 | 珠海星云智联科技有限公司 | Hardware table entry aging processing method and related equipment |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6813266B1 (en) * | 1999-05-21 | 2004-11-02 | Advanced Micro Devices, Inc. | Pipelined access to address table in a network switch |
US6981058B2 (en) * | 2001-03-07 | 2005-12-27 | Broadcom Corporation | System and method for slot based ARL table learning with concurrent table search using write snoop |
US6993033B1 (en) * | 2001-04-04 | 2006-01-31 | Advanced Micro Devices, Inc. | Method and apparatus for synchronizing aging operations associated with an address table |
US7194573B1 (en) * | 2003-10-31 | 2007-03-20 | Integrated Device Technology, Inc. | CAM-based search engine devices having advanced search and learn instruction handling |
US7325239B2 (en) * | 2003-11-12 | 2008-01-29 | International Business Machines Corporation | Method and system of generically managing tables for network processors |
CN101047670B (en) * | 2006-04-14 | 2010-04-21 | 华为技术有限公司 | MAC address table ageing, operation method and process system thereof |
CN101370016B (en) * | 2008-10-17 | 2011-10-26 | 成都市华为赛门铁克科技有限公司 | Aging method, apparatus and system for data stream list |
CN101488862B (en) * | 2009-02-23 | 2012-02-08 | 中兴通讯股份有限公司 | Distributed Ethernet switch and internal MAC address maintaining method thereof |
US9727508B2 (en) * | 2009-04-27 | 2017-08-08 | Intel Corporation | Address learning and aging for network bridging in a network processor |
JP5433332B2 (en) * | 2009-07-23 | 2014-03-05 | アラクサラネットワークス株式会社 | Network relay device, control method thereof, and computer program |
US8599858B1 (en) * | 2009-08-12 | 2013-12-03 | Marvell Israel (M.I.S.L.) Ltd. | System and method for keep alive message aging |
US9269411B2 (en) * | 2012-03-14 | 2016-02-23 | Broadcom Corporation | Organizing data in a hybrid memory for search operations |
-
2014
- 2014-05-28 US US14/289,548 patent/US9773036B2/en active Active
-
2015
- 2015-04-15 TW TW104112032A patent/TW201605195A/en unknown
- 2015-05-18 CN CN201510254680.4A patent/CN105282037B/en active Active
-
2016
- 2016-07-26 HK HK16108887.1A patent/HK1220829A1/en unknown
-
2017
- 2017-08-11 US US15/675,336 patent/US10216780B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9773036B2 (en) | 2017-09-26 |
CN105282037A (en) | 2016-01-27 |
US20150347313A1 (en) | 2015-12-03 |
HK1220829A1 (en) | 2017-05-12 |
CN105282037B (en) | 2020-04-24 |
US20170364541A1 (en) | 2017-12-21 |
US10216780B2 (en) | 2019-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10216780B2 (en) | Method and apparatus for table aging in a network switch | |
KR101826725B1 (en) | Technologies for network device flow lookup management | |
US9571412B2 (en) | Systems and methods for hardware accelerated timer implementation for openflow protocol | |
US20180060136A1 (en) | Techniques to dynamically allocate resources of configurable computing resources | |
US10303618B2 (en) | Power savings via dynamic page type selection | |
KR101455899B1 (en) | Microprocessor with software control over allocation of shared resources among multiple virtual servers | |
US20090172315A1 (en) | Priority aware selective cache allocation | |
US11567556B2 (en) | Platform slicing of central processing unit (CPU) resources | |
US20150081941A1 (en) | Shared receive queue allocation for network on a chip communication | |
TWI752415B (en) | Data transmission method and device in TEE system | |
EP2549377A2 (en) | A scalable hardware mechanism to implement time outs for pending pop requests to blocking work queues | |
US20180288503A1 (en) | Profiles for collecting telemetry data | |
TWI619016B (en) | Cache controllers of a shared cache memory system and methods for allocating cache lines of a shared cache memory system | |
US10049035B1 (en) | Stream memory management unit (SMMU) | |
US20170139860A1 (en) | Techniques for escalating interrupts in a data processing system to a higher software stack level | |
US20160004654A1 (en) | System for migrating stash transactions | |
JP2016512643A (en) | Interrupt-driven hardware random number generator | |
Breitbart et al. | Dynamic co-scheduling driven by main memory bandwidth utilization | |
US8671232B1 (en) | System and method for dynamically migrating stash transactions | |
US20130061009A1 (en) | High Performance Free Buffer Allocation and Deallocation | |
JPWO2012137339A1 (en) | Information processing apparatus, parallel computer system, and control method for arithmetic processing apparatus | |
AU2015354704A1 (en) | Generating approximate usage measurements for shared cache memory systems | |
EP3640797A1 (en) | Dynamic traffic-aware interface queue switching among processor cores | |
US20220385732A1 (en) | Allocation of distributed cache | |
US11429413B2 (en) | Method and apparatus to manage counter sets in a network interface controller |