A table entry arrangement method, device, apparatus and storage medium

By splitting the entries for mutually exclusive services and arranging them in different storage units, the problem of insufficient DDR memory bandwidth is solved, achieving more efficient bandwidth utilization and storage space compression, which is suitable for the entry design of network devices.

CN113095052BActive Publication Date: 2026-03-31ZTE CORP
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2019-12-23
Publication Date
2026-03-31

AI Technical Summary

Technical Problem

The bandwidth of DDR memory lags far behind the forwarding performance of NP/ASIC, resulting in insufficient storage space. This is especially true with the abundance of 5G services, where traditional table design methods lead to serious bandwidth waste.

Method used

The entries for mutually exclusive services are split into multiple parts, and these parts are arranged sequentially in different storage units, especially in the banks of DDR memory. By utilizing the bandwidth of each bank, efficient bandwidth utilization is achieved through splitting and sharing.

Benefits of technology

It effectively reduces DDR storage space requirements, improves bandwidth utilization, reduces storage space waste, and meets the design requirements of network equipment with high bandwidth needs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113095052B_ABST
    Figure CN113095052B_ABST
Patent Text Reader

Abstract

The application provides a table entry arrangement method, device, equipment and storage medium. The method comprises the following steps: splitting a table entry of mutually exclusive services into multiple parts; and arranging the multiple parts in different storage units in sequence. The technical scheme provided by the embodiment of the application solves the problem of insufficient storage space caused by a large number of table entry copies in the prior art, and effectively compresses the space utilization of DDR and improves the space utilization rate by using a small amount of table entry space under the condition of fixed bandwidth.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication equipment technology, specifically to a table arrangement method, apparatus, device, and storage medium. Background Technology

[0002] In the traditional table design method of integrated circuits (ASICs) and network processors (NPs), each service table is designed as a continuous linear space, occupying one or more consecutive banks in memory. The number of bank copies is calculated in advance based on the bandwidth requirements of the service table. Here, a bank is a unit for internal storage and bandwidth resource allocation of double data rate (DDR) memory.

[0003] However, due to the huge difference between the bandwidth of DDR memory and the forwarding performance of NP, the number of copies is very large, which leads to a significant shortage of storage space in DDR memory. Summary of the Invention

[0004] This application provides a method, apparatus, device, and storage medium for arranging table entries.

[0005] In a first aspect, embodiments of this application provide a method for arranging table entries, including:

[0006] Split mutually exclusive business entries into multiple parts;

[0007] The multiple parts are arranged sequentially in different storage units.

[0008] Secondly, embodiments of this application provide a table item arrangement device, comprising:

[0009] The split module is configured to split mutually exclusive business entries into multiple parts;

[0010] The arrangement module is configured to arrange the multiple parts sequentially in different storage units.

[0011] Thirdly, embodiments of this application provide a device, including:

[0012] One or more processors;

[0013] Memory, used to store one or more programs;

[0014] When the one or more programs are executed by the one or more processors, the one or more processors implement any of the methods described in the embodiments of this application.

[0015] Fourthly, embodiments of this application provide a storage medium storing a computer program, which, when executed by a processor, implements any of the methods described in the embodiments of this application.

[0016] Further details regarding the above embodiments and other aspects of this application, as well as their implementations, are provided in the accompanying drawings, detailed description, and claims. Attached Figure Description

[0017] Figure 1 This is the existing NP / ASCI table item arrangement method;

[0018] Figure 2 This is a flowchart of a table item arrangement method provided in an embodiment of this application;

[0019] Figure 3 This is a schematic diagram of a table item arrangement method provided in the embodiments of this application;

[0020] Figure 4 This is a schematic diagram of another table item arrangement method provided in the embodiments of this application.

[0021] Figure 5 A schematic diagram of a table item arrangement device provided in an embodiment of this application;

[0022] Figure 6 This is a schematic diagram of the structure of a device provided in this application. Detailed Implementation

[0023] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in detail below with reference to the accompanying drawings. It should be noted that, unless otherwise specified, the embodiments and features described in these embodiments can be arbitrarily combined with each other.

[0024] The rapid pace of network development, the growth in network traffic, and the emergence of new services necessitate network equipment with line-speed and flexible processing capabilities. Currently, network chips are broadly categorized into two types: ASIC and NP.

[0025] Network chips have a rich set of peripheral interfaces, such as Static Random Access Memory (SRAM), Tternary Content Addressable Memory (TCAM), and Synchronous Dynamic Random Access Memory (SDRAM). These memories store various service entries, such as port tables, medium access control (MAC) tables, and routing tables. In addition, the chip contains a large number of registers.

[0026] The processing performance of NP and ASIC chips is advancing rapidly, from 10G to 40G to 100G. In the era of 5G mobile communication technology, the processing performance of NP and ASIC has reached the 1Tbps level, showing an exponential growth trend. However, the performance of peripheral memory is far behind the development of NP and ASIC performance. From the first generation DDR memory to the second generation DDR memory, and from the third generation DDR memory to the fourth generation DDR memory, the growth is only exponential.

[0027] To address the issue of DDR memory bandwidth lagging far behind NP / ASIC forwarding performance, the current common solution is to use bank replication. Here, a bank is a unit for allocating internal storage and bandwidth resources in DDR memory. In other words, it uses a space-for-time tradeoff to solve the problem of DDR bandwidth lagging far behind NP / ASIC forwarding performance.

[0028] However, the above solutions bring problems. Due to the huge difference between DDR bandwidth and NP forwarding performance, the number of copies is very large, so the storage space of DDR is obviously insufficient. In particular, with the increasing richness of 5G services and the increasing number of service entries required, the above contradictions are becoming more and more obvious.

[0029] Figure 1 This is the existing NP / ASCI table item arrangement method. For example... Figure 1 As shown, the current traditional NP / ASCI table design method designs each business table as a continuous linear space, occupying one or multiple consecutive banks on a bank-by-bank basis. The number of bank replicas is calculated in advance based on the bandwidth requirements of the business table, and the table entries are designed and arranged accordingly. Figure 1 A rectangle 101 in the diagram represents a bank.

[0030] like Figure 1As shown, in the traditional table arrangement method, Table 1 and Table 2 each occupy a dedicated bank slot. If only service 1 corresponding to Table 1 exists, the bank bandwidth occupied by Table 2 will be a significant waste. When designing and arranging table entries, all potentially enabled services are considered and fixed entries are reserved. However, many service users rarely configure them, resulting in severe bandwidth waste.

[0031] Figure 2 This is a flowchart illustrating a table entry arrangement method provided in an embodiment of this application. This method is applicable to situations where the arrangement of business table entries in a bank within a memory is designed. This method can be executed by the table entry arrangement device provided in this application, which can be implemented in software and / or hardware.

[0032] like Figure 2 As shown, the table item arrangement method provided in this application mainly includes steps S11 and S12.

[0033] S11. Split the entries for mutually exclusive business logic into multiple parts;

[0034] S12. Arrange the multiple parts sequentially in different storage units.

[0035] It should be noted that in this embodiment, one storage unit is equivalent to one bank.

[0036] In one exemplary embodiment, splitting an entry for a mutually exclusive service into multiple parts includes splitting the entry for the mutually exclusive service into 2^N parts, where N is the number of storage units.

[0037] In one exemplary embodiment, arranging the plurality of parts sequentially in different storage units includes: arranging the plurality of parts sequentially in a plurality of horizontally arranged storage units.

[0038] In one exemplary embodiment, the method further includes: partially allocating each entry in each storage unit to a preset number of resource pools.

[0039] In one exemplary embodiment, the number of resource pools is the same as the number of table entries.

[0040] In one exemplary embodiment, the mutually exclusive services are services belonging to different service layers.

[0041] In one exemplary embodiment, a resource pool corresponds to a table entry in a write table block.

[0042] In an application example, Figure 3 This is a schematic diagram of a table item arrangement method provided in the embodiments of this application, such as... Figure 3As shown, Table 1 and Table 2 are split and distributed across different banks. Specifically, Table 1 is split into a first part and a second part, and Table 2 is split into a first part and a second part. The first and second parts of Table 1 are placed within the bandwidth of two banks. This allows each service to share the bandwidth of both banks, significantly improving bandwidth utilization. For a single service, this results in twice the bandwidth compared to traditional designs.

[0043] With this design approach, for a certain service that requires a fixed bandwidth, only half the table space of the traditional method is needed. Therefore, it can effectively compress DDR space utilization and improve space utilization.

[0044] In an application example, if a certain business table entry requires bandwidth M, and the table is distributed across N banks, with each bank providing bandwidth B and having C copies, then the following relationship exists:

[0045] M = N × B × C.

[0046] When designing table entries, calculate and arrange them according to the formula above.

[0047] For example, each of Table 1, Table 2, Table 3, and Table 4 in a certain business has a capacity of one bank and requires 800M of business accesses. The single-bank bandwidth of DDR is 10Mpps. In the traditional way, Table 1 and Table 2 each need to be copied 80 times.

[0048] Figure 4 This is a schematic diagram of another table item arrangement provided in the embodiments of this application. If the technical solution provided in this application is followed, such as... Figure 4 As shown, each of Tables 1, 2, 3, and 4 is divided into four parts and distributed across four horizontal banks. Since all four parts can utilize the bandwidth of their respective banks, each table only needs to be copied 20 times. This significantly saves bandwidth.

[0049] To fully utilize the bandwidth of each bank, a single table is divided into multiple parts. The management method of the control plane table entry index needs to be changed. Each table entry in the write block is treated as a resource pool. In the example above, four resource pools need to be allocated. When allocating resources, try to distribute them evenly among the four resource pools to achieve bandwidth load sharing as much as possible.

[0050] For the forwarding plane, table lookups are distributed across different banks, thus distributing the lookup load across multiple banks and making full use of their bandwidth.

[0051] In an application example, to facilitate writing and looking up tables, we can consider dividing the table entries into 2n (an integer power of 2) parts, where n is the number of banks to be distributed. In this way, the table index is used, with Index[n:0] as the bank selection and Index[m:n+1] as the lookup index within the bank. The forwarding plane lookup is handled similarly.

[0052] Using this method, the same table lookup bandwidth requirement is greatly reduced in space. In the example above, the technical solution of this application only requires 1 / 4 of the space of the traditional method to meet the table lookup bandwidth requirement.

[0053] Figure 5 This is a schematic diagram of a table entry arrangement device provided in an embodiment of this application. This device is applicable to situations where the arrangement of business table entries in a bank of memory is designed. This table entry arrangement device can be implemented by software and / or hardware.

[0054] like Figure 5 As shown, the table item arrangement device provided in this application embodiment mainly includes a splitting module 51 and a special arrangement module 52.

[0055] Split module 51 is configured to split mutually exclusive business entries into multiple parts.

[0056] The arrangement module 52 is configured to arrange the plurality of parts sequentially in different storage units.

[0057] In one exemplary embodiment, the splitting module 51 is configured to split the entries of mutually exclusive services into 2 to the power of N parts, where N is the number of storage units.

[0058] In one exemplary embodiment, the arrangement module 52 is configured to arrange the plurality of parts sequentially in a plurality of horizontally arranged storage units.

[0059] In one exemplary embodiment, the method further includes a configuration module configured to allocate a portion of the entries arranged in each storage unit to a preset number of resource pools.

[0060] In one exemplary embodiment, the number of resource pools is the same as the number of table entries.

[0061] In one exemplary embodiment, the mutually exclusive services are services belonging to different service layers.

[0062] In one exemplary embodiment, a resource pool corresponds to a table entry in a write table block.

[0063] This application also provides a device. Figure 6This is a structural schematic diagram of a device provided in this application, such as... Figure 6 As shown, the device provided in this application includes one or more processors 61 and a memory 62; the processors 61 in the device may be one or more. Figure 6 Taking a processor 61 as an example; memory 62 is used to store one or more programs; the one or more programs are executed by the one or more processors 61, causing the one or more processors 61 to implement the method as described in the embodiments of the present invention.

[0064] The device also includes an input device 63 and an output device 64.

[0065] The processor 61, memory 62, input device 63, and output device 64 in the device can be connected via a bus or other means. Figure 6 Taking the example of a connection between China and Israel via a bus.

[0066] Input device 63 can be used to receive input digital or character information, and to generate key signal inputs related to user settings and function control of the device. Output device 64 may include display devices such as a display screen.

[0067] The memory 62, as a computer-readable storage medium, can be configured to store software programs, computer-executable programs, and modules, such as program instructions / modules corresponding to the table arrangement method described in the embodiments of this application (e.g., the splitting module 51 and the arrangement module 52 in the table arrangement device). The memory 62 may include a program storage area and a data storage area, wherein the program storage area may store the operating system and at least one application program required for a function; the data storage area may store data created according to the use of the device, etc. Furthermore, the memory 62 may include high-speed random access memory and may also include non-volatile memory, such as at least one disk storage device, flash memory device, or other non-volatile solid-state storage device. In some instances, the memory 62 may further include memory remotely located relative to the processor 61, and these remote memories can be connected to the device via a network. Examples of such networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.

[0068] This application embodiment also provides a storage medium storing a computer program, which, when executed by a processor, implements the table item arrangement method described in this application embodiment. The method includes:

[0069] Split mutually exclusive business entries into multiple parts;

[0070] The multiple parts are arranged sequentially in different storage units.

[0071] Of course, the computer-executable instructions provided in the embodiments of the present invention are not limited to the method operations described above, but can also perform related operations in the table item arrangement method provided in any embodiment of the present invention.

[0072] Based on the above description of the implementation methods, those skilled in the art can clearly understand that the present invention can be implemented using software and necessary general-purpose hardware, and of course, it can also be implemented using hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of the present invention, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product can be stored in a computer-readable storage medium, such as a computer floppy disk, read-only memory (ROM), random access memory (RAM), flash memory, hard disk, or optical disk, etc., including several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute the methods described in the various embodiments of the present invention.

[0073] It is worth noting that in the above embodiments of the table arrangement device, the various units and modules included are only divided according to functional logic, but are not limited to the above division, as long as the corresponding functions can be achieved; in addition, the specific names of each functional unit are only for easy differentiation and are not used to limit the scope of protection of the present invention.

[0074] The above description is merely an exemplary embodiment of this application and is not intended to limit the scope of protection of this application.

[0075] Those skilled in the art will understand that the term user terminal encompasses any suitable type of wireless user equipment, such as mobile phones, portable data processing devices, portable web browsers, or vehicle-mounted mobile stations.

[0076] Generally, the various embodiments of this application can be implemented in hardware or dedicated circuitry, software, logic, or any combination thereof. For example, some aspects can be implemented in hardware, while others can be implemented in firmware or software that can be executed by a controller, microprocessor, or other computing device, although this application is not limited thereto.

[0077] Embodiments of this application can be implemented by executing computer program instructions through the data processor of a mobile device, for example, in a processor entity, or through hardware, or through a combination of software and hardware. The computer program instructions can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, status setting data, or source code or object code written in any combination of one or more programming languages.

[0078] Any block diagram of logical flow in the accompanying drawings of this application may represent program steps, or may represent interconnected logic circuits, modules, and functions, or may represent a combination of program steps and logic circuits, modules, and functions. The computer program may be stored in memory. The memory may be of any type suitable to the local technical environment and may be implemented using any suitable data storage technology, such as, but not limited to, read-only memory (ROM), random access memory (RAM), optical storage devices and systems (Digital Multifunction Discs, DVDs, or CDs), etc. Computer-readable media may include non-transitory storage media. The data processor may be of any type suitable to the local technical environment, such as, but not limited to, general-purpose computers, special-purpose computers, microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), programmable logic devices (FGPAs), and processors based on multi-core processor architectures.

[0079] A detailed description of exemplary embodiments of this application has been provided above through exemplary and non-limiting examples. However, various modifications and adjustments to the above embodiments will be apparent to those skilled in the art when considered in conjunction with the accompanying drawings and claims, without departing from the scope of the invention. Therefore, the proper scope of the invention will be determined by the claims.

Claims

1. A method of arranging entries, characterized by, The method comprises: splitting the table entry of the mutually exclusive service into multiple parts; arranging the multiple parts in different storage units in sequence; wherein the storage units are banks; The method of splitting the table entry of the mutually exclusive service into multiple parts comprises: splitting the table entry of the mutually exclusive service into 2^N parts, wherein N is the number of storage units; The method of arranging the multiple parts in different storage units in sequence comprises: storing the first part of each table entry obtained by splitting in the same storage unit, and storing the second part in another storage unit, until the storage of all parts is completed; wherein the storage units are arranged horizontally.

2. The method of claim 1, wherein, The method further comprises: allocating each table entry arranged in each storage unit in a preset number of resource pools.

3. The method of claim 2, wherein, The number of resource pools is the same as the number of table entries.

4. The method of claim 1, wherein, The mutually exclusive service is a service belonging to different service layers.

5. The method of claim 1, wherein, One resource pool corresponds to one table entry of the write table block.

6. A table item arrangement device, characterized in that, The method comprises: a splitting module configured to split the table entry of the mutually exclusive service into multiple parts; an arrangement module configured to arrange the multiple parts in different storage units in sequence; wherein the storage units are banks; The splitting module is specifically configured to split the table entry of the mutually exclusive service into 2^N parts, wherein N is the number of storage units. The arrangement module is specifically configured to store the first part of each table entry obtained by splitting in the same storage unit, and store the second part in another storage unit, until the storage of all parts is completed; wherein the storage units are arranged horizontally.

7. An apparatus, comprising: The method comprises: one or more processors; a memory for storing one or more programs; When the one or more programs are executed by the one or more processors, the one or more processors implement the method of any one of claims 1-5.

8. A storage medium, characterized by The storage medium stores a computer program, and the computer program is executed by a processor to implement the method of any one of claims 1-5.

Citation Information

Patent Citations

  • Ternary content addressable memory TCAM space processing method and device

    CN105791455A

  • Method and device for storing routing table entry

    WO2011124030A1