WO2022124732A1 - Electronic device having upf for processing packets, and operation method thereof - Google Patents
Electronic device having upf for processing packets, and operation method thereof Download PDFInfo
- Publication number
- WO2022124732A1 WO2022124732A1 PCT/KR2021/018366 KR2021018366W WO2022124732A1 WO 2022124732 A1 WO2022124732 A1 WO 2022124732A1 KR 2021018366 W KR2021018366 W KR 2021018366W WO 2022124732 A1 WO2022124732 A1 WO 2022124732A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- processing
- sub
- processing module
- packet
- size
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000006870 function Effects 0.000 claims abstract description 98
- 238000004891 communication Methods 0.000 claims abstract description 63
- 239000013598 vector Substances 0.000 claims description 53
- 230000008569 process Effects 0.000 claims description 33
- 230000009471 action Effects 0.000 claims description 2
- 238000011017 operating method Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 9
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 241000760358 Enodes Species 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
Definitions
- Various embodiments of the present invention relate to an apparatus and method for processing a packet in an electronic device of a user plane function (UPF).
- UPF user plane function
- the 5G communication system or the pre-5G communication system is called a 4G network after (Beyond 4G Network) communication system or an LTE (Long Term Evolution) system after (Post LTE) system.
- the 5G communication system uses a band of less than 6 gigabytes (6 GHz) (eg about 1.8 GHz band or about 3.5 GHz band) or a band of 6 gigabytes (6 GHz) or more (eg about 28 GHz band or about 39 GHz). band) is being considered.
- 6 GHz gigabytes
- 6 GHz gigabytes
- FD-MIMO Full Dimensional MIMO
- array antenna array antenna
- analog beam-forming analog beam-forming
- large-scale antenna large scale antenna
- an evolved small cell for network improvement of the system, an evolved small cell, an advanced small cell, a cloud radio access network (cloud radio access network, cloud RAN), an ultra-dense network (ultra-dense network) ), Device to Device communication (D2D), wireless backhaul, moving network, cooperative communication, Coordinated Multi-Points (CoMP), and reception interference cancellation ) and other technologies are being developed.
- cloud radio access network cloud radio access network, cloud RAN
- ultra-dense network ultra-dense network
- D2D Device to Device communication
- wireless backhaul moving network
- cooperative communication Coordinated Multi-Points (CoMP), and reception interference cancellation
- FQAM Hybrid Frequency Shift Keying and Quadrature Amplitude Modulation
- SWSC Smalling Window Superposition Coding
- ACM Advanced Coding Modulation
- FBMC Filter Bank Multi
- NOMA Non Orthogonal Multiple Access
- SCMA Sparse Code Multiple Access
- eMBB enhanced mobile broad band
- URLLC ultra-reliable and low latency communication
- mMTC massive machine type communication
- eMBMS evolved multimedia broadcast/multicast Service
- the 5G communication system may include a network structure in which a plane (or a control plane) for processing a control signal and a plane (or a user plane) for processing data are divided.
- the user plane function may be responsible for data packet transmission. Accordingly, in the wireless communication system, a method for efficiently processing data packets while reducing transmission delay of data packets in a user plane function (UPF) is required.
- UPF user plane function
- Various embodiments of the present invention disclose an apparatus and method for efficiently processing a packet in an electronic device of a user plane function (UPF) of a wireless communication system.
- UPF user plane function
- an electronic device of a user plane function (UPF) in a wireless communication system includes a processor including a communication interface and a processing module, and the processor is configured to: Check the size of the cache memory usable by the processing module, group a plurality of function modules included in the processing module based on the size of the cache memory into a plurality of sub processing modules, each based on the size of the cache memory You can set the packet processing size related to packet processing in the sub processing module of .
- UPF user plane function
- the method of operating an electronic device of a user plane function (UPF) in a wireless communication system includes checking the size of a cache memory usable by a processing module included in a processor of the UPF when the UPF is initially driven. Grouping a plurality of functional modules included in the processing module into a plurality of sub-processing modules based on the operation and the size of the cache memory, and packet processing in each sub-processing module based on the size of the cache memory It may include an operation of setting a related packet processing size.
- UPF user plane function
- a processing module is grouped into a plurality of sub processing modules based on the size of the cache memory of the processing module in a user plane function (UPF) of a wireless communication system, and each sub
- UPF user plane function
- each sub By sequentially processing data (or packets) of a packet processing size (eg, batch size) set based on the size of the cache memory in the processing module, contention of data for occupying the cache memory is reduced, and data pre-fetch -fetch) technology can increase the efficiency.
- a packet processing size eg, batch size
- FIG. 1 illustrates a structure of a 5G network, according to various embodiments.
- FIG. 2 is a block diagram of a network entity, in accordance with various embodiments.
- FIG. 3 is a block diagram of the processor of FIG. 2 in accordance with various embodiments.
- FIG. 4 is a flowchart for setting a variable related to packet processing in a network entity according to various embodiments of the present disclosure
- FIG. 5 is a flowchart for grouping a processing module into a plurality of sub processing modules in a network entity according to various embodiments of the present disclosure
- FIG. 6 is a flowchart for processing a packet in a network entity according to various embodiments.
- FIG. 7 is a flowchart for processing a packet using a sub-processing module in a network entity according to various embodiments of the present disclosure
- FIG. 8 is a structure for processing a packet in a network entity according to various embodiments of the present disclosure.
- each block of the flowchart diagrams and combinations of the flowchart diagrams may be performed by computer program instructions.
- These computer program instructions may be embodied in a processor of a general purpose computer, special purpose computer, or other programmable data processing equipment, such that the instructions performed by the processor of the computer or other programmable data processing equipment are not described in the flowchart block(s). It creates a means to perform functions.
- These computer program instructions may also be stored in a computer-usable or computer-readable memory that may direct a computer or other programmable data processing equipment to implement a function in a particular manner, and thus the computer-usable or computer-readable memory.
- the instructions stored in the flow chart block(s) produce an article of manufacture containing instruction means for performing the function described in the flowchart block(s).
- the computer program instructions may also be mounted on a computer or other programmable data processing equipment, such that a series of operational steps are performed on the computer or other programmable data processing equipment to create a computer-executed process to create a computer or other programmable data processing equipment. It is also possible that instructions for performing the processing equipment provide steps for performing the functions described in the flowchart block(s).
- each block may represent a module, segment, or portion of code that includes one or more executable instructions for executing specified logical function(s). It should also be noted that in some alternative implementations it is also possible for the functions recited in blocks to occur out of order. For example, two blocks shown one after another may be performed substantially simultaneously, or the blocks may sometimes be performed in the reverse order according to a corresponding function.
- ' ⁇ unit' used in this embodiment means software or hardware components such as FPGA or ASIC, and ' ⁇ unit' performs certain roles.
- '-part' is not limited to software or hardware.
- ' ⁇ ' may be configured to reside on an addressable storage medium or may be configured to refresh one or more processors. Accordingly, as an example, ' ⁇ ' indicates components such as software components, object-oriented software components, class components, and task components, and processes, functions, properties, and procedures. , subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables.
- components and ' ⁇ units' may be combined into a smaller number of components and ' ⁇ units' or further separated into additional components and ' ⁇ units'.
- components and ' ⁇ units' may be implemented to play one or more CPUs in a device or secure multimedia card.
- first, second, or first or second may be used simply to distinguish the element from other elements in question, and may refer to elements in other aspects (e.g., importance or order) is not limited. It is said that one (eg, first) component is “coupled” or “connected” to another (eg, second) component, with or without the terms “functionally” or “communicatively”. When referenced, it means that one component can be connected to the other component directly (eg by wire), wirelessly, or through a third component.
- module used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and is, for example, used interchangeably with terms such as logic, logic block, component, or circuit.
- a module may be an integrally formed part or a minimum unit or a part of the part that performs one or more functions.
- the module may be implemented in the form of an application-specific integrated circuit (ASIC).
- ASIC application-specific integrated circuit
- each component eg, a module or a program of the above-described components may include a singular or a plurality of entities, and some of the plurality of entities may be separately disposed in other components. .
- one or more components or operations among the above-described corresponding components may be omitted, or one or more other components or operations may be added.
- a plurality of components eg, a module or a program
- the integrated component may perform one or more functions of each component of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. .
- operations performed by a module, program, or other component are executed sequentially, in parallel, repeatedly, or heuristically, or one or more of the operations are executed in a different order, omitted, or , or one or more other operations may be added.
- the base station is at least one of a Node B, a base station (BS), an eNB (eNode B), a gNB (gNode B), a radio access unit, a base station controller, or a node on the network.
- the terminal may include a user equipment (UE), a mobile station (MS), a cellular phone, a smart phone, a computer, or a multimedia system capable of performing a communication function.
- UE user equipment
- MS mobile station
- a cellular phone a smart phone
- a computer or a multimedia system capable of performing a communication function.
- the embodiment of the present disclosure may be applied to other communication systems having a similar technical background or channel type to the exemplary embodiment of the present disclosure described below.
- the embodiments of the present disclosure may be applied to other communication systems through some modifications within a range that does not significantly depart from the scope of the present disclosure as judged by a person having skilled technical knowledge.
- a term for identifying an access node used in the following description a term referring to a network entity or NF (network function), a term referring to messages, a term referring to an interface between network objects, various Terms and the like referring to identification information are exemplified for convenience of description. Accordingly, the present invention is not limited to the terms described below, and other terms referring to objects having equivalent technical meanings may be used.
- 3GPP 3rd generation partnership project long term evolution
- the present invention is not limited by the terms and names defined in the 3GPP standard, and can be equally applied to systems conforming to other standards.
- Embodiments of the present invention provide a configuration for processing a packet provided from another network entity (eg, RAN 115) in a user plane function (UPF) 125 in 5GC (5G Core).
- another network entity eg, RAN 115
- UPF user plane function
- a wireless communication system evolves from a 4G communication system to a 5G communication system (or a new radio (NR) system), and a Next Gen (generation) Core (NG Core) or 5GC that is a new core network (5G core network) is defined.
- the new core network may be configured as a network function (NF) by virtualizing all existing network entities (NE).
- a network function may mean a network entity, a network component, and a network resource.
- FIG. 1 shows the structure of a 5G network 100 according to various embodiments of the present invention.
- a description of network entities or network nodes constituting the 5G network 100 is as follows.
- the 5G network 100 may include the NFs 115 to 175 shown in FIG. 1 .
- the 5G network 100 is not limited to the example of FIG. 1 , and may include a larger number of NFs or a smaller number of NFs than the NFs shown in FIG. 1 .
- (R) AN ((radio) access network) 115 is a subject that performs radio resource allocation of the terminal 110, eNode B, Node B, BS (base station), NG-RAN (next generation radio access network), 5G-AN (access network), may be at least one of a radio access unit, a base station controller, or a node on the network.
- the terminal 110 may include a user equipment (UE), a next generation UE (NG UE), a mobile station (MS), a cellular phone, a smart phone, a computer, or a multimedia system capable of performing a communication function.
- an embodiment of the present invention will be described using a 5G communication system as an example, but the embodiment of the present disclosure may be applied to other communication systems having a similar technical background.
- the embodiments of the present invention may be applied to other communication systems through some modifications within a range that does not significantly depart from the scope of the present invention as judged by a person having skilled technical knowledge.
- the access and mobility management function (AMF) 120 may be a network function for managing the mobility of the terminal 110 .
- the session management function (SMF) 130 may be a network function for managing a packet data network (PDN) connection provided to the terminal 110 .
- PDN packet data network
- PDU protocol data unit
- the policy control function (PCF) 150 may be a network function that applies at least one of a service policy of a mobile communication operator to the terminal 110 , a charging policy, and a policy for a PDU session.
- the unified data management (UDM) 155 may be a network function that stores information about a subscriber.
- the network exposure function (NEF) 140 may be a function of providing information about the terminal 110 to a server outside the 5G network 100 .
- the NEF 140 may provide information necessary for a service to the 5G network 100 and provide a function of storing the information in a user data repository (UDR) (not shown).
- UDR user data repository
- the user plane function (UPF) 125 may function as a gateway for transferring user data (eg, PDU) to the data network (DN) 175 .
- Nupf which is a service based interface (SBI), is defined in the UPF 125 and may provide an event exposure service to other NFs through this.
- the network repository function (NRF) 145 may perform a function of discovering the NF.
- the authentication server function (AUSF) 165 may perform terminal authentication in the 3GPP access network and the non-3GPP access network.
- the network slice selection function (NSSF) 135 may perform a function of selecting a network slice instance provided to the terminal 140 .
- the service communication proxy (SCP) 170 may provide an indirect communication method that substitutes for a service search, call, or response in interworking between NFs.
- the data network (DN) 175 may be a data network through which the terminal 110 transmits and receives data in order to use a service of a network operator or a 3rd party service.
- the network entity of FIG. 2 may be the UPF 125 of FIG. 1 .
- 3 is an internal block diagram of the processor 200 of FIG. 2 according to various embodiments.
- the UPF 125 of FIG. 2 may include an electronic device operating as the UPF 125 in a wireless communication system.
- the UPF 125 may include a processor 200 , a memory 210 , and/or a communication interface 220 .
- the processor 200 may be configured to control and/or manage the operation of the UPF 125 .
- the processor 200 includes a central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field It may be a field programmable gate array (FPGA) or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof.
- the processor 200 may implement or execute the various illustrative logical blocks, modules, and circuits described with reference to the disclosure herein.
- the processor 200 may be implemented as a combination of one or more microprocessors, or a combination of a DSP and a microprocessor.
- the processor 200 may check the size of a cache memory usable in the internal configuration of the UPF 125 .
- the processor 200 may check information related to the size of the cache memory usable in the plurality of processing modules (310-1, 310-2, or 310-n), as shown in FIG. 3 .
- information related to the size of the cache memory may be predefined when the UPF 125 is produced, or may be obtained from the processing modules 310-1, 310-2, or 310-n when the UPF 125 is initially driven. .
- the processor 200 may group (or divide) a plurality of functional modules included in a processing module for packet processing in the UPF 125 into a plurality of sub-processing modules.
- the processor 200 determines when the UPF 125 is applied to the wireless communication system and initially driven, the internal configuration of the UPF 125 (eg, processing modules 310 - 1 , 310 - 2 and/or or 310-n)) is changed, when the protocol type processed by the processing modules 310-1, 310-2 and/or 310-n is changed, or when a predefined period arrives, the processing module
- a plurality of functional modules included in (processing module) may be grouped (or divided) into a plurality of sub-processing modules.
- the processor 200 may include a plurality of processing modules 310-1, 310-2, and/or 310-n, as shown in FIG. 3 .
- Processor 200 based on the size of the cache memory usable in the processing modules (310-1, 310-2, or 310-n) each processing module (310-1, 310-2, or 310-n)
- Function modules included in n) may be grouped (or divided) into a plurality of sub-processing modules. For example, in the sub-processing module, the size of the cache memory required to process the packet in the sub-processing module exceeds the size of the cache memory available in the processing module (310-1, 310-2, or 310-n) It may include at least one function module set not to do so.
- a function module may represent an independent software module with a single responsibility.
- the processing modules 310-1, 310-2, and/or 310-n may use a cache memory of the same size.
- each sub-processing module may use a cache memory having the same size as a cache memory usable in the processing module 310-1, 310-2, or 310-n.
- n may represent the number of processing modules 310 - 1 , 310 - 2 , and/or 310 - n included in the processor 200 .
- the processor 200 performs hyper-threading to group (or divide) each processing module 310-1, 310-2, or 310-n into a plurality of sub-processing modules. ) function application, packet protocol type, or whether data processed by each function module exists in the same cache line may be additionally considered. For example, when the processor 200 uses the hyper-threading function in the processing modules 310-1, 310-2, or 310-n, each processing module 310-1, 310-2, or , 310-n) to operate as two logical processing modules.
- the processing module It can be determined to be half the size of the cache memory available in the ones (310-1, 310-2, or 310-n). Accordingly, the processor 200 determines whether the processing modules 310-1, 310-2, or 310-n use the hyper-threading function of each processing module 310-1, 310-2, or , 310-n) of the cache memory usable in the processing modules (310-1, 310-2, or, 310-n) considered for grouping (or dividing) the functional modules included in a plurality of sub-processing modules Size can be adaptively judged.
- the processor 200 may be configured to process each of the processing modules 310-1, 310-2, 310-1, 310-2, or Alternatively, in 310-n), the number of groupable sub-processing modules may be checked.
- the processor 200 is the number of sub-processing modules that can be grouped based on the protocol type of the packet is grouped based on the size of the cache memory available in the processing modules (310-1, 310-2, or 310-n)
- the plurality of processing modules 310-1, 310-2, and/or 310-n may be set as processing modules for processing the protocol type of the packet.
- each processing module (310-1, 310-2, and/or 310-n) is the size of the cache memory usable in the processing modules (310-1, 310-2, or, 310-n) may be grouped based on
- the protocol type of the packet may include at least one of transmission control protocol (TCP), user datagram protocol (UDP), internet protocol version 4 (IPv4), and internet protocol version 6 (IPv6).
- TCP transmission control protocol
- UDP user datagram protocol
- IPv4 internet protocol version 4
- IPv6 internet protocol version 6
- the processor 200 may set a packet size (eg, a packet processing size or a batch size) that each sub-processing module can process during one cycle.
- the processor 200 determines when the UPF 125 is applied to the wireless communication system and is initially driven, the internal configuration of the UPF 125 (eg, processing modules 310-1, 310-2 and/or 310-n)) is changed, when the protocol type processed by the processing modules 310-1, 310-2 and/or 310-n is changed, or when a predefined period arrives, the sub-processing module You can set (or update) the packet size that can be processed in one cycle.
- the processor 200 may process the sub-processing module for one cycle based on the size of the cache memory available in the processing modules 310-1, 310-2, or 310-n. You can set the packet size. For example, the size of the packet that can be processed during one cycle in the sub-processing module is determined by pre-fetching data of the next sub-processing module while ensuring the cache hit rate of data accessed by the sub-processing module. It can be set to a size that can ensure the application efficiency of the function. That is, the processor 200 may set the packet size that the sub-processing module can process for one cycle so that cache memory contention between data used in the sub-processing module and the pre-fetched data related to the next sub-processing module does not occur. have.
- the processor 200 determines whether the hyper-threading function is applied, the size of a vector, a cycle required for each function, or a cache to set the size of a packet that can be processed by the sub-processing module for one cycle. At least one of the sizes of the lines may be additionally considered.
- the vector is a processing unit that can be processed at once by the processing modules 310-1, 310-2, or 310-n, It may include multiple packets of the same or similar protocol.
- the cycle required for each function may include information required until the data pre-fetched in the sub-processing module is actually used in the next sub-processing module.
- the size of the cache line may include a size at which the sub-processing module can store data in the cache memory at one time.
- the processor 200 when receiving a packet from another network entity (eg, the RAN 115 ), the processor 200 may configure packets of the same or similar protocol into one vector.
- the distribution module 300 of the processor 200 receives a packet from another network entity (eg, the RAN 115) packets of the same or similar protocol may be configured into one vector.
- the length of the vector may be fixed or set variably based on at least one of a type of a packet or an amount of a packet received from another network entity.
- the processor 200 is configured to process at least one of the plurality of processing modules 310-1, 310-2, and 310-n based on the protocol of the vector (or packet) for processing the corresponding vector.
- Modules 310-1, 310-2 and/or 310-n may be selected.
- the processor 200 (or the distribution module 300 ) is configured to configure a first one of the plurality of processing modules 310 - 1 , 310 - 2 and 310 - n based on a protocol of a vector (or packet).
- the processing module 310-1 may be selected.
- the first processing module 310-1 may sequentially process the data of the first region corresponding to the packet processing size (or batch size) of the vectors through each of the plurality of sub-processing modules.
- the first processing module 310 - 1 corresponds to the packet processing size (or batch size) of the vectors through each of the plurality of sub-processing modules.
- Data of a second area different from the area may be sequentially processed.
- the memory 210 may include information used by at least one component of the UPF 125 (eg, the processor 200 and/or the communication interface 220 ) or information received from other network entities. information can be stored. According to an embodiment, the memory 210 may store various instructions that may be executed through the processor 200 .
- communication interface 220 may be configured to transmit and/or receive signals between UPF 125 and other network entities.
- the communication interface 220 may transmit and/or receive signals (or data) via the RAN 115 and the N3 interface.
- the communication interface 220 may transmit and/or receive signals (or data) via the SNF 130 and the N4 interface.
- communication interface 220 may transmit and/or receive signals (or data) via DN 175 and N6 interfaces.
- an electronic device of a user plane function (UPF) (eg, UPF 125 of FIG. 1 or FIG. 2 ) of a wireless communication system may include a communication interface (eg, communication interface 220 of FIG. 2 ). )) and a processor including a processing module (eg, the processing module 310-1, 310-2 or 310-n of FIG. 3) (eg, the processor 200 of FIG.
- UPF user plane function
- the processor checks a size of a cache memory usable by the processing module, and assigns a plurality of function modules included in the processing module to a plurality of sub-processing modules based on the size of the cache memory grouped into groups, and a packet processing size related to packet processing in each sub processing module may be set based on the size of the cache memory.
- the processor additionally considers at least one of whether a hyper-threading function is applied, a protocol type of a packet, or whether data processed by each function module exists in the same cache line.
- the plurality of function modules included in the processing module may be grouped into the plurality of sub-processing modules.
- the processor determines the number of groupable sub-processing groups based on the protocol type of the packet, and the number of groupable sub-processing groups based on the protocol type of the packet determines the size of the cache memory.
- a plurality of processing modules including the processing module may be set as processing modules for processing the protocol type.
- the processor may set the packet processing size by additionally considering at least one of whether hyper-threading is applied, a size of a vector, a cycle required for each function, or a size of a cache line.
- the processor when receiving a plurality of packets from another network entity, the processor generates a vector including the plurality of packets, and when the processing module is selected based on a protocol type of the packet, the The vector may be processed through the processing module based on the sub-processing modules and the packet processing size.
- the processing module processes a packet of a first region corresponding to the packet processing size of the vector through a first sub-processing module among the plurality of sub-processing modules, and the plurality of sub-processing modules
- the packet of the first area may be processed through a second sub-processing module among the modules.
- the processing module when the plurality of sub-processing modules process the packet of the first region, the processing module may be configured to, through the first sub-processing module, have a different packet processing size than the first region of the vector.
- a packet of the second area corresponding to ' may be processed, and the packet of the second area may be processed through the second sub-processing module.
- the other network entity may include a radio access network (RAN) or a data network (DN).
- RAN radio access network
- DN data network
- the processor performs the sub-processing based on at least one of a time when the internal configuration of the UPF is changed, a time when a protocol type processed by the processing module is changed, or a time when a predefined period arrives. You can group modules or set the packet processing size.
- the wireless communication system may include a 5th generation (5G) communication system.
- 5G 5th generation
- FIG. 4 is a flowchart 400 for setting variables related to packet processing in a network entity according to various embodiments of the present disclosure. Operations in the following embodiments may be sequentially performed, but are not necessarily sequentially performed. For example, the order of the operations may be changed, and at least two operations may be performed in parallel.
- the network entity of FIG. 4 may be the UPF 125 of FIG. 1 or 2 .
- the network entity may check whether the network entity is initially driven in operation 401 .
- the processor 200 of the UPF 125 may check whether the UPF 125 is initially driven.
- the initial driving may include a series of operations in which the UPF 125 is installed in a wireless communication network and initially driven.
- a processing module eg, FIG. You can check information related to the size of the cache memory usable in the processing module (310-1, 310-2, or 310-n) of 3).
- information related to the size of the cache memory may be predefined when the UPF 125 is produced or obtained from the processing module 310 - 1 , 310 - 2 or 310 -n when the UPF 125 is initially driven.
- the network entity eg, the UPF 125 or the processor 200 performs a processing module (eg, the processing module 310 - 1 , 310 - 2 , or 310 - n of FIG. 3 ) in operation 405 . )
- the functional modules included in the processing module may be grouped (or divided) into a plurality of sub-processing modules based on the size of the available cache memory.
- the processor 200 determines that the size of the cache memory required to process a packet in each sub-processing module is usable in the processing modules 310-1, 310-2, or 310-n.
- At least one function module may be grouped in sub-processing module units so as not to exceed the size of the cache memory.
- the processor 200 groups (or divides) the function modules included in the processing module into a plurality of sub-processing modules so that at least one function module included in the sub-processing module minimizes contention in the cache memory of data accessed by the processing module. )can do.
- a function module may represent an independent software module with a single responsibility.
- the network entity eg, the UPF 125 or the processor 200 performs a processing module (eg, the processing module 310 - 1 , 310 - 2 , or 310 - n of FIG. 3 ) in operation 407 . )
- a processing module eg, the processing module 310 - 1 , 310 - 2 , or 310 - n of FIG. 3
- you can set the packet size eg, packet processing size or batch size
- the processor 200 is a size that can ensure the application efficiency of the data pre-fetch function of the next sub-processing module while the cache hit rate (cache hit rate) of the data accessed by each sub-processing module is guaranteed. You can set the packet processing size.
- the network entity eg, the UPF 125 or the processor 200
- the network entity is configured to set variables related to packet processing.
- the network entity may acquire information related to the sub-processing module and/or information related to the batch size set at the time of initial operation.
- the network entity (eg, the UPF 125 or the processor 200 ) includes not only the initial starting time of the UPF 125 , but also the internal configuration of the UPF 125 (eg, the processing module 310 - 1 , 310-2 and/or 310-n)) is changed, a time when the protocol type processed by the processing modules 310-1, 310-2 and/or 310-n is changed, or a predefined period arrives.
- the variable related to packet processing may include at least one of the number of grouped sub-processing modules or the size of a packet to be processed by the sub-processing module for one period.
- the network entity eg, the UPF 125 or the processor 200 applies the hyper-threading function to set the size of a packet that can be processed for one cycle in the sub-processing module, and the size of the vector. , at least one of the cycle required for each function, or the size of the cache line may be additionally considered.
- the network entity eg, the UPF 125 or the processor 200 groups each processing module 310-1, 310-2, or 310-n into a plurality of sub processing modules ( or partition), at least one of whether the hyper-threading function is applied, the protocol type of the packet, or whether data processed by each function module exists in the same cache line may be additionally considered.
- FIG. 5 is a flowchart 500 for grouping a processing module into a plurality of sub-processing modules in a network entity according to various embodiments of the present disclosure.
- the operations of FIG. 5 may be detailed operations of operation 405 of FIG. 4 .
- Operations in the following embodiments may be sequentially performed, but are not necessarily sequentially performed. For example, the order of the operations may be changed, and at least two operations may be performed in parallel.
- the network entity of FIG. 5 may be the UPF 125 of FIG. 1 or 2 .
- a network entity may identify a protocol type related to a processing module for grouping in operation 501 .
- the protocol type associated with the processing module may include a protocol type of a packet to be processed by the processing module.
- the protocol type of the packet may include at least one of TCP, UDP, IPv4, and IPv6.
- the network entity eg, the UPF 125 or the processor 200 performs a processing module (eg, the processing module 310-1 of FIG. 3 , based on the protocol type associated with the processing module in operation 503 ).
- a processing module eg, the processing module 310-1 of FIG. 3 , based on the protocol type associated with the processing module in operation 503 .
- the first number of groupable sub-processing modules may be identified.
- the first number of sub-processing modules is the number of sub-processing modules required to process a packet of a protocol type related to the processing module in the processing module, and may be set based on the number of functions for processing packets.
- the network entity eg, the UPF 125 or the processor 200 performs the processing module (eg, the processing module 310 of FIG. 3 ) based on the size of the cache memory available in the processing module in operation 505 .
- the second number of sub-processing modules grouped in -1, 310-2, or 310-n)) may be identified.
- the size of the cache memory required to process a packet in one sub-processing module is available in the processing modules 310-1, 310-2, or 310-n.
- the number of sub-processing modules generated by grouping at least one function module so as not to exceed the size of the cache memory may be included.
- the network entity determines, in operation 507 , the first number determined based on the protocol type associated with the processing module, the size of the cache memory available in the processing module. It may be checked whether the second number checked based on .
- the network entity determines the first number checked based on the protocol type associated with the processing module based on the size of the cache memory available in the processing module.
- an additional processing module for processing a protocol type related to the processing module may be set.
- the processor 200 is the first number checked based on the protocol type associated with the processing module when the number of the second number checked based on the size of the cache memory usable in the processing module exceeds the number, the corresponding protocol It may be determined that a plurality of processing modules are required to process the type of .
- the processor 200 includes a first processing module 310-1 for grouping among a plurality of processing modules 310-1, 310-2, and 310-n included in the processor 200 and an additional second processing module. The module 310 - 2 may be selected.
- the network entity may group the processing module and the additional processing module into a plurality of sub processing modules in operation 511 .
- the processor 200 divides the plurality of function modules included in the first processing module 310-1 into a plurality of subs based on the size of the cache memory usable in the first processing module 310-1. They can be grouped into processing modules.
- the processor 200 may group a plurality of function modules included in the second processing module 310-2 into a plurality of sub-processing modules based on the size of the cache memory available in the second processing module 310-2. have.
- the size of the cache memory usable in the first processing module 310 - 1 and the second processing module 310 - 2 may be the same or different.
- the sub-processing modules grouped in the first processing module 310-1 may use a cache memory having the same size as the cache memory usable in the first processing module 310-1.
- the sub-processing modules grouped in the second processing module 310 - 2 may use a cache memory having the same size as the cache memory usable in the second processing module 310 - 2 .
- the network entity determines the first number checked based on the protocol type associated with the processing module based on the size of the cache memory available in the processing module. If the number is equal to or less than the second number (eg, 'No' in operation 507), in operation 513, the processing modules may be grouped into a plurality of sub processing modules.
- the processor 200 divides the plurality of function modules included in the first processing module 310-1 into a plurality of subs based on the size of the cache memory usable in the first processing module 310-1. They can be grouped into processing modules. For example, the sub-processing modules grouped in the first processing module 310-1 may use a cache memory having the same size as the cache memory usable in the first processing module 310-1.
- FIG. 6 is a flowchart 600 for processing a packet at a network entity in accordance with various embodiments. Operations in the following embodiments may be sequentially performed, but are not necessarily sequentially performed. For example, the order of the operations may be changed, and at least two operations may be performed in parallel. As an example, the network entity of FIG. 6 may be the UPF 125 of FIG. 1 or 2 .
- a network entity eg, the UPF 125 of FIG. 1 or the processor 200 of FIG. 2
- another network entity eg, FIG. 1
- the network entity eg, UPF 125 or processor 200
- receives a packet from another network entity eg, 'Yes' in operation 601
- a vector related to the received packet can be generated.
- the processor 200 may configure at least one vector to include at least one packet having the same or similar protocol among packets received from other network entities.
- the length of the vector may be fixed or set variably based on at least one of a type of a packet or an amount of a packet received from another network entity.
- the network entity may select a processing module for processing the vector based on the protocol type of the packet included in the vector in operation 605 .
- the processor 200 is at least one processing module predefined as processing a protocol type of a packet included in a vector among the plurality of processing modules 310-1. 310-2 and 310-n. (310-1. 310-2 and/or 310-n) can be selected.
- the network entity may process a vector including at least one packet through a processing module selected based on the protocol type of the packet in operation 607 .
- a processing module selected based on the protocol type of the packet in operation 607 .
- the first processing module 310-1 is selected based on the protocol type of the packet
- at least a portion of the vector corresponding to the packet processing size (or batch size) is sequentially processed through each sub-processing module. can be processed with
- FIG. 7 is a flowchart 700 for processing a packet using a sub-processing module in a network entity according to various embodiments of the present disclosure.
- the operations of FIG. 7 may be detailed operations of operation 607 of FIG. 6 .
- Operations in the following embodiments may be sequentially performed, but are not necessarily sequentially performed.
- the order of the operations may be changed, and at least two operations may be performed in parallel.
- the network entity of FIG. 7 may be the UPF 125 of FIG. 1 or 2 .
- FIG. 8 is a structure for processing a packet in a network entity according to various embodiments of the present disclosure;
- a network entity eg, the UPF 125 of FIG. 1 or the processor 200 of FIG. 2 ) performs a j-th region of a vector through an i-th sub-processing module in operation 701 .
- data can be processed.
- i is an index of a sub-processing module included in the processing module 800 and may include 1 as an initial value.
- j is at least a part of a vector for processing in the sub-processing module divided based on the packet processing size, and may include 1 as an initial value.
- the processing module 800 sets a plurality of function modules included in the processing module 800 based on the size of the cache memory to the first sub-processing module 810 - 1 and the second sub-processing module 810 . -2) and the nth sub-processing module 810-n.
- the first sub-processing module 810 - 1 is included in the first region 822 corresponding to the packet processing size (or batch size) among the vectors 820 provided from the distribution module 300 of FIG. 3 . It can process the data (or packets) that become
- the first sub-processing module 810 - 1 may load data included in the first region 822 into the cache memory and sequentially process the data in the first direction 852 .
- n may indicate the number of processing modules 310 - 1 , 310 - 2 , and/or 310 - n included in the processor 200 .
- the network entity eg, the UPF 125 or the processor 200 performs sub-processing in which the index (i) of the sub-processing module that has processed the j-th area data is included in the processing module in operation 703 . You can check whether it is greater than or equal to the maximum value (i MAX ) of the module.
- the processor 200 or the processing module 800 includes the sub processing modules 810 - 1 , 810 - 2 and 810 - n included in the processing module 800 , the data of the j-th region. You can check whether it has been processed.
- the index (i) of the sub-processing module that has processed the data of the j-th region is the maximum value of the sub-processing module included in the processing module. (i MAX ) or less (eg, 'No' in operation 703 ), in operation 705 , i , which is an index of the sub-processing module, may be updated.
- the processor 200 or the processing module 800 ) may increase i by one step (eg, i++) so that the data of the j-th region can be processed in the next sub-processing module.
- the processor 200 when the processor 200 (or the processing module 800) updates i, in operation 701, the j-th region (eg, the first region) through the second sub-processing module 810-2 (822)) may be processed.
- the second sub-processing module 810-2 loads data (or packets) included in the first region 822 corresponding to the packet processing size (or batch size) of the vector 820 into the cache memory.
- processing may be sequentially performed in the first direction 852 .
- the index (i) of the sub-processing module that has processed the data of the j-th region is the maximum value of the sub-processing module included in the processing module. If it is greater than or equal to (i MAX ) (eg, 'Yes' in operation 703 ), in operation 707 , it may be checked whether processing of the vector is completed. According to an embodiment, the processor 200 (or the processing module 800 ) may check whether all packets included in the vector have been processed through the sub-processing modules 810-1, 810-2, and 810-n. .
- the processor 200 when the network entity (eg, the UPF 125 or the processor 200) does not complete the vector processing (eg, 'No' in operation 707), in operation 709, the index of the sub-processing module i, i, may be initialized, and j, which is the index of the processing region of the vector, may be updated.
- the processor 200 or the processing module 800 ) is configured to process the next unprocessed region in the vector 820 by the sub-processing modules 810-1, 810-2, and 810-n. j can be incremented by one (e.g. j++).
- the processor 200 when the processor 200 (or the processing module 800 ) initializes i and updates j, the data of the second area 824 through the first sub-processing module 810 - 1 can be processed
- the first sub-processing module 810 - 1 may process data (or packets) included in the second region 824 corresponding to the packet processing size (or batch size) among the vectors 820 .
- the first sub-processing module 810 - 1 may load data included in the second region 824 into the cache memory and sequentially process the data in the first direction 852 .
- the network entity eg, the UPF 125 or the processor 200 terminates an embodiment for processing the packet when processing of the vector is completed (eg, 'Yes' in operation 707).
- the processing module 800 sequentially processes data of the first region 822 or the second region 824 through each sub-processing module 810-1, 810-2, or 810-n.
- the sub-processing modules 810-1, 810-2, and 810-n may be sequentially driven in two directions 854 to process data.
- the sub-processing modules 810-1, 810-2, and 810-n may perform different functions.
- the first sub-processing module 810 - 1 may obtain packet forwarding control protocol (PFCP) session information.
- the second sub-processing module 810 - 2 may obtain a packet detection rule (PDR) from the PFCP session.
- PFCP packet forwarding control protocol
- PDR packet detection rule
- the third sub-processing module 810-3 may detect a forwarding action rules (FARs) policy based on the PDR obtained from the second sub-processing module 810-2.
- the fourth sub-processing module 810-4 may perform FARs detected by the third sub-processing module 810-3.
- the fifth sub-processing module 810-5 may detect a QoS Enforcement Rules (QERs) policy based on the PDR obtained from the second sub-processing module 810-2.
- QERs QoS Enforcement Rules
- the sixth sub-processing module 810 - 6 may perform QERs detected by the fifth sub-processing module 810 - 5 .
- the seventh sub-processing module 810 - 7 may detect a usage reporting rules (URRs) policy based on the PDR obtained by the second sub-processing module 810 - 2 .
- the eighth sub-processing module 810-8 may perform the URRs detected by the seventh sub-processing module 810-7.
- the ninth sub-processing module 810-9 may readdress an Internet protocol (IP) for routing processing.
- IP Internet protocol
- the tenth sub-processing module 810-10 may transmit the data packet based on the IP redirected by the ninth sub-processing module 810-9.
- a method of operating a user plane function (UPF) (eg, the UPF 125 of FIG. 1 or FIG. 2 ) of a wireless communication system includes processing included in a processor of the UPF when the UPF is initially driven The operation of checking the size of the cache memory usable by the module and the operation of grouping a plurality of function modules included in the processing module into a plurality of sub processing modules based on the size of the cache memory, and the size of the cache memory based on the operation of setting a packet processing size related to packet processing in each sub processing module.
- UPF user plane function
- the sub-processing module additionally considers at least one of whether a hyper-threading function is applied, a protocol type of a packet, or whether data processed by each function module exists in the same cache line can be grouped.
- the grouping into the sub-processing modules includes: determining the number of groupable sub-processing groups based on the protocol type of the packet; and grouping sub-processing groups based on the protocol type of the packet.
- the number of sub-processing modules exceeds the number of sub-processing modules divided based on the size of the cache memory, setting a plurality of processing modules including the processing module as processing modules for processing the protocol type, and the It may include grouping a plurality of function modules included in each processing module for processing the protocol type into a plurality of sub processing modules based on the size of the cache memory.
- the packet processing size may be set by additionally considering at least one of whether hyper-threading is applied, the size of a vector, a cycle required for each function, or the size of a cache line.
- the sub-processing The method may further include processing the vector through the processing module based on the modules and the packet processing size.
- the processing of the vector may include processing a packet of a first region corresponding to the packet processing size of the vector through a first sub-processing module among the plurality of sub-processing modules; and processing the packet of the first region through a second sub-processing module among a plurality of sub-processing modules.
- the second sub-processing module uses the first sub-processing module to process a second packet corresponding to a different packet processing size than the first region in the vector.
- the method may further include an operation of processing a packet of the region, and an operation of processing the packet of the second region through the second sub-processing module.
- the other network entity may include a radio access network (RAN) or a data network (DN).
- RAN radio access network
- DN data network
- the sub-processing modules are grouped or the packet processing size It may further include an operation of setting
- the wireless communication system may include a 5th generation (5G) communication system.
- 5G 5th generation
- FIGS. 1 to 8 diagrams of a control/data signal transmission method, operation procedures, and configuration diagrams are not intended to limit the scope of the present disclosure. That is, all components, entities, or steps of operation described in FIGS. 1 to 8 should not be construed as essential components for the implementation of the disclosure, and the inclusion of only some components should not impair the essence of the disclosure. can be implemented in
- the operations of the base station or the terminal described above can be realized by providing a memory device storing the corresponding program code in an arbitrary component in the base station or the terminal device. That is, the control unit of the base station or the terminal device may execute the above-described operations by reading and executing the program code stored in the memory device by a processor or a central processing unit (CPU).
- a processor or a central processing unit (CPU).
- the various components and modules of the entity, base station or terminal device described in this specification include a hardware circuit, for example, a complementary metal oxide semiconductor-based logic circuit, firmware and , software and/or hardware and firmware and/or software embedded in a machine-readable medium.
- a hardware circuit for example, a complementary metal oxide semiconductor-based logic circuit, firmware and , software and/or hardware and firmware and/or software embedded in a machine-readable medium.
- various electrical structures and methods may be implemented using electrical circuits such as transistors, logic gates, and application-specific semiconductors.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
Various embodiments of the present invention relate to a method and device for processing packets in a user plane function (UPF) in a wireless communication system. An electronic device having a UPF comprises a communication interface and a processor including a processing module, wherein the processor can: confirm the size of cache memory available to the processing module at the time of the initial driving of the UPF; group a plurality of function modules included in the processing module into a plurality of sub-processing modules on the basis of the size of the cache memory; and set a packet processing size related to packet processing in each of the sub-processing modules on the basis of the size of the cache memory. Various other embodiments may also be possible.
Description
본 발명의 다양한 실시예는 UPF(user plane function)의 전자 장치에서 패킷을 처리하기 위한 장치 및 방법에 관한 것이다.Various embodiments of the present invention relate to an apparatus and method for processing a packet in an electronic device of a user plane function (UPF).
4G(4th generation) 통신 시스템 상용화 이후 증가 추세에 있는 무선 데이터 트래픽 수요를 충족시키기 위해, 개선된 5G(5th generation) 통신 시스템, 또는 pre-5G 통신 시스템을 개발하기 위한 노력이 이루어지고 있다. 이러한 이유로, 5G 통신 시스템 또는 pre-5G 통신 시스템은 4G 네트워크 이후(Beyond 4G Network) 통신 시스템 또는 LTE(Long Term Evolution) 시스템 이후(Post LTE) 시스템이라 불리어지고 있다.Efforts are being made to develop an improved 5th generation (5G) communication system, or a pre-5G communication system, in order to meet the increasing demand for wireless data traffic after commercialization of the 4G (4th generation) communication system. For this reason, the 5G communication system or the pre-5G communication system is called a 4G network after (Beyond 4G Network) communication system or an LTE (Long Term Evolution) system after (Post LTE) system.
5G 통신 시스템은 높은 데이터 전송률을 달성하기 위해, 6기가(6GHz) 이하의 대역(예: 약 1.8GHz 대역 또는 약 3.5GHz 대역) 또는 6기가(6GHz) 이상의 대역(예: 약 28GHz 대역 또는 약 39GHz 대역)에서의 구현이 고려되고 있다. 5G 통신 시스템에서는 전파의 경로손실 완화 및 전파의 전달 거리를 증가시키기 위해, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO), 전차원 다중입출력(Full Dimensional MIMO, FD-MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 및 대규모 안테나(large scale antenna) 기술들이 논의되고 있다.In order to achieve high data rates, the 5G communication system uses a band of less than 6 gigabytes (6 GHz) (eg about 1.8 GHz band or about 3.5 GHz band) or a band of 6 gigabytes (6 GHz) or more (eg about 28 GHz band or about 39 GHz). band) is being considered. In the 5G communication system, in order to alleviate the path loss of radio waves and increase the propagation distance of radio waves, beamforming, massive MIMO, Full Dimensional MIMO (FD-MIMO), and array antenna (array antenna), analog beam-forming (analog beam-forming), and large-scale antenna (large scale antenna) technologies are being discussed.
또한, 5G 통신 시스템에서는 시스템의 네트워크 개선을 위해, 진화된 소형 셀, 개선된 소형 셀(advanced small cell), 클라우드 무선 액세스 네트워크(cloud radio access network, cloud RAN), 초고밀도 네트워크(ultra-dense network), 기기 간 통신(Device to Device communication, D2D), 무선 백홀(wireless backhaul), 이동 네트워크(moving network), 협력 통신(cooperative communication), CoMP(Coordinated Multi-Points), 및 수신 간섭제거(interference cancellation) 등의 기술 개발이 이루어지고 있다. In addition, in the 5G communication system, for network improvement of the system, an evolved small cell, an advanced small cell, a cloud radio access network (cloud radio access network, cloud RAN), an ultra-dense network (ultra-dense network) ), Device to Device communication (D2D), wireless backhaul, moving network, cooperative communication, Coordinated Multi-Points (CoMP), and reception interference cancellation ) and other technologies are being developed.
이 밖에도, 5G 통신 시스템에서는 진보된 코딩 변조(Advanced Coding Modulation, ACM) 방식인 FQAM(Hybrid Frequency Shift Keying and Quadrature Amplitude Modulation) 및 SWSC(Sliding Window Superposition Coding)과, 진보된 접속 기술인 FBMC(Filter Bank Multi Carrier), NOMA(Non Orthogonal Multiple Access), 및 SCMA(Sparse Code Multiple Access) 등이 개발되고 있다.In addition, in the 5G communication system, FQAM (Hybrid Frequency Shift Keying and Quadrature Amplitude Modulation) and SWSC (Sliding Window Superposition Coding), which are advanced coding modulation (Advanced Coding Modulation, ACM) methods, and Filter Bank Multi (FBMC), an advanced access technology, Carrier), Non Orthogonal Multiple Access (NOMA), and Sparse Code Multiple Access (SCMA) are being developed.
5G 통신 시스템에서는 기존 4G 통신 시스템 대비 다양한 서비스에 대한 지원을 고려하고 있다. 예를 들어, 5G 통신 시스템에서의 대표적인 서비스는 모바일 초광대역 통신 서비스(eMBB: enhanced mobile broad band), 초 고신뢰성/저지연 통신 서비스(URLLC: ultra-reliable and low latency communication), 대규모 기기간 통신 서비스(mMTC: massive machine type communication) 또는 차세대 방송 서비스(eMBMS: evolved multimedia broadcast/multicast Service)를 포함할 수 있다. In the 5G communication system, support for various services is being considered compared to the existing 4G communication system. For example, representative services in the 5G communication system include enhanced mobile broad band (eMBB), ultra-reliable and low latency communication (URLLC), and large-scale device-to-device communication services. (mMTC: massive machine type communication) or a next-generation broadcast service (eMBMS: evolved multimedia broadcast/multicast Service) may be included.
5G 통신 시스템은 제어 신호의 처리를 위한 평면(또는 제어 평면(control plane)) 및 데이터의 처리를 위한 평면(또는 사용자 평면(user plane))이 구분되는 네트워크 구조를 포함할 수 있다. The 5G communication system may include a network structure in which a plane (or a control plane) for processing a control signal and a plane (or a user plane) for processing data are divided.
제어 평면 기능과 사용자 평면 기능이 분리되는 네트워크 구조에서 사용자 평면 기능은 데이터 패킷의 전송을 담당할 수 있다. 이에 따라, 무선 통신 시스템은 사용자 평면 기능(UPF: user plane function)에서 데이터 패킷의 전송 지연을 줄이면서 데이터 패킷을 효율적으로 처리하기 위한 방안이 요구되고 있다. In a network structure in which the control plane function and the user plane function are separated, the user plane function may be responsible for data packet transmission. Accordingly, in the wireless communication system, a method for efficiently processing data packets while reducing transmission delay of data packets in a user plane function (UPF) is required.
본 발명의 다양한 실시예는 무선 통신 시스템의 사용자 평면 기능(UPF)의 전자 장치에서 패킷을 효율적으로 처리하기 위한 장치 및 방법에 대해 개시한다.Various embodiments of the present invention disclose an apparatus and method for efficiently processing a packet in an electronic device of a user plane function (UPF) of a wireless communication system.
다양한 실시예에 따르면, 무선 통신 시스템에서 사용자 평면 기능(UPF)의 전자 장치는, 통신 인터페이스와 처리 모듈(processing module)을 포함하는 프로세서를 포함하며, 상기 프로세서는, 상기 UPF의 초기 구동 시, 상기 처리 모듈이 사용 가능한 캐쉬 메모리의 크기를 확인하고, 상기 캐쉬 메모리의 크기에 기반하여 상기 처리 모듈에 포함되는 다수 개의 기능 모듈을 다수 개의 서브 처리 모듈로 그룹핑하고, 상기 캐쉬 메모리의 크기에 기반하여 각각의 서브 처리 모듈에서의 패킷 처리와 관련된 패킷 처리 크기를 설정할 수 있다.According to various embodiments, an electronic device of a user plane function (UPF) in a wireless communication system includes a processor including a communication interface and a processing module, and the processor is configured to: Check the size of the cache memory usable by the processing module, group a plurality of function modules included in the processing module based on the size of the cache memory into a plurality of sub processing modules, each based on the size of the cache memory You can set the packet processing size related to packet processing in the sub processing module of .
다양한 실시예에 따르면, 무선 통신 시스템에서 사용자 평면 기능(UPF)의 전자 장치의 동작 방법은, 상기 UPF의 초기 구동 시, 상기 UPF의 프로세서에 포함되는 처리 모듈이 사용 가능한 캐쉬 메모리의 크기를 확인하는 동작과 상기 캐쉬 메모리의 크기에 기반하여 상기 처리 모듈에 포함되는 다수 개의 기능 모듈을 다수 개의 서브 처리 모듈로 그룹핑하는 동작, 및 상기 캐쉬 메모리의 크기에 기반하여 각각의 서브 처리 모듈에서의 패킷 처리와 관련된 패킷 처리 크기를 설정하는 동작을 포함할 수 있다.According to various embodiments, the method of operating an electronic device of a user plane function (UPF) in a wireless communication system includes checking the size of a cache memory usable by a processing module included in a processor of the UPF when the UPF is initially driven. Grouping a plurality of functional modules included in the processing module into a plurality of sub-processing modules based on the operation and the size of the cache memory, and packet processing in each sub-processing module based on the size of the cache memory It may include an operation of setting a related packet processing size.
본 발명의 다양한 실시예에 따르면, 무선 통신 시스템의 사용자 평면 기능(UPF: user plane function)에서 처리 모듈의 캐쉬 메모리의 크기에 기반하여 처리 모듈을 다수 개의 서브 처리 모듈들로 그룹핑하고, 각각의 서브 처리 모듈에서 캐쉬 메모리의 크기에 기반하여 설정된 패킷 처리 크기(예: 배치 크기)의 데이터(또는 패킷)을 순차적으로 처리함으로써, 캐쉬 메모리를 점유하기 위한 데이터의 경쟁을 줄이고, 데이터 프리 패치(data pre-fetch) 기술의 효율성을 높일 수 있다.According to various embodiments of the present invention, a processing module is grouped into a plurality of sub processing modules based on the size of the cache memory of the processing module in a user plane function (UPF) of a wireless communication system, and each sub By sequentially processing data (or packets) of a packet processing size (eg, batch size) set based on the size of the cache memory in the processing module, contention of data for occupying the cache memory is reduced, and data pre-fetch -fetch) technology can increase the efficiency.
도 1은 다양한 실시예에 따른, 5G 네트워크의 구조를 도시한다. 1 illustrates a structure of a 5G network, according to various embodiments.
도 2는 다양한 실시예에 따른, 네트워크 엔티티(network entity)의 블록도이다.2 is a block diagram of a network entity, in accordance with various embodiments;
도 3은 다양한 실시예에 따른 도 2의 프로세서의 블록도이다.3 is a block diagram of the processor of FIG. 2 in accordance with various embodiments.
도 4는 다양한 실시예에 따른 네트워크 엔티티에서 패킷 처리와 관련된 변수를 설정하기 위한 흐름도이다.4 is a flowchart for setting a variable related to packet processing in a network entity according to various embodiments of the present disclosure;
도 5는 다양한 실시예에 따른 네트워크 엔티티에서 처리 모듈을 다수 개의 서브 처리 모듈로 그룹핑하기 위한 흐름도이다.5 is a flowchart for grouping a processing module into a plurality of sub processing modules in a network entity according to various embodiments of the present disclosure;
도 6은 다양한 실시예에 따른 네트워크 엔티티에서 패킷을 처리하기 위한 흐름도이다.6 is a flowchart for processing a packet in a network entity according to various embodiments.
도 7은 다양한 실시예에 따른 네트워크 엔티티에서 서브 처리 모듈을 이용하여 패킷을 처리하기 위한 흐름도이다.7 is a flowchart for processing a packet using a sub-processing module in a network entity according to various embodiments of the present disclosure;
도 8은 다양한 실시예에 따른 네트워크 엔티티에서 패킷을 처리하기 위한 구조이다.8 is a structure for processing a packet in a network entity according to various embodiments of the present disclosure;
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다. 이 때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음에 유의해야 한다. 또한, 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In this case, it should be noted that in the accompanying drawings, the same components are denoted by the same reference numerals as much as possible. In addition, detailed descriptions of well-known functions and configurations that may obscure the gist of the present invention will be omitted.
본 명세서에서 실시 예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.In describing the embodiments in the present specification, descriptions of technical contents that are well known in the technical field to which the present invention pertains and are not directly related to the present invention will be omitted. This is to more clearly convey the gist of the present invention without obscuring the gist of the present invention by omitting unnecessary description.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.For the same reason, some components are exaggerated, omitted, or schematically illustrated in the accompanying drawings. In addition, the size of each component does not fully reflect the actual size. In each figure, the same or corresponding elements are assigned the same reference numerals.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Advantages and features of the present invention, and a method for achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only these embodiments allow the disclosure of the present invention to be complete, and common knowledge in the technical field to which the present invention belongs It is provided to fully inform the possessor of the scope of the invention, and the present invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout.
이때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.At this time, it will be understood that each block of the flowchart diagrams and combinations of the flowchart diagrams may be performed by computer program instructions. These computer program instructions may be embodied in a processor of a general purpose computer, special purpose computer, or other programmable data processing equipment, such that the instructions performed by the processor of the computer or other programmable data processing equipment are not described in the flowchart block(s). It creates a means to perform functions. These computer program instructions may also be stored in a computer-usable or computer-readable memory that may direct a computer or other programmable data processing equipment to implement a function in a particular manner, and thus the computer-usable or computer-readable memory. It is also possible that the instructions stored in the flow chart block(s) produce an article of manufacture containing instruction means for performing the function described in the flowchart block(s). The computer program instructions may also be mounted on a computer or other programmable data processing equipment, such that a series of operational steps are performed on the computer or other programmable data processing equipment to create a computer-executed process to create a computer or other programmable data processing equipment. It is also possible that instructions for performing the processing equipment provide steps for performing the functions described in the flowchart block(s).
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.Additionally, each block may represent a module, segment, or portion of code that includes one or more executable instructions for executing specified logical function(s). It should also be noted that in some alternative implementations it is also possible for the functions recited in blocks to occur out of order. For example, two blocks shown one after another may be performed substantially simultaneously, or the blocks may sometimes be performed in the reverse order according to a corresponding function.
이 때, 본 실시 예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.In this case, the term '~ unit' used in this embodiment means software or hardware components such as FPGA or ASIC, and '~ unit' performs certain roles. However, '-part' is not limited to software or hardware. '~' may be configured to reside on an addressable storage medium or may be configured to refresh one or more processors. Accordingly, as an example, '~' indicates components such as software components, object-oriented software components, class components, and task components, and processes, functions, properties, and procedures. , subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables. The functions provided in the components and '~ units' may be combined into a smaller number of components and '~ units' or further separated into additional components and '~ units'. In addition, components and '~ units' may be implemented to play one or more CPUs in a device or secure multimedia card.
본 문서의 다양한 실시예 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.Various embodiments of this document and terms used therein are not intended to limit the technical features described in this document to a specific embodiment, but it should be understood to include various modifications, equivalents, or substitutions of the embodiments. In connection with the description of the drawings, like reference numerals may be used for similar or related components. The singular form of the noun corresponding to the item may include one or more of the item, unless the relevant context clearly dictates otherwise. As used herein, "A or B", "at least one of A and B", "at least one of A or B", "A, B or C", "at least one of A, B and C", and "A , B, or C" each may include any one of the items listed together in the corresponding one of the phrases, or all possible combinations thereof. Terms such as "first", "second", or "first" or "second" may be used simply to distinguish the element from other elements in question, and may refer to elements in other aspects (e.g., importance or order) is not limited. It is said that one (eg, first) component is "coupled" or "connected" to another (eg, second) component, with or without the terms "functionally" or "communicatively". When referenced, it means that one component can be connected to the other component directly (eg by wire), wirelessly, or through a third component.
본 문서의 다양한 실시예에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.The term “module” used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and is, for example, used interchangeably with terms such as logic, logic block, component, or circuit. can be used A module may be an integrally formed part or a minimum unit or a part of the part that performs one or more functions. For example, according to an embodiment, the module may be implemented in the form of an application-specific integrated circuit (ASIC).
다양한 실시예에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.According to various embodiments, each component (eg, a module or a program) of the above-described components may include a singular or a plurality of entities, and some of the plurality of entities may be separately disposed in other components. . According to various embodiments, one or more components or operations among the above-described corresponding components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (eg, a module or a program) may be integrated into one component. In this case, the integrated component may perform one or more functions of each component of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. . According to various embodiments, operations performed by a module, program, or other component are executed sequentially, in parallel, repeatedly, or heuristically, or one or more of the operations are executed in a different order, omitted, or , or one or more other operations may be added.
이하, 기지국은 단말의 자원할당을 수행하는 주체로서, Node B, BS(base station), eNB(eNode B), gNB(gNode B), 무선 접속 유닛, 기지국 제어기, 또는 네트워크 상의 노드 중 적어도 하나일 수 있다. 단말은 UE(user equipment), MS(mobile station), 셀룰러폰, 스마트폰, 컴퓨터, 또는 통신기능을 수행할 수 있는 멀티미디어시스템을 포함할 수 있다. 또한, 이하에서 설명하는 본 개시의 실시 예와 유사한 기술적 배경 또는 채널형태를 갖는 여타의 통신시스템에도 본 개시의 실시 예가 적용될 수 있다. 또한, 본 개시의 실시 예는 숙련된 기술적 지식을 가진 자의 판단으로써 본 개시의 범위를 크게 벗어나지 아니하는 범위에서 일부 변형을 통해 다른 통신시스템에도 적용될 수 있다.Hereinafter, the base station, as a subject performing resource allocation of the terminal, is at least one of a Node B, a base station (BS), an eNB (eNode B), a gNB (gNode B), a radio access unit, a base station controller, or a node on the network. can The terminal may include a user equipment (UE), a mobile station (MS), a cellular phone, a smart phone, a computer, or a multimedia system capable of performing a communication function. In addition, the embodiment of the present disclosure may be applied to other communication systems having a similar technical background or channel type to the exemplary embodiment of the present disclosure described below. In addition, the embodiments of the present disclosure may be applied to other communication systems through some modifications within a range that does not significantly depart from the scope of the present disclosure as judged by a person having skilled technical knowledge.
이하 설명에서 사용되는 접속 노드(node)를 식별하기 위한 용어, 망 객체(network entity) 또는 NF(network function)들을 지칭하는 용어, 메시지들을 지칭하는 용어, 망 객체들 간 인터페이스를 지칭하는 용어, 다양한 식별 정보들을 지칭하는 용어 등은 설명의 편의를 위해 예시된 것이다. 따라서, 본 발명이 후술되는 용어들에 한정되는 것은 아니며, 동등한 기술적 의미를 가지는 대상을 지칭하는 다른 용어가 사용될 수 있다.A term for identifying an access node used in the following description, a term referring to a network entity or NF (network function), a term referring to messages, a term referring to an interface between network objects, various Terms and the like referring to identification information are exemplified for convenience of description. Accordingly, the present invention is not limited to the terms described below, and other terms referring to objects having equivalent technical meanings may be used.
이하 설명의 편의를 위하여, 3GPP(3rd generation partnership project long term evolution) 규격에서 정의하고 있는 용어 및 명칭들이 일부 사용될 수 있다. 하지만, 본 발명은 3GPP 규격에서 정의하고 있는 용어 및 명칭들에 의해 한정되는 것은 아니며, 다른 규격에 따르는 시스템에도 동일하게 적용될 수 있다.For convenience of description, some terms and names defined in the 3rd generation partnership project long term evolution (3GPP) standard may be used. However, the present invention is not limited by the terms and names defined in the 3GPP standard, and can be equally applied to systems conforming to other standards.
본 발명의 실시 예들은 5GC(5G Core)내의 UPF(user plane function) (125)에서 다른 네트워크 엔티티(예: RAN(115))로부터 제공받은 패킷을 처리하기 위한 구성을 제공한다. Embodiments of the present invention provide a configuration for processing a packet provided from another network entity (eg, RAN 115) in a user plane function (UPF) 125 in 5GC (5G Core).
다양한 실시예에 따르면, 무선 통신 시스템은 4G 통신 시스템에서 5G 통신 시스템(또는 NR(new radio) 시스템)으로 진화를 하면서 새로운 코어 네트워크(core network)인 Next Gen(generation) Core(NG Core) 혹은 5GC(5G core network)를 정의한다. 새로운 코어 네트워크는 기존의 네트워크 엔티티(NE: network entity)들을 전부 가상화하여 네트워크 기능(NF: network function)으로 구성될 수 있다. 본 개시의 일 실시 예에 따르면, 네트워크 기능이란 네트워크 엔티티, 네트워크 컴포넌트, 네트워크 자원을 의미할 수 있다. According to various embodiments, a wireless communication system evolves from a 4G communication system to a 5G communication system (or a new radio (NR) system), and a Next Gen (generation) Core (NG Core) or 5GC that is a new core network (5G core network) is defined. The new core network may be configured as a network function (NF) by virtualizing all existing network entities (NE). According to an embodiment of the present disclosure, a network function may mean a network entity, a network component, and a network resource.
도 1은 본 발명의 다양한 실시예에 따른 5G 네트워크(100)의 구조를 도시한다.1 shows the structure of a 5G network 100 according to various embodiments of the present invention.
도 1을 참고하면, 다양한 실시예에 따르면, 5G 네트워크(100)를 구성하는 네트워크 엔티티 또는 네트워크 노드들의 설명은 다음과 같다.Referring to FIG. 1 , according to various embodiments, a description of network entities or network nodes constituting the 5G network 100 is as follows.
일 실시예에 따르면, 5G 네트워크(100)는 도 1에 도시된 NF들(115 내지 175)을 포함할 수 있다. 하지만, 5G 네트워크(100)는 도 1의 예시에 제한되는 것이 아니며, 도 1에 도시된 NF보다 더 많은 수의 NF를 포함할 수도 있고 더 적은 수의 NF를 포함할 수도 있다. According to an embodiment, the 5G network 100 may include the NFs 115 to 175 shown in FIG. 1 . However, the 5G network 100 is not limited to the example of FIG. 1 , and may include a larger number of NFs or a smaller number of NFs than the NFs shown in FIG. 1 .
다양한 실시예에 따르면, (R)AN((radio) access network)(115)는 단말(110)의 무선 자원할당을 수행하는 주체로서, eNode B, Node B, BS(base station), NG-RAN(next generation radio access network), 5G-AN(access network), 무선 접속 유닛, 기지국 제어기, 또는 네트워크 상의 노드 중 적어도 하나일 수 있다. 예를 들어, 단말(110)은 UE(user equipment), NG UE(next generation UE), MS(mobile station), 셀룰러폰, 스마트폰, 컴퓨터, 또는 통신기능을 수행할 수 있는 멀티미디어시스템을 포함할 수 있다. 이하 설명에서 5G 통신 시스템을 일례로서 본 발명의 실시 예를 설명하지만, 유사한 기술적 배경을 갖는 여타의 다른 통신 시스템에도 본 개시의 실시 예가 적용될 수 있다. 또한, 본 발명의 실시 예는 숙련된 기술적 지식을 가진 자의 판단으로써 본 발명의 범위를 크게 벗어나지 아니하는 범위에서 일부 변형을 통해 다른 통신 시스템에도 적용될 수 있다.According to various embodiments, (R) AN ((radio) access network) 115 is a subject that performs radio resource allocation of the terminal 110, eNode B, Node B, BS (base station), NG-RAN (next generation radio access network), 5G-AN (access network), may be at least one of a radio access unit, a base station controller, or a node on the network. For example, the terminal 110 may include a user equipment (UE), a next generation UE (NG UE), a mobile station (MS), a cellular phone, a smart phone, a computer, or a multimedia system capable of performing a communication function. can In the following description, an embodiment of the present invention will be described using a 5G communication system as an example, but the embodiment of the present disclosure may be applied to other communication systems having a similar technical background. In addition, the embodiments of the present invention may be applied to other communication systems through some modifications within a range that does not significantly depart from the scope of the present invention as judged by a person having skilled technical knowledge.
다양한 실시예에 따르면, AMF(access and mobility management function)(120)는 단말(110)의 이동성을 관리하는 네트워크 기능일 수 있다. According to various embodiments, the access and mobility management function (AMF) 120 may be a network function for managing the mobility of the terminal 110 .
다양한 실시예에 따르면, SMF(session management function)(130)는 단말(110)에게 제공하는 PDN(packet data network) 연결을 관리하는 네트워크 기능일 수 있다. 일예로, PDN 연결은 PDU(protocol data unit) 세션(session)이라는 이름으로 지칭될 수 있다. According to various embodiments, the session management function (SMF) 130 may be a network function for managing a packet data network (PDN) connection provided to the terminal 110 . For example, the PDN connection may be referred to as a protocol data unit (PDU) session.
다양한 실시예에 따르면, PCF(policy control function)(150)는 단말(110)에 대한 이동통신 사업자의 서비스 정책, 과금 정책, 또는 PDU 세션에 대한 정책 중 적어도 하나를 적용하는 네트워크 기능일 수 있다. According to various embodiments, the policy control function (PCF) 150 may be a network function that applies at least one of a service policy of a mobile communication operator to the terminal 110 , a charging policy, and a policy for a PDU session.
다양한 실시예에 따르면, UDM(unified data management)(155)은 가입자에 대한 정보를 저장하는 네트워크 기능일 수 있다. According to various embodiments, the unified data management (UDM) 155 may be a network function that stores information about a subscriber.
다양한 실시예에 따르면, NEF(network exposure function)(140)는 단말(110)에 관한 정보를 5G 네트워크(100)의 외부에 있는 서버에게 제공하는 기능일 수 있다. 또한 NEF(140)는 5G 네트워크(100)에 서비스를 위해서 필요한 정보를 제공하여 UDR(user data repository)(미도시)에 저장하는 기능을 제공할 수 있다. According to various embodiments, the network exposure function (NEF) 140 may be a function of providing information about the terminal 110 to a server outside the 5G network 100 . In addition, the NEF 140 may provide information necessary for a service to the 5G network 100 and provide a function of storing the information in a user data repository (UDR) (not shown).
다양한 실시예에 따르면, UPF(user plane function)(125)는 사용자 데이터(예: PDU)를 DN(data network)(175)으로 전달하는 게이트웨이 역할을 수행하는 기능일 수 있다. 일 실시예에 따르면, UPF(125)는 SBI(service based interface)인 Nupf가 정의되며 이를 통해서 다른 NF에게 이벤트 노출 서비스(event exposure service)를 제공 할 수 있다. According to various embodiments, the user plane function (UPF) 125 may function as a gateway for transferring user data (eg, PDU) to the data network (DN) 175 . According to an embodiment, Nupf, which is a service based interface (SBI), is defined in the UPF 125 and may provide an event exposure service to other NFs through this.
다양한 실시예에 따르면, NRF(network repository function)(145)는 NF을 발견(discovery) 하는 기능을 수행할 수 있다. According to various embodiments, the network repository function (NRF) 145 may perform a function of discovering the NF.
다양한 실시예에 따르면, AUSF(authentication server function)(165)는 3GPP 접속 망과 non-3GPP 접속 망에서의 단말 인증을 수행할 수 있다. According to various embodiments, the authentication server function (AUSF) 165 may perform terminal authentication in the 3GPP access network and the non-3GPP access network.
다양한 실시예에 따르면, NSSF(network slice selection function)(135)는 단말(140)에게 제공되는 네트워크 슬라이스 인스턴스(network slice instance)를 선택하는 기능을 수행할 수 있다. According to various embodiments, the network slice selection function (NSSF) 135 may perform a function of selecting a network slice instance provided to the terminal 140 .
다양한 실시예에 따르면, SCP(service communication proxy)(170)는 NF 간 연동에서 서비스의 검색, 호출 또는 응답을 대리하는 간접 통신 방법을 제공할 수 있다. According to various embodiments, the service communication proxy (SCP) 170 may provide an indirect communication method that substitutes for a service search, call, or response in interworking between NFs.
다양한 실시예에 따르면, DN(data network)(175)은 망 사업자의 서비스나 3rd party 서비스를 이용하기 위해서 단말(110)이 데이터를 송수신하는 데이터 네트워크일 수 있다.According to various embodiments, the data network (DN) 175 may be a data network through which the terminal 110 transmits and receives data in order to use a service of a network operator or a 3rd party service.
도 2는 다양한 실시예에 따른, 네트워크 엔티티(network entity)의 블록도이다. 일 실시예에 따르면, 도 2의 네트워크 엔티티는 도 1의 UPF(125)일 수 있다. 도 3은 다양한 실시예에 따른 도 2의 프로세서(200)의 내부 블록도이다. 일예로, 도 2의 UPF(125)는 무선 통신 시스템에서 UPF(125)로 동작하는 전자 장치를 포함할 수 있다. 2 is a block diagram of a network entity, in accordance with various embodiments; According to one embodiment, the network entity of FIG. 2 may be the UPF 125 of FIG. 1 . 3 is an internal block diagram of the processor 200 of FIG. 2 according to various embodiments. For example, the UPF 125 of FIG. 2 may include an electronic device operating as the UPF 125 in a wireless communication system.
도 2를 참조하면, 다양한 실시예에 따르면, UPF(125)는 프로세서(200), 메모리(210) 및/또는 통신 인터페이스(220)를 포함할 수 있다. Referring to FIG. 2 , according to various embodiments, the UPF 125 may include a processor 200 , a memory 210 , and/or a communication interface 220 .
다양한 실시예에 따르면, 프로세서(200)는 UPF(125)의 동작을 제어 및/또는 관리하도록 구성될 수 있다. 일 실시예에 따르면, 프로세서(200)는 중앙 처리 유닛(CPU: central processing unit), 범용 프로세서, 디지털 신호 프로세서(DSP: digital signal processor), 주문형 집적 회로(ASIC: application-specific integrated circuit), 필드 프로그래머블 게이트 어레이(FPGA: field programmable gate array) 또는 다른 프로그래머블 로직 디바이스, 트랜지스터 로직 디바이스, 하드웨어 컴포넌트, 또는 이들의 임의의 조합일 수 있다. 프로세서(200)는 본 발명에 개시된 내용을 참조하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 및 회로들을 구현 또는 실행할 수 있다. 예를 들어, 프로세서(200)는 하나 이상의 마이크로프로세서의 조합, 또는 DSP와 마이크로프로세서의 조합을 구현될 수 있다. According to various embodiments, the processor 200 may be configured to control and/or manage the operation of the UPF 125 . According to an embodiment, the processor 200 includes a central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field It may be a field programmable gate array (FPGA) or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. The processor 200 may implement or execute the various illustrative logical blocks, modules, and circuits described with reference to the disclosure herein. For example, the processor 200 may be implemented as a combination of one or more microprocessors, or a combination of a DSP and a microprocessor.
다양한 실시예에 따르면, 프로세서(200)는 UPF(125)가 무선 통신 시스템에 적용되어 초기 구동되는 경우, UPF(125)의 내부 구성에서 사용 가능한 캐쉬 메모리의 크기를 확인할 수 있다. 일 실시예에 따르면, 프로세서(200)는 도 3과 같이, 다수 개의 처리 모듈들(310-1, 310-2 또는 310-n))에서 사용 가능한 캐쉬 메모리의 크기와 관련된 정보를 확인할 수 있다. 일예로, 캐쉬 메모리의 크기와 관련된 정보는 UPF(125) 생산 시 기 정의되거나, UPF(125)의 초기 구동 시 처리 모듈들(310-1, 310-2 또는 310-n)로부터 획득할 수 있다.According to various embodiments, when the UPF 125 is applied to a wireless communication system and initially driven, the processor 200 may check the size of a cache memory usable in the internal configuration of the UPF 125 . According to one embodiment, the processor 200 may check information related to the size of the cache memory usable in the plurality of processing modules (310-1, 310-2, or 310-n), as shown in FIG. 3 . For example, information related to the size of the cache memory may be predefined when the UPF 125 is produced, or may be obtained from the processing modules 310-1, 310-2, or 310-n when the UPF 125 is initially driven. .
다양한 실시예에 따르면, 프로세서(200)는 UPF(125)에서 패킷 처리를 위한 처리 모듈(processing module)에 포함되는 다수 개의 기능 모듈을 다수 개의 서브 처리 모듈로 그룹핑(또는 분할)할 수 있다. 일 실시예에 따르면, 프로세서(200)는 UPF(125)가 무선 통신 시스템에 적용되어 초기 구동되는 시점, UPF(125)의 내부 구성(예: 처리 모듈들(310-1, 310-2 및/또는 310-n))이 변경되는 시점, 처리 모듈들(310-1, 310-2 및/또는 310-n)에서 처리하는 프로토콜 타입이 변경되는 시점 또는 기 정의된 주기가 도래하는 시점에 처리 모듈(processing module)에 포함되는 다수 개의 기능 모듈들을 다수 개의 서브 처리 모듈들로 그룹핑(또는 분할)할 수 있다. According to various embodiments, the processor 200 may group (or divide) a plurality of functional modules included in a processing module for packet processing in the UPF 125 into a plurality of sub-processing modules. According to an embodiment, the processor 200 determines when the UPF 125 is applied to the wireless communication system and initially driven, the internal configuration of the UPF 125 (eg, processing modules 310 - 1 , 310 - 2 and/or or 310-n)) is changed, when the protocol type processed by the processing modules 310-1, 310-2 and/or 310-n is changed, or when a predefined period arrives, the processing module A plurality of functional modules included in (processing module) may be grouped (or divided) into a plurality of sub-processing modules.
일 실시예에 따르면, 프로세서(200)는 도 3과 같이, 다수 개의 처리 모듈들(310-1, 310-2, 및/또는 310-n)을 포함할 수 있다. 프로세서(200)는 처리 모듈들(310-1, 310-2, 또는, 310-n)에서 사용 가능한 캐쉬 메모리의 크기에 기반하여 각각의 처리 모듈(310-1, 310-2, 또는, 310-n)에 포함되는 기능 모듈들을 다수 개의 서브 처리 모듈들로 그룹핑(또는 분할)할 수 있다. 예를 들어, 서브 처리 모듈은 서브 처리 모듈에서 패킷을 처리하는데 필요로 하는 캐쉬 메모리의 크기가 처리 모듈(310-1, 310-2, 또는, 310-n)에서 사용 가능한 캐쉬 메모리의 크기를 초과하지 않도록 설정된 적어도 하나의 기능 모듈을 포함할 수 있다. 일예로, 기능 모듈은 단일 책임(single responsibility)을 지닌 독립적인 소프트웨어 모듈을 나타낼 수 있다. 일예로, 처리 모듈들(310-1, 310-2, 및/또는, 310-n)은 동일한 크기의 캐쉬 메모리를 사용할 수 있다. 일예로, 각각의 서브 처리 모듈은 처리 모듈(310-1, 310-2, 또는, 310-n)에서 사용 가능한 캐쉬 메모리와 동일한 크기의 캐쉬 메모리를 사용할 수 있다. 일예로, n은 프로세서(200)에서 포함되는 처리 모듈들(310-1, 310-2, 및/또는, 310-n)의 개수를 나타낼 수 있다. According to an embodiment, the processor 200 may include a plurality of processing modules 310-1, 310-2, and/or 310-n, as shown in FIG. 3 . Processor 200 based on the size of the cache memory usable in the processing modules (310-1, 310-2, or 310-n) each processing module (310-1, 310-2, or 310-n) Function modules included in n) may be grouped (or divided) into a plurality of sub-processing modules. For example, in the sub-processing module, the size of the cache memory required to process the packet in the sub-processing module exceeds the size of the cache memory available in the processing module (310-1, 310-2, or 310-n) It may include at least one function module set not to do so. For example, a function module may represent an independent software module with a single responsibility. For example, the processing modules 310-1, 310-2, and/or 310-n may use a cache memory of the same size. For example, each sub-processing module may use a cache memory having the same size as a cache memory usable in the processing module 310-1, 310-2, or 310-n. For example, n may represent the number of processing modules 310 - 1 , 310 - 2 , and/or 310 - n included in the processor 200 .
일 실시예에 따르면, 프로세서(200)는 각각의 처리 모듈(310-1, 310-2, 또는, 310-n)을 다수 개의 서브 처리 모듈들로 그룹핑(또는 분할)하기 위해 하이퍼 스레딩(hyper threading)기능의 적용 여부, 패킷의 프로토콜 타입, 또는 각각의 기능 모듈에서 처리하는 데이터가 동일한 캐쉬 라인에 존재 여부 중 적어도 하나를 추가적으로 고려할 수도 있다. 예를 들어, 프로세서(200)는 처리 모듈들(310-1, 310-2, 또는, 310-n)에서 하이퍼 스레딩 기능을 사용하는 경우, 각각의 처리 모듈(310-1, 310-2, 또는, 310-n)이 논리적인 두 개의 처리 모듈들로 작동하도록 할 수 있다. 프로세서(200)는 하이퍼 스레딩 기능을 사용하는 경우, 처리 모듈들(310-1, 310-2, 또는, 310-n)에서 사용 가능한 캐쉬 메모리의 크기가 하이퍼 스레딩 기능을 사용하는 않는 경우에 처리 모듈들(310-1, 310-2, 또는, 310-n)에서 사용 가능한 캐쉬 메모리의 크기보다 절반인 것으로 판단할 수 있다. 이에 따라, 프로세서(200)는 처리 모듈들(310-1, 310-2, 또는, 310-n)의 하이퍼 스레딩 기능의 사용 여부에 기반하여 각각의 처리 모듈(310-1, 310-2, 또는, 310-n)에 포함되는 기능 모듈들을 다수 개의 서브 처리 모듈들로 그룹핑(또는 분할)하는데 고려되는 처리 모듈들 (310-1, 310-2, 또는, 310-n)에서 사용 가능한 캐쉬 메모리의 크기를 적응적으로 판단할 수 있다. 예를 들어, 프로세서(200)는 처리 모듈(310-1, 310-2, 또는, 310-n)에서 처리하기 위한 패킷의 프로토콜 타입에 기반하여 각각의 처리 모듈(310-1, 310-2, 또는, 310-n)에서 그룹핑 가능한 서브 처리 모듈의 개수를 확인할 수 있다. 프로세서(200)는 패킷의 프로토콜 타입에 기반하여 그룹핑 가능한 서브 처리 모듈의 개수가 처리 모듈들 (310-1, 310-2, 또는, 310-n)에서 사용 가능한 캐쉬 메모리의 크기에 기반하여 그룹핑되는 서브 처리 모듈의 개수를 초과하는 경우, 다수 개의 처리 모듈들 (310-1, 310-2, 및/또는, 310-n)을 패킷의 프로토콜 타입을 처리하기 위한 처리 모듈로 설정할 수 있다. 이 경우, 각각의 처리 모듈(310-1, 310-2, 및/또는, 310-n)은 처리 모듈들 (310-1, 310-2, 또는, 310-n)에서 사용 가능한 캐쉬 메모리의 크기에 기반하여 그룹핑될 수 있다. 일예로, 패킷의 프로토콜 타입은 TCP(transmission control protocol), UDP(user datagram protocol), IPv4(internet protocol version 4), 또는 IPv6(internet protocol version 6) 중 적어도 하나를 포함할 수 있다.According to an embodiment, the processor 200 performs hyper-threading to group (or divide) each processing module 310-1, 310-2, or 310-n into a plurality of sub-processing modules. ) function application, packet protocol type, or whether data processed by each function module exists in the same cache line may be additionally considered. For example, when the processor 200 uses the hyper-threading function in the processing modules 310-1, 310-2, or 310-n, each processing module 310-1, 310-2, or , 310-n) to operate as two logical processing modules. When the processor 200 uses the hyper-threading function, when the size of the cache memory available in the processing modules 310-1, 310-2, or 310-n does not use the hyper-threading function, the processing module It can be determined to be half the size of the cache memory available in the ones (310-1, 310-2, or 310-n). Accordingly, the processor 200 determines whether the processing modules 310-1, 310-2, or 310-n use the hyper-threading function of each processing module 310-1, 310-2, or , 310-n) of the cache memory usable in the processing modules (310-1, 310-2, or, 310-n) considered for grouping (or dividing) the functional modules included in a plurality of sub-processing modules Size can be adaptively judged. For example, the processor 200 may be configured to process each of the processing modules 310-1, 310-2, 310-1, 310-2, or Alternatively, in 310-n), the number of groupable sub-processing modules may be checked. The processor 200 is the number of sub-processing modules that can be grouped based on the protocol type of the packet is grouped based on the size of the cache memory available in the processing modules (310-1, 310-2, or 310-n) When the number of sub-processing modules is exceeded, the plurality of processing modules 310-1, 310-2, and/or 310-n may be set as processing modules for processing the protocol type of the packet. In this case, each processing module (310-1, 310-2, and/or 310-n) is the size of the cache memory usable in the processing modules (310-1, 310-2, or, 310-n) may be grouped based on For example, the protocol type of the packet may include at least one of transmission control protocol (TCP), user datagram protocol (UDP), internet protocol version 4 (IPv4), and internet protocol version 6 (IPv6).
다양한 실시예에 따르면, 프로세서(200)는 각각의 서브 처리 모듈에서 한 주기 동안 처리할 수 있는 패킷의 크기(예: 패킷 처리 크기 또는 배치 크기(batch size))를 설정할 수 있다. 일 실시예에 따르면, 프로세서(200)는 UPF(125)가 무선 통신 시스템에 적용되어 초기 구동되는 시점, UPF(125)의 내부 구성(예: 처리 모듈(310-1, 310-2 및/또는 310-n))이 변경되는 시점, 처리 모듈들 (310-1, 310-2 및/또는 310-n)에서 처리하는 프로토콜 타입이 변경되는 시점 또는 기 정의된 주기가 도래하는 시점에 서브 처리 모듈에서 한 주기 동안 처리할 수 있는 패킷의 크기를 설정(또는 갱신)할 수 있다. According to various embodiments, the processor 200 may set a packet size (eg, a packet processing size or a batch size) that each sub-processing module can process during one cycle. According to an embodiment, the processor 200 determines when the UPF 125 is applied to the wireless communication system and is initially driven, the internal configuration of the UPF 125 (eg, processing modules 310-1, 310-2 and/or 310-n)) is changed, when the protocol type processed by the processing modules 310-1, 310-2 and/or 310-n is changed, or when a predefined period arrives, the sub-processing module You can set (or update) the packet size that can be processed in one cycle.
일 실시예에 따르면, 프로세서(200)는 처리 모듈들 (310-1, 310-2, 또는, 310-n)에서 사용 가능한 캐쉬 메모리의 크기에 기반하여 서브 처리 모듈에서 한 주기 동안 처리할 수 있는 패킷의 크기를 설정할 수 있다. 예를 들어, 서브 처리 모듈에서 한 주기 동안 처리할 수 있는 패킷의 크기는 서브 처리 모듈에서 접속하는 데이터들의 캐쉬 적중률(cache hit rate)을 보장하면서 다음 서브 처리 모듈의 데이터 프리 패치(pre-fetch) 기능의 적용 효율을 보장할 수 있는 크기로 설정될 수 있다. 즉, 프로세서(200)는 서브 처리 모듈에서 사용되는 데이터와 다음 서브 처리 모듈과 관련된 프리 패치된 데이터의 캐쉬 메모리 경쟁이 발생하지 않도록 서브 처리 모듈에서 한 주기 동안 처리할 수 있는 패킷의 크기를 설정할 수 있다.According to an embodiment, the processor 200 may process the sub-processing module for one cycle based on the size of the cache memory available in the processing modules 310-1, 310-2, or 310-n. You can set the packet size. For example, the size of the packet that can be processed during one cycle in the sub-processing module is determined by pre-fetching data of the next sub-processing module while ensuring the cache hit rate of data accessed by the sub-processing module. It can be set to a size that can ensure the application efficiency of the function. That is, the processor 200 may set the packet size that the sub-processing module can process for one cycle so that cache memory contention between data used in the sub-processing module and the pre-fetched data related to the next sub-processing module does not occur. have.
일 실시예에 따르면, 프로세서(200)는 서브 처리 모듈에서 한 주기 동안 처리할 수 있는 패킷의 크기를 설정하기 위해 하이퍼 스레딩 기능의 적용 여부, 벡터의 크기, 기능 별 소요 사이클(cycle), 또는 캐쉬 라인의 크기 중 적어도 하나를 추가적으로 고려할 수도 있다. 예를 들어, 벡터는 프로세서(200)에서 벡터 기반의 패킷 처리 방식을 사용하는 경우, 처리 모듈들 (310-1, 310-2, 또는, 310-n)에서 한번에 처리할 수 있는 처리 단위로, 동일하거나 유사한 프로토콜의 다수 개의 패킷을 포함할 수 있다. 예를 들어, 기능 별 소요 사이클은 서브 처리 모듈에 프리 패치된 데이터가 다음 서브 처리 모듈에서 실제 사용되기 까지 소요되는 정보를 포함할 수 있다. 예를 들어, 캐쉬 라인의 크기는 서브 처리 모듈이 캐쉬 메모리로 한번에 데이터를 저장할 수 있는 크기를 포함할 수 잇다. According to an embodiment, the processor 200 determines whether the hyper-threading function is applied, the size of a vector, a cycle required for each function, or a cache to set the size of a packet that can be processed by the sub-processing module for one cycle. At least one of the sizes of the lines may be additionally considered. For example, when the processor 200 uses a vector-based packet processing method, the vector is a processing unit that can be processed at once by the processing modules 310-1, 310-2, or 310-n, It may include multiple packets of the same or similar protocol. For example, the cycle required for each function may include information required until the data pre-fetched in the sub-processing module is actually used in the next sub-processing module. For example, the size of the cache line may include a size at which the sub-processing module can store data in the cache memory at one time.
다양한 실시예에 따르면, 프로세서(200)는 다른 네트워크 엔티티(예: RAN(115))로부터 패킷을 수신한 경우, 동일하거나 유사한 프로토콜의 패킷들을 하나의 벡터로 구성할 수 있다. 일 실시예에 따르면, 프로세서(200)의 분배 모듈(300)은 다른 네트워크 엔티티(예: RAN(115))로부터 패킷을 수신한 경우, 동일하거나 유사한 프로토콜의 패킷들을 하나의 벡터로 구성할 수 있다. 일예로, 벡터의 길이는 고정되거나, 다른 네트워크 엔티티로부터 수신되는 패킷의 종류 또는 패킷의 양 중 적어도 하나에 기반하여 가변적으로 설정될 수 있다.According to various embodiments, when receiving a packet from another network entity (eg, the RAN 115 ), the processor 200 may configure packets of the same or similar protocol into one vector. According to an embodiment, when the distribution module 300 of the processor 200 receives a packet from another network entity (eg, the RAN 115), packets of the same or similar protocol may be configured into one vector. . For example, the length of the vector may be fixed or set variably based on at least one of a type of a packet or an amount of a packet received from another network entity.
다양한 실시예에 따르면, 프로세서(200)는 벡터(또는 패킷)의 프로토콜에 기반하여 다수 개의 처리 모듈들 (310-1, 310-2 및 310-n) 중 해당 벡터를 처리하기 위한 적어도 하나의 처리 모듈(310-1, 310-2 및/또는 310-n)을 선택할 수 있다. 일 실시예에 따르면, 프로세서(200)(또는 분배 모듈(300))는 벡터(또는 패킷)의 프로토콜에 기반하여 다수 개의 처리 모듈들 (310-1, 310-2 및 310-n) 중 제 1 처리 모듈(310-1)을 선택할 수 있다. 제 1 처리 모듈(310-1)은 다수 개의 서브 처리 모듈들 각각을 통해 벡터 중 패킷 처리 크기(또는 배치 크기)에 대응하는 제 1 영역의 데이터를 순차적으로 처리할 수 있다. 제 1 처리 모듈(310-1)은 다수 개의 서브 처리 모듈을 통해 제 1 영역의 처리를 종료한 경우, 다수 개의 서브 처리 모듈 각각을 통해 벡터 중 패킷 처리 크기(또는 배치 크기)에 대응하는 제 1 영역에 다른 제 2 영역의 데이터를 순차적으로 처리할 수 있다.According to various embodiments, the processor 200 is configured to process at least one of the plurality of processing modules 310-1, 310-2, and 310-n based on the protocol of the vector (or packet) for processing the corresponding vector. Modules 310-1, 310-2 and/or 310-n may be selected. According to an embodiment, the processor 200 (or the distribution module 300 ) is configured to configure a first one of the plurality of processing modules 310 - 1 , 310 - 2 and 310 - n based on a protocol of a vector (or packet). The processing module 310-1 may be selected. The first processing module 310-1 may sequentially process the data of the first region corresponding to the packet processing size (or batch size) of the vectors through each of the plurality of sub-processing modules. When the first processing module 310-1 finishes processing the first region through the plurality of sub-processing modules, the first processing module 310 - 1 corresponds to the packet processing size (or batch size) of the vectors through each of the plurality of sub-processing modules. Data of a second area different from the area may be sequentially processed.
다양한 실시예에 따르면, 메모리(210)는 UPF(125)의 적어도 하나의 구성 요소(예: 프로세서(200) 및/또는 통신 인터페이스(220))에 의해 사용되는 정보 또는 다른 네트워크 엔티티들로부터 수신한 정보를 저장할 수 있다. 일 실시예에 따르면, 메모리(210)는 프로세서(200)를 통해 실행될 수 있는 다양한 인스트럭션들을 저장할 수 있다. According to various embodiments, the memory 210 may include information used by at least one component of the UPF 125 (eg, the processor 200 and/or the communication interface 220 ) or information received from other network entities. information can be stored. According to an embodiment, the memory 210 may store various instructions that may be executed through the processor 200 .
다양한 실시예에 따르면, 통신 인터페이스(220)는 UPF(125)와 다른 네트워크 엔티티들 사이에서 신호를 송신 및/또는 수신하도록 구성될 수 있다. 예를 들어, 통신 인터페이스(220)는 RAN(115)과 N3 인터페이스를 통해 신호(또는 데이터)를 송신 및/또는 수신할 수 있다. 예를 들어, 통신 인터페이스(220)는 SNF(130)과 N4 인터페이스를 통해 신호(또는 데이터를)를 송신 및/또는 수신할 수 있다. 예를 들어, 통신 인터페이스(220)는 DN(175)와 N6 인터페이스를 통해 신호(또는 데이터를)를 송신 및/또는 수신할 수 있다.According to various embodiments, communication interface 220 may be configured to transmit and/or receive signals between UPF 125 and other network entities. For example, the communication interface 220 may transmit and/or receive signals (or data) via the RAN 115 and the N3 interface. For example, the communication interface 220 may transmit and/or receive signals (or data) via the SNF 130 and the N4 interface. For example, communication interface 220 may transmit and/or receive signals (or data) via DN 175 and N6 interfaces.
본 발명의 다양한 실시예에 따르면, 무선 통신 시스템의 UPF(user plane function)(예: 도 1 또는 도 2의 UPF(125))의 전자 장치는, 통신 인터페이스(예: 도 2의 통신 인터페이스(220))와 처리 모듈(processing module)(예: 도 3의 처리 모듈(310-1, 310-2 또는 310-n))을 포함하는 프로세서(예: 도 2의 프로세서(200)))를 포함하며, 상기 프로세서는, 상기 UPF의 초기 구동 시, 상기 처리 모듈이 사용 가능한 캐쉬 메모리의 크기를 확인하고, 상기 캐쉬 메모리의 크기에 기반하여 상기 처리 모듈에 포함되는 다수 개의 기능 모듈들을 다수 개의 서브 처리 모듈들로 그룹핑하고, 상기 캐쉬 메모리의 크기에 기반하여 각각의 서브 처리 모듈에서의 패킷 처리와 관련된 패킷 처리 크기를 설정할 수 있다.According to various embodiments of the present disclosure, an electronic device of a user plane function (UPF) (eg, UPF 125 of FIG. 1 or FIG. 2 ) of a wireless communication system may include a communication interface (eg, communication interface 220 of FIG. 2 ). )) and a processor including a processing module (eg, the processing module 310-1, 310-2 or 310-n of FIG. 3) (eg, the processor 200 of FIG. 2)); , when the UPF is initially driven, the processor checks a size of a cache memory usable by the processing module, and assigns a plurality of function modules included in the processing module to a plurality of sub-processing modules based on the size of the cache memory grouped into groups, and a packet processing size related to packet processing in each sub processing module may be set based on the size of the cache memory.
다양한 실시예에 따르면, 상기 프로세서는, 하이퍼 스레딩(hyper threading)기능의 적용 여부, 패킷의 프로토콜 타입, 또는 각각의 기능 모듈에서 처리하는 데이터가 동일한 캐쉬 라인에 존재 여부 중 적어도 하나를 추가적으로 고려하여 상기 처리 모듈에 포함되는 상기 다수 개의 기능 모듈을 상기 다수 개의 서브 처리 모듈들로 그룹핑할 수 있다.According to various embodiments, the processor additionally considers at least one of whether a hyper-threading function is applied, a protocol type of a packet, or whether data processed by each function module exists in the same cache line. The plurality of function modules included in the processing module may be grouped into the plurality of sub-processing modules.
다양한 실시예에 따르면, 상기 프로세서는, 상기 패킷의 프로토콜 타입에 기반하여 그룹핑 가능한 서브 처리 그룹의 개수를 확인하고, 상기 패킷의 프로토콜 타입에 기반하여 그룹핑 가능한 서브 처리 그룹의 개수가 상기 캐쉬 메모리의 크기에 기반하여 분할된 서브 처리 모듈의 개수를 초과하는 경우, 상기 처리 모듈을 포함하는 다수 개의 처리 모듈들을 상기 프로토콜 타입을 처리하기 위한 처리 모듈로 설정할 수 있다.According to various embodiments, the processor determines the number of groupable sub-processing groups based on the protocol type of the packet, and the number of groupable sub-processing groups based on the protocol type of the packet determines the size of the cache memory. When the number of sub-processing modules divided based on ? is exceeded, a plurality of processing modules including the processing module may be set as processing modules for processing the protocol type.
다양한 실시예에 따르면, 상기 프로세서는, 하이퍼 스레딩 적용 여부, 벡터의 크기, 기능별 소요 사이클(cycle), 또는 캐쉬 라인의 크기 중 적어도 하나를 추가적으로 고려하여 상기 패킷 처리 크기를 설정할 수 있다.According to various embodiments, the processor may set the packet processing size by additionally considering at least one of whether hyper-threading is applied, a size of a vector, a cycle required for each function, or a size of a cache line.
다양한 실시예에 따르면, 상기 프로세서는, 다른 네트워크 엔티티로부터 다수 개의 패킷을 수신한 경우, 상기 다수 개의 패킷들을 포함하는 벡터를 생성하고, 상기 패킷의 프로토콜 타입에 기반하여 상기 처리 모듈이 선택된 경우, 상기 서브 처리 모듈들 및 패킷 처리 크기에 기반하여 상기 처리 모듈을 통해 상기 벡터를 처리할 수 있다.According to various embodiments, when receiving a plurality of packets from another network entity, the processor generates a vector including the plurality of packets, and when the processing module is selected based on a protocol type of the packet, the The vector may be processed through the processing module based on the sub-processing modules and the packet processing size.
다양한 실시예에 따르면, 상기 처리 모듈은, 상기 다수 개의 서브 처리 모듈들 중 제 1 서브 처리모듈을 통해 상기 벡터 중 상기 패킷 처리 크기에 대응하는 제 1 영역의 패킷을 처리하고, 상기 다수 개의 서브 처리 모듈들 중 제 2 서브 처리 모듈을 통해 상기 제 1 영역의 패킷을 처리할 수 있다.According to various embodiments, the processing module processes a packet of a first region corresponding to the packet processing size of the vector through a first sub-processing module among the plurality of sub-processing modules, and the plurality of sub-processing modules The packet of the first area may be processed through a second sub-processing module among the modules.
다양한 실시예에 따르면, 상기 처리 모듈은, 상기 다수 개의 서브 처리 모듈들이 상기 제 1 영역의 패킷을 처리한 경우, 상기 제 1 서브 처리 모듈을 통해 상기 벡터 중 상기 제 1 영역과 다른 상기 패킷 처리 크기에 대응하는 제 2 영역의 패킷을 처리하고, 상기 제 2 서브 처리 모듈을 통해 상기 제 2 영역의 패킷을 처리할 수 있다.According to various embodiments, when the plurality of sub-processing modules process the packet of the first region, the processing module may be configured to, through the first sub-processing module, have a different packet processing size than the first region of the vector. A packet of the second area corresponding to ' may be processed, and the packet of the second area may be processed through the second sub-processing module.
다양한 실시예에 따르면, 상기 다른 네트워크 엔티티는, RAN(radio access network) 또는 DN(data network)을 포함할 수 있다.According to various embodiments, the other network entity may include a radio access network (RAN) or a data network (DN).
다양한 실시예에 따르면, 상기 프로세서는, 상기 UPF의 내부 구성이 변경되는 시점, 상기 처리 모듈에서 처리하는 프로토콜 타입이 변경되는 시점 또는 기 정의된 주기가 도래하는 시점 중 적어도 하나에 기반하여 상기 서브 처리 모듈을 그룹핑하거나, 상기 패킷 처리 크기를 설정할 수 있다.According to various embodiments, the processor performs the sub-processing based on at least one of a time when the internal configuration of the UPF is changed, a time when a protocol type processed by the processing module is changed, or a time when a predefined period arrives. You can group modules or set the packet processing size.
다양한 실시예에 따르면, 상기 무선 통신 시스템은, 5G(5th generation) 통신 시스템을 포함할 수 있다. According to various embodiments, the wireless communication system may include a 5th generation (5G) communication system.
도 4는 다양한 실시예에 따른 네트워크 엔티티에서 패킷 처리와 관련된 변수를 설정하기 위한 흐름도(400)이다. 이하 실시예에서 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 일예로, 도 4의 네트워크 엔티티는 도 1 또는 도 2의 UPF(125)일 수 있다.4 is a flowchart 400 for setting variables related to packet processing in a network entity according to various embodiments of the present disclosure. Operations in the following embodiments may be sequentially performed, but are not necessarily sequentially performed. For example, the order of the operations may be changed, and at least two operations may be performed in parallel. As an example, the network entity of FIG. 4 may be the UPF 125 of FIG. 1 or 2 .
도 4를 참조하면, 다양한 실시예에 따르면, 네트워크 엔티티(예: 도 1의 UPF(125) 또는 도 2의 프로세서(200))는 동작 401에서, 네트워크 엔티티가 초기 구동되는지 확인할 수 있다. 일 실시예에 따르면, UPF(125)의 프로세서(200)는 UPF(125)에 전원이 인가되는 경우, UPF(125)가 초기 구동되는지 확인할 수 있다. 일예로, 초기 구동은 UPF(125)가 무선 통신 네트워크에 설치되어 최초로 구동되는 일련의 동작을 포함할 수 있다.Referring to FIG. 4 , according to various embodiments, the network entity (eg, the UPF 125 of FIG. 1 or the processor 200 of FIG. 2 ) may check whether the network entity is initially driven in operation 401 . According to an embodiment, when power is applied to the UPF 125 , the processor 200 of the UPF 125 may check whether the UPF 125 is initially driven. For example, the initial driving may include a series of operations in which the UPF 125 is installed in a wireless communication network and initially driven.
다양한 실시예에 따르면, 네트워크 엔티티(예: UPF(125) 또는 프로세서(200))는 네트워크 엔티티가 초기 구동되는 경우(예: 동작 401의 '예'), 동작 403에서, 처리 모듈(예: 도 3의 처리 모듈(310-1, 310-2 또는 310-n))에서 사용 가능한 캐쉬 메모리의 크기와 관련된 정보를 확인할 수 있다. 일예로, 캐쉬 메모리의 크기와 관련된 정보는 UPF(125) 생산 시 기 정의되거나, UPF(125)의 초기 구동 시 처리 모듈(310-1, 310-2 또는 310-n)로부터 획득될 수 있다.According to various embodiments, when the network entity (eg, UPF 125 or processor 200) is initially driven (eg, 'Yes' in operation 401), in operation 403, a processing module (eg, FIG. You can check information related to the size of the cache memory usable in the processing module (310-1, 310-2, or 310-n) of 3). For example, information related to the size of the cache memory may be predefined when the UPF 125 is produced or obtained from the processing module 310 - 1 , 310 - 2 or 310 -n when the UPF 125 is initially driven.
다양한 실시예에 따르면, 네트워크 엔티티(예: UPF(125) 또는 프로세서(200))는 동작 405에서, 처리 모듈(예: 도 3의 처리 모듈(310-1, 310-2, 또는, 310-n))에서 사용 가능한 캐쉬 메모리의 크기에 기반하여 처리 모듈에 포함되는 기능 모듈들을 다수 개의 서브 처리 모듈들로 그룹핑(또는 분할)할 수 있다. 일 실시예에 따르면, 프로세서(200)는 각각의 서브 처리 모듈에서 패킷을 처리하는데 필요로 하는 캐쉬 메모리의 크기가 처리 모듈들 (310-1, 310-2, 또는, 310-n)에서 사용 가능한 캐쉬 메모리의 크기를 초과하지 않도록 적어도 하나의 기능 모듈을 서브 처리 모듈 단위로 그룹핑할 수 있다. 예를 들어, 프로세서(200)는 서브 처리 모듈에 포함되는 적어도 하나의 기능 모듈이 접속하는 데이터의 캐쉬 메모리 경쟁이 최소화되도록 처리 모듈에 포함되는 기능 모듈들을 다수 개의 서브 처리 모듈들로 그룹핑(또는 분할)할 수 있다. 일예로, 기능 모듈은 단일 책임(single responsibility)을 지닌 독립적인 소프트웨어 모듈을 나타낼 수 있다. According to various embodiments, the network entity (eg, the UPF 125 or the processor 200 ) performs a processing module (eg, the processing module 310 - 1 , 310 - 2 , or 310 - n of FIG. 3 ) in operation 405 . )), the functional modules included in the processing module may be grouped (or divided) into a plurality of sub-processing modules based on the size of the available cache memory. According to an embodiment, the processor 200 determines that the size of the cache memory required to process a packet in each sub-processing module is usable in the processing modules 310-1, 310-2, or 310-n. At least one function module may be grouped in sub-processing module units so as not to exceed the size of the cache memory. For example, the processor 200 groups (or divides) the function modules included in the processing module into a plurality of sub-processing modules so that at least one function module included in the sub-processing module minimizes contention in the cache memory of data accessed by the processing module. )can do. For example, a function module may represent an independent software module with a single responsibility.
다양한 실시예에 따르면, 네트워크 엔티티(예: UPF(125) 또는 프로세서(200))는 동작 407에서, 처리 모듈(예: 도 3의 처리 모듈(310-1, 310-2, 또는, 310-n))에서 사용 가능한 캐쉬 메모리의 크기에 기반하여 서브 처리 모듈에서 한 주기 동안 처리하기 위한 패킷의 크기(예: 패킷 처리 크기 또는 배치 크기)를 설정할 수 있다. 일 실시예에 따르면, 프로세서(200)는 각각의 서브 처리 모듈에서 접속하는 데이터들의 캐쉬 적중률(cache hit rate)이 보장되면서 다음 서브 처리 모듈의 데이터 프리 패치 기능의 적용 효율을 보장할 수 있는 크기로 패킷 처리 크기를 설정할 수 있다. According to various embodiments, the network entity (eg, the UPF 125 or the processor 200 ) performs a processing module (eg, the processing module 310 - 1 , 310 - 2 , or 310 - n of FIG. 3 ) in operation 407 . )), you can set the packet size (eg, packet processing size or batch size) to be processed during one cycle in the sub-processing module based on the size of the cache memory available. According to one embodiment, the processor 200 is a size that can ensure the application efficiency of the data pre-fetch function of the next sub-processing module while the cache hit rate (cache hit rate) of the data accessed by each sub-processing module is guaranteed. You can set the packet processing size.
다양한 실시예에 따르면, 네트워크 엔티티(예: UPF(125) 또는 프로세서(200))는 네트워크 엔티티가 초기 구동되지 않는 경우(예: 동작 401의 '아니오'), 패킷 처리와 관련된 변수를 설정하기 위한 일 실시예를 종료할 수 있다. 이 경우, 네트워크 엔티티는 초기 구동 시점에 설정된 서브 처리 모듈과 관련된 정보 및/또는 배치 크기와 관련된 정보를 획득할 수 있다.According to various embodiments, when the network entity (eg, the UPF 125 or the processor 200) is not initially driven (eg, 'No' in operation 401), the network entity (eg, 'No' in operation 401) is configured to set variables related to packet processing. One embodiment may end. In this case, the network entity may acquire information related to the sub-processing module and/or information related to the batch size set at the time of initial operation.
다양한 실시예에 따르면, 네트워크 엔티티(예: UPF(125) 또는 프로세서(200))는 UPF(125)의 초기 구동 시점뿐만 아니라, UPF(125)의 내부 구성(예: 처리 모듈(310-1, 310-2 및/또는 310-n))이 변경되는 시점, 처리 모듈(310-1, 310-2 및/또는 310-n)에서 처리하는 프로토콜 타입이 변경되는 시점 또는 기 정의된 주기가 도래하는 시점에 패킷 처리와 관련된 변수를 설정(또는 갱신)할 수 있다. 일예로, 패킷 처리와 관련된 변수는 그룹핑되는 서브 처리 모듈의 개수 또는 서브 처리 모듈에서 한 주기 동안 처리하기 위한 패킷의 크기 중 적어도 하나를 포함할 수 있다.According to various embodiments, the network entity (eg, the UPF 125 or the processor 200 ) includes not only the initial starting time of the UPF 125 , but also the internal configuration of the UPF 125 (eg, the processing module 310 - 1 , 310-2 and/or 310-n)) is changed, a time when the protocol type processed by the processing modules 310-1, 310-2 and/or 310-n is changed, or a predefined period arrives. You can set (or update) variables related to packet processing at a point in time. For example, the variable related to packet processing may include at least one of the number of grouped sub-processing modules or the size of a packet to be processed by the sub-processing module for one period.
다양한 실시예에 따르면, 네트워크 엔티티(예: UPF(125) 또는 프로세서(200))는 서브 처리 모듈에서 한 주기 동안 처리할 수 있는 패킷의 크기를 설정하기 위해 하이퍼 스레딩 기능의 적용 여부, 벡터의 크기, 기능 별 소요 사이클(cycle), 또는 캐쉬 라인의 크기 중 적어도 하나를 추가적으로 고려할 수 있다.According to various embodiments, the network entity (eg, the UPF 125 or the processor 200 ) applies the hyper-threading function to set the size of a packet that can be processed for one cycle in the sub-processing module, and the size of the vector. , at least one of the cycle required for each function, or the size of the cache line may be additionally considered.
다양한 실시예에 따르면, 네트워크 엔티티(예: UPF(125) 또는 프로세서(200))는 각각의 처리 모듈(310-1, 310-2, 또는, 310-n)을 다수 개의 서브 처리 모듈로 그룹핑(또는 분할)하기 위해 하이퍼 스레딩 기능의 적용 여부, 패킷의 프로토콜 타입, 또는 각각의 기능 모듈에서 처리하는 데이터가 동일한 캐쉬 라인에 존재 여부 중 적어도 하나를 추가적으로 고려할 수도 있다.According to various embodiments, the network entity (eg, the UPF 125 or the processor 200) groups each processing module 310-1, 310-2, or 310-n into a plurality of sub processing modules ( or partition), at least one of whether the hyper-threading function is applied, the protocol type of the packet, or whether data processed by each function module exists in the same cache line may be additionally considered.
도 5는 다양한 실시예에 따른 네트워크 엔티티에서 처리 모듈을 다수 개의 서브 처리 모듈로 그룹핑하기 위한 흐름도(500)이다. 일 실시예에 따르면, 도 5의 동작들은 도 4의 동작 405의 상세한 동작일 수 있다. 이하 실시예에서 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 일예로, 도 5의 네트워크 엔티티는 도 1 또는 도 2의 UPF(125)일 수 있다.5 is a flowchart 500 for grouping a processing module into a plurality of sub-processing modules in a network entity according to various embodiments of the present disclosure. According to an embodiment, the operations of FIG. 5 may be detailed operations of operation 405 of FIG. 4 . Operations in the following embodiments may be sequentially performed, but are not necessarily sequentially performed. For example, the order of the operations may be changed, and at least two operations may be performed in parallel. As an example, the network entity of FIG. 5 may be the UPF 125 of FIG. 1 or 2 .
도 5를 참조하면, 다양한 실시예에 따르면, 네트워크 엔티티(예: 도 1의 UPF(125) 또는 도 2의 프로세서(200))는 동작 501에서, 그룹핑하기 위한 처리 모듈과 관련된 프로토콜 타입을 확인할 수 있다. 일예로, 처리 모듈과 관련된 프로토콜 타입은 처리 모듈에서 처리하기 위한 패킷의 프로토콜 타입을 포함할 수 있다. 일예로, 패킷의 프로토콜 타입은 TCP, UDP, IPv4, 또는 IPv6 중 적어도 하나를 포함할 수 있다.Referring to FIG. 5 , according to various embodiments, a network entity (eg, the UPF 125 of FIG. 1 or the processor 200 of FIG. 2 ) may identify a protocol type related to a processing module for grouping in operation 501 . have. For example, the protocol type associated with the processing module may include a protocol type of a packet to be processed by the processing module. For example, the protocol type of the packet may include at least one of TCP, UDP, IPv4, and IPv6.
다양한 실시예에 따르면, 네트워크 엔티티(예: UPF(125) 또는 프로세서(200))는 동작 503에서, 처리 모듈과 관련된 프로토콜 타입에 기반하여 처리 모듈(예: 도 3의 처리 모듈(310-1, 310-2, 또는, 310-n))에서 그룹핑 가능한 서브 처리 모듈의 제 1 개수를 확인할 수 있다. 예를 들어, 서브 처리 모듈의 제 1 개수는 처리 모듈에서 처리 모듈과 관련된 프로토콜 타입의 패킷을 처리하는게 필요한 서브 처리 모듈의 개수로, 패킷을 처리하는 기능의 개수에 기반하여 설정될 수 있다.According to various embodiments, the network entity (eg, the UPF 125 or the processor 200 ) performs a processing module (eg, the processing module 310-1 of FIG. 3 , based on the protocol type associated with the processing module in operation 503 ). In 310-2 or 310-n)), the first number of groupable sub-processing modules may be identified. For example, the first number of sub-processing modules is the number of sub-processing modules required to process a packet of a protocol type related to the processing module in the processing module, and may be set based on the number of functions for processing packets.
다양한 실시예에 따르면, 네트워크 엔티티(예: UPF(125) 또는 프로세서(200))는 동작 505에서, 처리 모듈에서 사용 가능한 캐쉬 메모리의 크기에 기반하여 처리 모듈(예: 도 3의 처리 모듈(310-1, 310-2, 또는, 310-n))에서 그룹핑되는 서브 처리 모듈의 제 2 개수를 확인할 수 있다. 예를 들어, 서브 처리 모듈의 제 2 개수는 하나의 서브 처리 모듈에서 패킷을 처리하는데 필요로 하는 캐쉬 메모리의 크기가 처리 모듈(310-1, 310-2, 또는, 310-n)에서 사용 가능한 캐쉬 메모리의 크기를 초과하지 않도록 적어도 하나의 기능 모듈을 그룹핑함으로써 생성되는 서브 처리 모듈의 개수를 포함할 수 있다.According to various embodiments, the network entity (eg, the UPF 125 or the processor 200 ) performs the processing module (eg, the processing module 310 of FIG. 3 ) based on the size of the cache memory available in the processing module in operation 505 . The second number of sub-processing modules grouped in -1, 310-2, or 310-n)) may be identified. For example, in the second number of sub-processing modules, the size of the cache memory required to process a packet in one sub-processing module is available in the processing modules 310-1, 310-2, or 310-n. The number of sub-processing modules generated by grouping at least one function module so as not to exceed the size of the cache memory may be included.
다양한 실시예에 따르면, 네트워크 엔티티(예: UPF(125) 또는 프로세서(200))는 동작 507에서, 처리 모듈과 관련된 프로토콜 타입에 기반하여 확인된 제 1 개수가 처리 모듈에서 사용 가능한 캐쉬 메모리의 크기에 기반하여 확인된 제 2 개수를 초과하는지 확인할 수 있다.According to various embodiments, the network entity (eg, the UPF 125 or the processor 200 ) determines, in operation 507 , the first number determined based on the protocol type associated with the processing module, the size of the cache memory available in the processing module. It may be checked whether the second number checked based on .
다양한 실시예에 따르면, 네트워크 엔티티(예: UPF(125) 또는 프로세서(200))는 처리 모듈과 관련된 프로토콜 타입에 기반하여 확인된 제 1 개수가 처리 모듈에서 사용 가능한 캐쉬 메모리의 크기에 기반하여 확인된 제 2 개수를 초과하는 경우(예: 동작 507의 '예'), 동작 509에서, 처리 모듈과 관련된 프로토콜 타입을 처리하기 위한 추가 처리 모듈을 설정할 수 있다. 일 실시예에 따르면, 프로세서(200)는 처리 모듈과 관련된 프로토콜 타입에 기반하여 확인된 제 1 개수가 처리 모듈에서 사용 가능한 캐쉬 메모리의 크기에 기반하여 확인된 제 2 개수를 초과하는 경우, 해당 프로토콜의 타입을 처리하기 위해 다수 개의 처리 모듈이 필요한 것으로 판단할 수 있다. 이에 따라, 프로세서(200)는 프로세서(200)에 포함되는 다수 개의 처리 모듈(310-1, 310-2 및 310-n) 중 그룹핑하기 위한 제 1 처리 모듈(310-1) 및 추가적인 제 2 처리 모듈(310-2)을 선택할 수 있다. According to various embodiments, the network entity (eg, the UPF 125 or the processor 200 ) determines the first number checked based on the protocol type associated with the processing module based on the size of the cache memory available in the processing module. When it exceeds the second number (eg, 'Yes' in operation 507), in operation 509, an additional processing module for processing a protocol type related to the processing module may be set. According to one embodiment, the processor 200 is the first number checked based on the protocol type associated with the processing module when the number of the second number checked based on the size of the cache memory usable in the processing module exceeds the number, the corresponding protocol It may be determined that a plurality of processing modules are required to process the type of . Accordingly, the processor 200 includes a first processing module 310-1 for grouping among a plurality of processing modules 310-1, 310-2, and 310-n included in the processor 200 and an additional second processing module. The module 310 - 2 may be selected.
다양한 실시예에 따르면, 네트워크 엔티티(예: UPF(125) 또는 프로세서(200))는 동작 511에서, 처리 모듈 및 추가 처리 모듈을 다수 개의 서브 처리 모듈로 그룹핑할 수 있다. 일 실시예에 따르면, 프로세서(200)는 제 1 처리 모듈(310-1)에서 사용 가능한 캐쉬 메모리의 크기에 기반하여 제 1 처리 모듈(310-1)에 포함되는 다수 개의 기능 모듈을 다수 개의 서브 처리 모듈로 그룹핑할 수 있다. 프로세서(200)는 제 2 처리 모듈(310-2)에서 사용 가능한 캐쉬 메모리의 크기에 기반하여 제 2 처리 모듈(310-2)에 포함되는 다수 개의 기능 모듈을 다수 개의 서브 처리 모듈로 그룹핑할 수 있다. 일예로, 제 1 처리 모듈(310-1) 및 제 2 처리 모듈(310-2)에서 사용 가능한 캐쉬 메모리의 크기는 동일하거나 상이할 수 있다. 일예로, 제 1 처리 모듈(310-1)에서 그룹핑된 서브 처리 모듈들은 제 1 처리 모듈(310-1)에서 사용 가능한 캐쉬 메모리의 크기와 동일한 크기의 캐쉬 메모리를 사용할 수 있다. 일예로, 제 2 처리 모듈(310-2)에서 그룹핑된 서브 처리 모듈들은 제 2 처리 모듈(310-2)에서 사용 가능한 캐쉬 메모리의 크기와 동일한 크기의 캐쉬 메모리를 사용할 수 있다.According to various embodiments, the network entity (eg, the UPF 125 or the processor 200 ) may group the processing module and the additional processing module into a plurality of sub processing modules in operation 511 . According to an embodiment, the processor 200 divides the plurality of function modules included in the first processing module 310-1 into a plurality of subs based on the size of the cache memory usable in the first processing module 310-1. They can be grouped into processing modules. The processor 200 may group a plurality of function modules included in the second processing module 310-2 into a plurality of sub-processing modules based on the size of the cache memory available in the second processing module 310-2. have. For example, the size of the cache memory usable in the first processing module 310 - 1 and the second processing module 310 - 2 may be the same or different. For example, the sub-processing modules grouped in the first processing module 310-1 may use a cache memory having the same size as the cache memory usable in the first processing module 310-1. For example, the sub-processing modules grouped in the second processing module 310 - 2 may use a cache memory having the same size as the cache memory usable in the second processing module 310 - 2 .
다양한 실시예에 따르면, 네트워크 엔티티(예: UPF(125) 또는 프로세서(200))는 처리 모듈과 관련된 프로토콜 타입에 기반하여 확인된 제 1 개수가 처리 모듈에서 사용 가능한 캐쉬 메모리의 크기에 기반하여 확인된 제 2 개수 이하인 경우(예: 동작 507의 '아니오'), 동작 513에서, 처리 모듈을 다수 개의 서브 처리 모듈로 그룹핑할 수 있다. 일 실시예에 따르면, 프로세서(200)는 제 1 처리 모듈(310-1)에서 사용 가능한 캐쉬 메모리의 크기에 기반하여 제 1 처리 모듈(310-1)에 포함되는 다수 개의 기능 모듈을 다수 개의 서브 처리 모듈로 그룹핑할 수 있다. 일예로, 제 1 처리 모듈(310-1)에서 그룹핑된 서브 처리 모듈들은 제 1 처리 모듈(310-1)에서 사용 가능한 캐쉬 메모리의 크기와 동일한 크기의 캐쉬 메모리를 사용할 수 있다.According to various embodiments, the network entity (eg, the UPF 125 or the processor 200 ) determines the first number checked based on the protocol type associated with the processing module based on the size of the cache memory available in the processing module. If the number is equal to or less than the second number (eg, 'No' in operation 507), in operation 513, the processing modules may be grouped into a plurality of sub processing modules. According to an embodiment, the processor 200 divides the plurality of function modules included in the first processing module 310-1 into a plurality of subs based on the size of the cache memory usable in the first processing module 310-1. They can be grouped into processing modules. For example, the sub-processing modules grouped in the first processing module 310-1 may use a cache memory having the same size as the cache memory usable in the first processing module 310-1.
도 6은 다양한 실시예에 따른 네트워크 엔티티에서 패킷을 처리하기 위한 흐름도(600)이다. 이하 실시예에서 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 일예로, 도 6의 네트워크 엔티티는 도 1 또는 도 2의 UPF(125)일 수 있다.6 is a flowchart 600 for processing a packet at a network entity in accordance with various embodiments. Operations in the following embodiments may be sequentially performed, but are not necessarily sequentially performed. For example, the order of the operations may be changed, and at least two operations may be performed in parallel. As an example, the network entity of FIG. 6 may be the UPF 125 of FIG. 1 or 2 .
도 6을 참조하면, 다양한 실시예에 따르면, 네트워크 엔티티(예: 도 1의 UPF(125) 또는 도 2의 프로세서(200))는 동작 601에서, 무선 통신 시스템의 다른 네트워크 엔티티(예: 도 1의 RAN(115))로부터 패킷이 수신되는지 확인할 수 있다. Referring to FIG. 6 , according to various embodiments, a network entity (eg, the UPF 125 of FIG. 1 or the processor 200 of FIG. 2 ) may in operation 601 another network entity (eg, FIG. 1 ) of the wireless communication system. It can be confirmed whether a packet is received from the RAN 115 of
다양한 실시예에 따르면, 네트워크 엔티티(예: UPF(125) 또는 프로세서(200))는 다른 네트워크 엔티티로부터 패킷을 수신한 경우(예: 동작 601의 '예'), 동작 603에서, 다른 네트워크 엔티티로부터 수신한 패킷과 관련된 벡터를 생성할 수 있다. 일 실시예에 따르면, 프로세서(200)는 다른 네트워크 엔티티로부터 수신한 패킷들 중 프로토콜이 동일하거나 유사한 적어도 하나의 패킷을 포함하도록 적어도 하나의 벡터를 구성할 수 있다. 일예로, 벡터의 길이는 고정되거나, 다른 네트워크 엔티티로부터 수신되는 패킷의 종류 또는 패킷의 양 중 적어도 하나에 기반하여 가변적으로 설정될 수 있다. According to various embodiments, when the network entity (eg, UPF 125 or processor 200) receives a packet from another network entity (eg, 'Yes' in operation 601), in operation 603, from the other network entity A vector related to the received packet can be generated. According to an embodiment, the processor 200 may configure at least one vector to include at least one packet having the same or similar protocol among packets received from other network entities. For example, the length of the vector may be fixed or set variably based on at least one of a type of a packet or an amount of a packet received from another network entity.
다양한 실시예에 따르면, 네트워크 엔티티(예: UPF(125) 또는 프로세서(200))는 동작 605에서, 벡터에 포함된 패킷의 프로토콜 타입에 기반하여 벡터를 처리하기 위한 처리 모듈을 선택할 수 있다. 일 실시예에 따르면, 프로세서(200)는 다수 개의 처리 모듈들 (310-1. 310-2 및 310-n) 중 벡터에 포함된 패킷의 프로토콜 타입을 처리하는 것으로 기 정의된 적어도 하나의 처리 모듈(310-1. 310-2 및/또는 310-n)을 선택할 수 있다.According to various embodiments, the network entity (eg, the UPF 125 or the processor 200 ) may select a processing module for processing the vector based on the protocol type of the packet included in the vector in operation 605 . According to an embodiment, the processor 200 is at least one processing module predefined as processing a protocol type of a packet included in a vector among the plurality of processing modules 310-1. 310-2 and 310-n. (310-1. 310-2 and/or 310-n) can be selected.
다양한 실시예에 따르면, 네트워크 엔티티(예: UPF(125) 또는 프로세서(200))는 동작 607에서, 패킷의 프로토콜 타입에 기반하여 선택된 처리 모듈을 통해 적어도 하나의 패킷을 포함하는 벡터를 처리할 수 있다. 일 실시예에 따르면, 제 1 처리 모듈(310-1)은 패킷의 프로토콜 타입에 기반하여 선택된 경우, 각각의 서브 처리 모듈을 통해 패킷 처리 크기(또는 배치 크기)에 대응하는 벡터의 적어도 일부를 순차적으로 처리할 수 있다.According to various embodiments, the network entity (eg, the UPF 125 or the processor 200 ) may process a vector including at least one packet through a processing module selected based on the protocol type of the packet in operation 607 . have. According to an embodiment, when the first processing module 310-1 is selected based on the protocol type of the packet, at least a portion of the vector corresponding to the packet processing size (or batch size) is sequentially processed through each sub-processing module. can be processed with
도 7은 다양한 실시예에 따른 네트워크 엔티티에서 서브 처리 모듈을 이용하여 패킷을 처리하기 위한 흐름도(700)이다. 일 실시예에 따르면, 도 7의 동작들은 도 6의 동작 607의 상세한 동작일 수 있다. 이하 실시예에서 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 일예로, 도 7의 네트워크 엔티티는 도 1 또는 도 2의 UPF(125)일 수 있다. 일예로, 도 7의 적어도 일부 구성은 도 8을 참조하여 설명할 것이다. 도 8은 다양한 실시예에 따른 네트워크 엔티티에서 패킷을 처리하기 위한 구조이다.7 is a flowchart 700 for processing a packet using a sub-processing module in a network entity according to various embodiments of the present disclosure. According to an embodiment, the operations of FIG. 7 may be detailed operations of operation 607 of FIG. 6 . Operations in the following embodiments may be sequentially performed, but are not necessarily sequentially performed. For example, the order of the operations may be changed, and at least two operations may be performed in parallel. As an example, the network entity of FIG. 7 may be the UPF 125 of FIG. 1 or 2 . As an example, at least some components of FIG. 7 will be described with reference to FIG. 8 . 8 is a structure for processing a packet in a network entity according to various embodiments of the present disclosure;
도 7을 참조하면, 다양한 실시예에 따르면, 네트워크 엔티티(예: 도 1의 UPF(125) 또는 도 2의 프로세서(200))는 동작 701에서, i번째 서브 처리 모듈을 통해 벡터의 j번째 영역의 데이터를 처리할 수 있다. 일예로, i는 처리 모듈(800)에 포함된 서브 처리 모듈의 인덱스로 초기 값으로 1을 포함할 수 있다. 일예로, j는 패킷 처리 크기에 기반하여 분할된 서브 처리 모듈에서 처리하기 위한 벡터의 적어도 일부로, 초기 값으로 1을 포함할 수 있다. 일 실시예에 따르면, 처리 모듈(800)은 캐쉬 메모리의 크기에 기반하여 처리 모듈(800)에 포함되는 다수 개의 기능 모듈을 제 1 서브 처리 모듈(810-1), 제 2 서브 처리 모듈(810-2) 및 제 n 서브 처리 모듈(810-n)로 그룹핑될 수 있다. 예를 들어, 제 1 서브 처리 모듈(810-1)은 도 3의 분배 모듈(300)로부터 제공받은 벡터(820) 중 패킷 처리 크기(또는 배치 크기)에 대응하는 제 1 영역(822)에 포함되는 데이터(또는 패킷)를 처리할 수 있다. 일예로, 제 1 서브 처리 모듈(810-1)은 제 1 영역(822)에 포함된 데이터를 캐쉬 메모리에 로딩하여 제 1 방향(852)으로 순차적으로 처리할 수 있다. 일예로, n은 프로세서(200)에서 포함되는 처리 모듈(310-1, 310-2, 및/또는, 310-n)의 개수를 나타낼 수 있다. Referring to FIG. 7 , according to various embodiments, a network entity (eg, the UPF 125 of FIG. 1 or the processor 200 of FIG. 2 ) performs a j-th region of a vector through an i-th sub-processing module in operation 701 . data can be processed. For example, i is an index of a sub-processing module included in the processing module 800 and may include 1 as an initial value. For example, j is at least a part of a vector for processing in the sub-processing module divided based on the packet processing size, and may include 1 as an initial value. According to an embodiment, the processing module 800 sets a plurality of function modules included in the processing module 800 based on the size of the cache memory to the first sub-processing module 810 - 1 and the second sub-processing module 810 . -2) and the nth sub-processing module 810-n. For example, the first sub-processing module 810 - 1 is included in the first region 822 corresponding to the packet processing size (or batch size) among the vectors 820 provided from the distribution module 300 of FIG. 3 . It can process the data (or packets) that become For example, the first sub-processing module 810 - 1 may load data included in the first region 822 into the cache memory and sequentially process the data in the first direction 852 . For example, n may indicate the number of processing modules 310 - 1 , 310 - 2 , and/or 310 - n included in the processor 200 .
다양한 실시예에 따르면, 네트워크 엔티티(예: UPF(125) 또는 프로세서(200))는 동작 703에서, j번째 영역의 데이터를 처리한 서브 처리 모듈의 인덱스(i)가 처리 모듈에 포함되는 서브 처리 모듈의 최대 값(iMAX)보다 크거나 같은지 확인할 수 있다. 일 실시예에 따르면, 프로세서(200)(또는 처리 모듈(800))는 처리 모듈(800)에 포함되는 서브 처리 모듈들(810-1, 810-2 및 810-n)이 j번째 영역의 데이터를 처리하였는지 확인할 수 있다.According to various embodiments, the network entity (eg, the UPF 125 or the processor 200 ) performs sub-processing in which the index (i) of the sub-processing module that has processed the j-th area data is included in the processing module in operation 703 . You can check whether it is greater than or equal to the maximum value (i MAX ) of the module. According to an embodiment, the processor 200 (or the processing module 800 ) includes the sub processing modules 810 - 1 , 810 - 2 and 810 - n included in the processing module 800 , the data of the j-th region. You can check whether it has been processed.
다양한 실시예에 따르면, 네트워크 엔티티(예: UPF(125) 또는 프로세서(200))는 j번째 영역의 데이터를 처리한 서브 처리 모듈의 인덱스(i)가 처리 모듈에 포함되는 서브 처리 모듈의 최대 값(iMAX) 이하인 경우(예: 동작 703의 '아니오'), 동작 705에서, 서브 처리 모듈의 인덱스인 i를 갱신할 수 있다. 일 실시예에 따르면, 프로세서(200)(또는 처리 모듈(800))는 다음 서브 처리 모듈에서 j번째 영역의 데이터를 처리할 수 있도록 i를 한단계 증가시킬 수 있다(예: i++). 일 실시예에 따르면, 프로세서(200)(또는 처리 모듈(800))는 i를 갱신한 경우, 동작 701에서, 제 2 서브 처리 모듈(810-2)를 통해 j번째 영역(예: 제 1 영역(822))의 데이터를 처리할 수 있다. 예를 들어, 제 2 서브 처리 모듈(810-2)은 벡터(820) 중 패킷 처리 크기(또는 배치 크기)에 대응하는 제 1 영역(822)에 포함되는 데이터(또는 패킷)를 캐쉬 메모리에 로딩하여 제 1 방향(852)으로 순차적으로 처리할 수 있다. According to various embodiments, in the network entity (eg, the UPF 125 or the processor 200 ), the index (i) of the sub-processing module that has processed the data of the j-th region is the maximum value of the sub-processing module included in the processing module. (i MAX ) or less (eg, 'No' in operation 703 ), in operation 705 , i , which is an index of the sub-processing module, may be updated. According to an embodiment, the processor 200 (or the processing module 800 ) may increase i by one step (eg, i++) so that the data of the j-th region can be processed in the next sub-processing module. According to an embodiment, when the processor 200 (or the processing module 800) updates i, in operation 701, the j-th region (eg, the first region) through the second sub-processing module 810-2 (822)) may be processed. For example, the second sub-processing module 810-2 loads data (or packets) included in the first region 822 corresponding to the packet processing size (or batch size) of the vector 820 into the cache memory. Thus, processing may be sequentially performed in the first direction 852 .
다양한 실시예에 따르면, 네트워크 엔티티(예: UPF(125) 또는 프로세서(200))는 j번째 영역의 데이터를 처리한 서브 처리 모듈의 인덱스(i)가 처리 모듈에 포함되는 서브 처리 모듈의 최대 값(iMAX)보다 크거나 같은 경우(예: 동작 703의 '예'), 동작 707에서, 벡터의 처리가 완료되었는지 확인할 수 있다. 일 실시예에 따르면, 프로세서(200)(또는 처리 모듈(800))는 서브 처리 모듈들(810-1, 810-2 및 810-n)을 통해 벡터에 포함된 모든 패킷을 처리하였는지 확인할 수 있다. According to various embodiments, in the network entity (eg, the UPF 125 or the processor 200 ), the index (i) of the sub-processing module that has processed the data of the j-th region is the maximum value of the sub-processing module included in the processing module. If it is greater than or equal to (i MAX ) (eg, 'Yes' in operation 703 ), in operation 707 , it may be checked whether processing of the vector is completed. According to an embodiment, the processor 200 (or the processing module 800 ) may check whether all packets included in the vector have been processed through the sub-processing modules 810-1, 810-2, and 810-n. .
다양한 실시예에 따르면, 네트워크 엔티티(예: UPF(125) 또는 프로세서(200))는 벡터의 처리가 완료되지 않은 경우(예: 동작 707의 '아니오'), 동작 709에서, 서브 처리 모듈의 인덱스인 i를 초기화하고, 벡터의 처리 영역의 인덱스인 j를 갱신할 수 있다. 일 실시예에 따르면, 프로세서(200)(또는 처리 모듈(800))는 서브 처리 모듈들(810-1, 810-2 및 810-n)이 벡터(820)에서 처리되지 않은 다음 영역을 처리할 수 있도록 j를 한 단계 증가시킬 수 있다(예: j++). 일 실시예에 따르면, 프로세서(200)(또는 처리 모듈(800))는 i를 초기화하고, j를 갱신한 경우, 제 1 서브 처리 모듈(810-1)를 통해 2번째 영역(824)의 데이터를 처리할 수 있다. 예를 들어, 제 1 서브 처리 모듈(810-1)은 벡터(820) 중 패킷 처리 크기(또는 배치 크기)에 대응하는 제 2 영역(824)에 포함되는 데이터(또는 패킷)를 처리할 수 있다. 일예로, 제 1 서브 처리 모듈(810-1)은 제 2 영역(824)에 포함된 데이터를 캐쉬 메모리에 로딩하여 제 1 방향(852)으로 순차적으로 처리할 수 있다. According to various embodiments, when the network entity (eg, the UPF 125 or the processor 200) does not complete the vector processing (eg, 'No' in operation 707), in operation 709, the index of the sub-processing module i, i, may be initialized, and j, which is the index of the processing region of the vector, may be updated. According to an embodiment, the processor 200 (or the processing module 800 ) is configured to process the next unprocessed region in the vector 820 by the sub-processing modules 810-1, 810-2, and 810-n. j can be incremented by one (e.g. j++). According to an embodiment, when the processor 200 (or the processing module 800 ) initializes i and updates j, the data of the second area 824 through the first sub-processing module 810 - 1 can be processed For example, the first sub-processing module 810 - 1 may process data (or packets) included in the second region 824 corresponding to the packet processing size (or batch size) among the vectors 820 . . For example, the first sub-processing module 810 - 1 may load data included in the second region 824 into the cache memory and sequentially process the data in the first direction 852 .
다양한 실시예에 따르면, 네트워크 엔티티(예: UPF(125) 또는 프로세서(200))는 벡터의 처리가 완료된 경우(예: 동작 707의 '예'), 패킷을 처리하기 위한 일 실시예를 종료할 수 있다.According to various embodiments, the network entity (eg, the UPF 125 or the processor 200) terminates an embodiment for processing the packet when processing of the vector is completed (eg, 'Yes' in operation 707). can
다양한 실시예에 따르면, 처리 모듈(800)은 각각의 서브 처리 모듈(810-1, 810-2 또는 810-n)을 통해 제 1 영역(822) 또는 제 2 영역(824)의 데이터를 순차적으로 처리할 수 있다. 일 실시예에 따르면, 서브 처리 모듈들(810-1, 810-2 및 810-n)은 2 방향(854)으로 순차적으로 구동되어 데이터를 처리할 수 있다. 일 실시예에 따르면, 서브 처리 모듈들(810-1, 810-2 및 810-n)은 서로 다른 기능을 수행할 수 있다. 예를 들어, 제 1 서브 처리 모듈(810-1)은 PFCP(packet forwarding control protocol)세션(session) 정보를 획득할 수 있다. 예를 들어, 제 2 서브 처리 모듈(810-2)은 PFCP 세션으로부터 PDR(packet detection rule)을 획득할 수 있다. 예를 들어, 제 3 서브 처리 모듈(810-3)은 제 2 서브 처리 모듈(810-2)에서 획득한 PDR에 기반하여 FARs(forwarding action rules) 정책을 검출할 수 있다. 예를 들어, 제 4 서브 처리 모듈(810-4)은 제 3 서브 처리 모듈(810-3)에서 검출한 FARs를 수행할 수 있다. 예를 들어, 제 5 서브 처리 모듈(810-5)은 제 2 서브 처리 모듈(810-2)에서 획득한 PDR에 기반하여 QERs(QoS Enforcement Rules) 정책을 검출할 수 있다. 예를 들어, 제 6 서브 처리 모듈(810-6)은 제 5 서브 처리 모듈(810-5)에서 검출한 QERs를 수행할 수 있다. 예를 들어, 제 7 서브 처리 모듈(810-7)은 제 2 서브 처리 모듈(810-2)에서 획득한 PDR에 기반하여 URRs(usage reporting rules) 정책을 검출할 수 있다. 예를 들어, 제 8 서브 처리 모듈(810-8)은 제 7 서브 처리 모듈(810-7)에서 검출한 URRs를 수행할 수 있다. 예를 들어, 제 9 서브 처리 모듈(810-9)은 라우팅(routing) 처리를 위해 IP(internet protocol)를 재지정(readdress)할 수 있다. 예를 들어, 제 10 서브 처리 모듈(810-10)은 제 9 서브 처리 모듈(810-9)에서 재지정된 IP에 기반하여 데이터 패킷의 전송을 수행할 수 있다.According to various embodiments, the processing module 800 sequentially processes data of the first region 822 or the second region 824 through each sub-processing module 810-1, 810-2, or 810-n. can be processed According to an embodiment, the sub-processing modules 810-1, 810-2, and 810-n may be sequentially driven in two directions 854 to process data. According to an embodiment, the sub-processing modules 810-1, 810-2, and 810-n may perform different functions. For example, the first sub-processing module 810 - 1 may obtain packet forwarding control protocol (PFCP) session information. For example, the second sub-processing module 810 - 2 may obtain a packet detection rule (PDR) from the PFCP session. For example, the third sub-processing module 810-3 may detect a forwarding action rules (FARs) policy based on the PDR obtained from the second sub-processing module 810-2. For example, the fourth sub-processing module 810-4 may perform FARs detected by the third sub-processing module 810-3. For example, the fifth sub-processing module 810-5 may detect a QoS Enforcement Rules (QERs) policy based on the PDR obtained from the second sub-processing module 810-2. For example, the sixth sub-processing module 810 - 6 may perform QERs detected by the fifth sub-processing module 810 - 5 . For example, the seventh sub-processing module 810 - 7 may detect a usage reporting rules (URRs) policy based on the PDR obtained by the second sub-processing module 810 - 2 . For example, the eighth sub-processing module 810-8 may perform the URRs detected by the seventh sub-processing module 810-7. For example, the ninth sub-processing module 810-9 may readdress an Internet protocol (IP) for routing processing. For example, the tenth sub-processing module 810-10 may transmit the data packet based on the IP redirected by the ninth sub-processing module 810-9.
다양한 실시예에 따르면, 무선 통신 시스템의 UPF(user plane function)(예: 도1 또는 도 2의 UPF(125))의 동작 방법은, 상기 UPF의 초기 구동 시, 상기 UPF의 프로세서에 포함되는 처리 모듈이 사용 가능한 캐쉬 메모리의 크기를 확인하는 동작과 상기 캐쉬 메모리의 크기에 기반하여 상기 처리 모듈에 포함되는 다수 개의 기능 모듈을 다수 개의 서브 처리 모듈들로 그룹핑하는 동작, 및 상기 캐쉬 메모리의 크기에 기반하여 각각의 서브 처리 모듈에서의 패킷 처리와 관련된 패킷 처리 크기를 설정하는 동작을 포함할 수 있다.According to various embodiments, a method of operating a user plane function (UPF) (eg, the UPF 125 of FIG. 1 or FIG. 2 ) of a wireless communication system includes processing included in a processor of the UPF when the UPF is initially driven The operation of checking the size of the cache memory usable by the module and the operation of grouping a plurality of function modules included in the processing module into a plurality of sub processing modules based on the size of the cache memory, and the size of the cache memory based on the operation of setting a packet processing size related to packet processing in each sub processing module.
다양한 실시예에 따르면, 상기 서브 처리 모듈은, 하이퍼 스레딩(hyper threading)기능의 적용 여부, 패킷의 프로토콜 타입, 또는 각각의 기능 모듈에서 처리하는 데이터가 동일한 캐쉬 라인에 존재 여부 중 적어도 하나를 추가적으로 고려하는 그룹핑될 수 있다.According to various embodiments, the sub-processing module additionally considers at least one of whether a hyper-threading function is applied, a protocol type of a packet, or whether data processed by each function module exists in the same cache line can be grouped.
다양한 실시예에 따르면, 상기 서브 처리 모듈들로 그룹핑하는 동작은, 상기 패킷의 프로토콜 타입에 기반하여 그룹핑 가능한 서브 처리 그룹의 개수를 확인하는 동작과 상기 패킷의 프로토콜 타입에 기반하여 그룹핑 가능한 서브 처리 그룹의 개수가 상기 캐쉬 메모리의 크기에 기반하여 분할된 서브 처리 모듈의 개수를 초과하는 경우, 상기 처리 모듈을 포함하는 다수 개의 처리 모듈들을 상기 프로토콜 타입을 처리하기 위한 처리 모듈로 설정하는 동작, 및 상기 캐쉬 메모리의 크기에 기반하여 상기 프로토콜 타입을 처리하기 위한 처리 모듈 각각에 포함되는 다수 개의 기능 모듈들을 다수 개의 서브 처리 모듈들로 그룹핑하는 동작을 포함할 수 있다.According to various embodiments, the grouping into the sub-processing modules includes: determining the number of groupable sub-processing groups based on the protocol type of the packet; and grouping sub-processing groups based on the protocol type of the packet. When the number of sub-processing modules exceeds the number of sub-processing modules divided based on the size of the cache memory, setting a plurality of processing modules including the processing module as processing modules for processing the protocol type, and the It may include grouping a plurality of function modules included in each processing module for processing the protocol type into a plurality of sub processing modules based on the size of the cache memory.
다양한 실시예에 따르면, 상기 패킷 처리 크기는, 하이퍼 스레딩 적용 여부, 벡터의 크기, 기능별 소요 사이클(cycle), 또는 캐쉬 라인의 크기 중 적어도 하나를 추가적으로 고려하여 설정될 수 있다.According to various embodiments, the packet processing size may be set by additionally considering at least one of whether hyper-threading is applied, the size of a vector, a cycle required for each function, or the size of a cache line.
다양한 실시예에 따르면, 다른 네트워크 엔티티로부터 다수 개의 패킷을 수신한 경우, 상기 다수 개의 패킷을 포함하는 벡터를 생성하는 동작, 및 상기 패킷의 프로토콜 타입에 기반하여 상기 처리 모듈이 선택된 경우, 상기 서브 처리 모듈들 및 패킷 처리 크기에 기반하여 상기 처리 모듈을 통해 상기 벡터를 처리하는 동작을 더 포함할 수 있다.According to various embodiments, when receiving a plurality of packets from another network entity, generating a vector including the plurality of packets, and when the processing module is selected based on a protocol type of the packet, the sub-processing The method may further include processing the vector through the processing module based on the modules and the packet processing size.
다양한 실시예에 따르면, 상기 벡터를 처리하는 동작은, 상기 다수 개의 서브 처리 모듈 중 제 1 서브 처리모듈을 통해 상기 벡터 중 상기 패킷 처리 크기에 대응하는 제 1 영역의 패킷을 처리하는 동작, 및 상기 다수 개의 서브 처리 모듈들 중 제 2 서브 처리 모듈을 통해 상기 제 1 영역의 패킷을 처리하는 동작을 포함할 수 있다.According to various embodiments, the processing of the vector may include processing a packet of a first region corresponding to the packet processing size of the vector through a first sub-processing module among the plurality of sub-processing modules; and processing the packet of the first region through a second sub-processing module among a plurality of sub-processing modules.
다양한 실시예에 따르면, 상기 다수 개의 서브 처리 모듈들이 상기 제 1 영역의 패킷을 처리한 경우, 상기 제 1 서브 처리 모듈을 통해 상기 벡터 중 상기 제 1 영역과 다른 상기 패킷 처리 크기에 대응하는 제 2 영역의 패킷을 처리하는 동작, 및 상기 제 2 서브 처리 모듈을 통해 상기 제 2 영역의 패킷을 처리하는 동작을 더 포함할 수 있다.According to various embodiments, when the plurality of sub-processing modules process the packet in the first region, the second sub-processing module uses the first sub-processing module to process a second packet corresponding to a different packet processing size than the first region in the vector. The method may further include an operation of processing a packet of the region, and an operation of processing the packet of the second region through the second sub-processing module.
다양한 실시예에 따르면, 상기 다른 네트워크 엔티티는, RAN(radio access network) 또는 DN(data network)을 포함할 수 있다.According to various embodiments, the other network entity may include a radio access network (RAN) or a data network (DN).
다양한 실시예에 따르면, 상기 UPF의 내부 구성이 변경되는 시점, 상기 처리 모듈에서 처리하는 프로토콜 타입이 변경되는 시점 또는 기 정의된 주기가 도래하는 경우, 상기 서브 처리 모듈을 그룹핑하거나, 상기 패킷 처리 크기를 설정하는 동작을 더 포함할 수 있다.According to various embodiments, when the internal configuration of the UPF is changed, the protocol type processed by the processing module is changed, or a predefined period arrives, the sub-processing modules are grouped or the packet processing size It may further include an operation of setting
다양한 실시예에 따르면, 상기 무선 통신 시스템은, 5G(5th generation) 통신 시스템을 포함할 수 있다.According to various embodiments, the wireless communication system may include a 5th generation (5G) communication system.
도 1 내지 도 8이 예시하는 구성도, 제어/데이터 신호 송신 방법의 예시도, 동작 절차 예시도, 구성도들은 본 개시의 권리범위를 한정하기 위한 의도가 없음을 유의하여야 한다. 즉, 도 1 내지 도 8에 기재된 모든 구성부, 엔티티, 또는 동작의 단계가 개시의 실시를 위한 필수구성요소인 것으로 해석되어서는 안되며, 일부 구성요소 만을 포함하여도 개시의 본질을 해치지 않는 범위 내에서 구현될 수 있다.It should be noted that the configuration diagrams illustrated in FIGS. 1 to 8 , diagrams of a control/data signal transmission method, operation procedures, and configuration diagrams are not intended to limit the scope of the present disclosure. That is, all components, entities, or steps of operation described in FIGS. 1 to 8 should not be construed as essential components for the implementation of the disclosure, and the inclusion of only some components should not impair the essence of the disclosure. can be implemented in
앞서 설명한 기지국이나 단말의 동작들은 해당 프로그램 코드를 저장한 메모리 장치를 기지국 또는 단말 장치 내의 임의의 구성부에 구비함으로써 실현될 수 있다. 즉, 기지국 또는 단말 장치의 제어부는 메모리 장치 내에 저장된 프로그램 코드를 프로세서 혹은 CPU(Central Processing Unit)에 의해 읽어내어 실행함으로써 앞서 설명한 동작들을 실행할 수 있다. The operations of the base station or the terminal described above can be realized by providing a memory device storing the corresponding program code in an arbitrary component in the base station or the terminal device. That is, the control unit of the base station or the terminal device may execute the above-described operations by reading and executing the program code stored in the memory device by a processor or a central processing unit (CPU).
본 명세서에서 설명되는 엔티티, 기지국 또는 단말 장치의 다양한 구성부들과, 모듈(module)은 하드웨어(hardware) 회로, 일 예로 상보성 금속 산화막 반도체(complementary metal oxide semiconductor) 기반 논리 회로와, 펌웨어(firmware)와, 소프트웨어(software) 및/혹은 하드웨어와 펌웨어 및/혹은 머신 판독 가능 매체에 삽입된 소프트웨어의 조합과 같은 하드웨어 회로를 사용하여 동작될 수도 있다. 일 예로, 다양한 전기 구조 및 방법들은 트랜지스터(transistor)들과, 논리 게이트(logic gate)들과, 주문형 반도체와 같은 전기 회로들을 사용하여 실시될 수 있다.The various components and modules of the entity, base station or terminal device described in this specification include a hardware circuit, for example, a complementary metal oxide semiconductor-based logic circuit, firmware and , software and/or hardware and firmware and/or software embedded in a machine-readable medium. As an example, various electrical structures and methods may be implemented using electrical circuits such as transistors, logic gates, and application-specific semiconductors.
상술한 본 개시의 구체적인 실시 예들에서, 본 개시에 포함되는 구성 요소는 제시된 구체적인 실시 예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.In the specific embodiments of the present disclosure described above, components included in the present disclosure are expressed in the singular or plural according to the specific embodiments presented. However, the singular or plural expression is appropriately selected for the context presented for convenience of description, and the present disclosure is not limited to the singular or plural component, and even if the component is expressed in plural, it is composed of the singular or singular. Even an expressed component may be composed of a plurality of components.
한편, 본 명세서와 도면에 개시된 본 개시의 실시 예들은 본 개시의 기술 내용을 쉽게 설명하고 본 개시의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 개시의 범위를 한정하고자 하는 것은 아니다. 즉 본 개시의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능하다는 것은 본 개시의 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한, 상기 각각의 실시 예는 필요에 따라 서로 조합되어 운용할 수 있다. 예를 들면, 본 개시의 일 실시 예와 다른 일 실시 예의 일부분들이 서로 조합되어 기지국과 단말이 운용될 수 있다. 또한, 본 개시의 실시 예들은 다른 통신 시스템에서도 적용 가능하며, 실시 예의 기술적 사상에 바탕을 둔 다른 변형예들 또한 실시 가능할 것이다.On the other hand, the embodiments of the present disclosure disclosed in the present specification and drawings are only presented as specific examples to easily explain the technical content of the present disclosure and help the understanding of the present disclosure, and are not intended to limit the scope of the present disclosure. That is, it is apparent to those of ordinary skill in the art to which other modifications are possible based on the technical spirit of the present disclosure. In addition, each of the above embodiments may be operated in combination with each other as needed. For example, an embodiment of the present disclosure and parts of another embodiment may be combined to operate a base station and a terminal. In addition, the embodiments of the present disclosure are applicable to other communication systems, and other modifications based on the technical spirit of the embodiments may also be implemented.
Claims (15)
- 무선 통신 시스템의 전자 장치에 있어서, In an electronic device of a wireless communication system,통신 인터페이스;communication interface;UPF(user plane function)의 처리 모듈(processing module)을 포함하는 프로세서를 포함하며, Includes a processor including a processing module (processing module) of the UPF (user plane function),상기 프로세서는, The processor is상기 UPF의 초기 구동 시, 상기 처리 모듈이 사용 가능한 캐쉬 메모리의 크기를 확인하고, When the UPF is initially driven, the size of the cache memory usable by the processing module is checked,상기 캐쉬 메모리의 크기에 기반하여 상기 처리 모듈에 포함되는 다수 개의 기능 모듈들을 다수 개의 서브 처리 모듈들로 그룹핑하고,Grouping a plurality of function modules included in the processing module into a plurality of sub processing modules based on the size of the cache memory,상기 캐쉬 메모리의 크기에 기반하여 각각의 서브 처리 모듈에서의 패킷 처리와 관련된 패킷 처리 크기를 설정하는 전자 장치.An electronic device for setting a packet processing size related to packet processing in each sub processing module based on the size of the cache memory.
- 제 1항에 있어서,The method of claim 1,상기 프로세서는, 하이퍼 스레딩(hyper threading)기능의 적용 여부, 패킷의 프로토콜 타입, 또는 각각의 기능 모듈에서 처리하는 데이터가 동일한 캐쉬 라인에 존재 여부 중 적어도 하나를 추가적으로 고려하여 상기 처리 모듈에 포함되는 상기 다수 개의 기능 모듈들을 상기 다수 개의 서브 처리 모듈들로 그룹핑하는 전자 장치.The processor is included in the processing module by additionally considering at least one of whether a hyper-threading function is applied, a protocol type of a packet, or whether data processed by each function module exists in the same cache line An electronic device for grouping a plurality of functional modules into the plurality of sub-processing modules.
- 제 2항에 있어서,3. The method of claim 2,상기 프로세서는, 상기 패킷의 프로토콜 타입에 기반하여 그룹핑 가능한 서브 처리 그룹의 개수를 확인하고,The processor checks the number of groupable sub-processing groups based on the protocol type of the packet,상기 패킷의 프로토콜 타입에 기반하여 그룹핑 가능한 서브 처리 그룹의 개수가 상기 캐쉬 메모리의 크기에 기반하여 분할된 서브 처리 모듈의 개수를 초과하는 경우, 상기 처리 모듈을 포함하는 다수 개의 처리 모듈들을 상기 프로토콜 타입을 처리하기 위한 처리 모듈로 설정하는 전자 장치.When the number of sub-processing groups groupable based on the protocol type of the packet exceeds the number of sub-processing modules divided based on the size of the cache memory, a plurality of processing modules including the processing module are divided into the protocol type. An electronic device to set as a processing module for processing.
- 제 1항에 있어서,The method of claim 1,상기 프로세서는, 하이퍼 스레딩 적용 여부, 벡터의 크기, 기능별 소요 사이클(cycle), 또는 캐쉬 라인의 크기 중 적어도 하나를 추가적으로 고려하여 상기 패킷 처리 크기를 설정하는 전자 장치.The processor sets the packet processing size by additionally considering at least one of whether hyper-threading is applied, a size of a vector, a cycle required for each function, or a size of a cache line.
- 제 1항에 있어서,The method of claim 1,상기 프로세서는, 상기 UPF와 다른 네트워크 엔티티로부터 다수 개의 패킷들을 수신한 경우, 상기 다수 개의 패킷들을 포함하는 벡터를 생성하고,The processor, when receiving a plurality of packets from a network entity other than the UPF, generates a vector including the plurality of packets,상기 패킷의 프로토콜 타입에 기반하여 상기 처리 모듈이 선택된 경우, 상기 서브 처리 모듈들 및 패킷 처리 크기에 기반하여 상기 처리 모듈을 통해 상기 벡터를 처리하는 전자 장치.When the processing module is selected based on the protocol type of the packet, the electronic device processes the vector through the processing module based on the sub-processing modules and the packet processing size.
- 제 5항에 있어서,6. The method of claim 5,상기 처리 모듈은, 상기 다수 개의 서브 처리 모듈들 중 제 1 서브 처리모듈을 통해 상기 벡터 중 상기 패킷 처리 크기에 대응하는 제 1 영역의 패킷을 처리하고,the processing module processes a packet of a first area corresponding to the packet processing size of the vector through a first sub-processing module among the plurality of sub-processing modules;상기 다수 개의 서브 처리 모듈들 중 제 2 서브 처리 모듈을 통해 상기 제 1 영역의 패킷을 처리하는 전자 장치.An electronic device that processes the packet of the first region through a second sub-processing module among the plurality of sub-processing modules.
- 제 6항에 있어서,7. The method of claim 6,상기 처리 모듈은, 상기 다수 개의 서브 처리 모듈들이 상기 제 1 영역의 패킷을 처리한 경우, 상기 제 1 서브 처리 모듈을 통해 상기 벡터 중 상기 제 1 영역과 다른 상기 패킷 처리 크기에 대응하는 제 2 영역의 패킷을 처리하고,The processing module is configured to, when the plurality of sub-processing modules process the packet of the first region, a second region of the vector corresponding to a different packet processing size than the first region through the first sub-processing module process the packets of상기 제 2 서브 처리 모듈을 통해 상기 제 2 영역의 패킷을 처리하는 전자 장치.The electronic device processes the packet of the second area through the second sub-processing module.
- 제 1항에 있어서,The method of claim 1,상기 프로세서는, 상기 UPF의 내부 구성이 변경되는 시점, 상기 처리 모듈에서 처리하는 프로토콜 타입이 변경되는 시점 또는 기 정의된 주기가 도래하는 시점 중 적어도 하나에 기반하여 상기 서브 처리 모듈을 그룹핑하거나, 상기 패킷 처리 크기를 설정하는 전자 장치.The processor groups the sub-processing modules based on at least one of a time when the internal configuration of the UPF is changed, a time when a protocol type processed by the processing module is changed, or a time when a predefined period arrives, or An electronic device that sets the packet processing size.
- 무선 통신 시스템의 UPF(user plane function)의 동작 방법에 있어서, In the operating method of a user plane function (UPF) of a wireless communication system,상기 UPF의 초기 구동 시, 상기 UPF의 프로세서에 포함되는 처리 모듈이 사용 가능한 캐쉬 메모리의 크기를 확인하는 동작, When the UPF is initially driven, the operation of checking the size of the cache memory usable by the processing module included in the processor of the UPF;상기 캐쉬 메모리의 크기에 기반하여 상기 처리 모듈에 포함되는 다수 개의 기능 모듈들을 다수 개의 서브 처리 모듈들로 그룹핑하는 동작, 및Grouping a plurality of functional modules included in the processing module into a plurality of sub-processing modules based on the size of the cache memory, and상기 캐쉬 메모리의 크기에 기반하여 각각의 서브 처리 모듈에서의 패킷 처리와 관련된 패킷 처리 크기를 설정하는 동작을 포함하는 방법.and setting a packet processing size related to packet processing in each sub processing module based on the size of the cache memory.
- 제 9항에 있어서,10. The method of claim 9,상기 서브 처리 모듈은, 하이퍼 스레딩(hyper threading)기능의 적용 여부, 패킷의 프로토콜 타입, 또는 각각의 기능 모듈에서 처리하는 데이터가 동일한 캐쉬 라인에 존재 여부 중 적어도 하나를 추가적으로 고려하는 그룹핑되는 방법.The sub-processing module additionally considers at least one of whether a hyper-threading function is applied, a protocol type of a packet, or whether data processed by each function module exists in the same cache line. Grouping method.
- 제 10항에 있어서,11. The method of claim 10,상기 서브 처리 모듈로 그룹핑하는 동작은,The operation of grouping into the sub-processing module is,상기 패킷의 프로토콜 타입에 기반하여 그룹핑 가능한 서브 처리 그룹의 개수를 확인하는 동작, Checking the number of groupable sub-processing groups based on the protocol type of the packet;상기 패킷의 프로토콜 타입에 기반하여 그룹핑 가능한 서브 처리 그룹의 개수가 상기 캐쉬 메모리의 크기에 기반하여 분할된 서브 처리 모듈의 개수를 초과하는 경우, 상기 처리 모듈을 포함하는 다수 개의 처리 모듈들을 상기 프로토콜 타입을 처리하기 위한 처리 모듈로 설정하는 동작, 및When the number of sub-processing groups groupable based on the protocol type of the packet exceeds the number of sub-processing modules divided based on the size of the cache memory, a plurality of processing modules including the processing module are divided into the protocol type. setting as a processing module for processing, and상기 캐쉬 메모리의 크기에 기반하여 상기 프로토콜 타입을 처리하기 위한 처리 모듈 각각에 포함되는 다수 개의 기능 모듈들을 다수 개의 서브 처리 모듈들로 그룹핑하는 동작을 포함하는 방법.and grouping a plurality of function modules included in each processing module for processing the protocol type into a plurality of sub processing modules based on the size of the cache memory.
- 제 9항에 있어서,10. The method of claim 9,상기 패킷 처리 크기는, 하이퍼 스레딩 적용 여부, 벡터의 크기, 기능별 소요 사이클(cycle), 또는 캐쉬 라인의 크기 중 적어도 하나를 추가적으로 고려하여 설정되는 방법.The packet processing size is set by additionally considering at least one of whether hyper-threading is applied, the size of a vector, a cycle required for each function, or the size of a cache line.
- 제 9항에 있어서,10. The method of claim 9,상기 UPF와 다른 네트워크 엔티티로부터 다수 개의 패킷들을 수신한 경우, 상기 다수 개의 패킷들을 포함하는 벡터를 생성하는 동작, 및generating a vector including the plurality of packets when receiving a plurality of packets from a network entity other than the UPF; and상기 패킷의 프로토콜 타입에 기반하여 상기 처리 모듈이 선택된 경우, 상기 서브 처리 모듈들 및 패킷 처리 크기에 기반하여 상기 처리 모듈을 통해 상기 벡터를 처리하는 동작을 더 포함하는 방법.If the processing module is selected based on the protocol type of the packet, processing the vector through the processing module based on the sub-processing modules and the packet processing size.
- 제 13항에 있어서,14. The method of claim 13,상기 벡터를 처리하는 동작은, The operation of processing the vector is,상기 다수 개의 서브 처리 모듈들 중 제 1 서브 처리모듈을 통해 상기 벡터 중 상기 패킷 처리 크기에 대응하는 제 1 영역의 패킷을 처리하는 동작, 및processing a packet of a first area corresponding to the packet processing size of the vector through a first sub-processing module among the plurality of sub-processing modules; and상기 다수 개의 서브 처리 모듈들 중 제 2 서브 처리 모듈을 통해 상기 제 1 영역의 패킷을 처리하는 동작을 포함하는 방법.and processing the packet of the first region through a second sub-processing module among the plurality of sub-processing modules.
- 제 14항에 있어서,15. The method of claim 14,상기 다수 개의 서브 처리 모듈들이 상기 제 1 영역의 패킷을 처리한 경우, 상기 제 1 서브 처리 모듈을 통해 상기 벡터 중 상기 제 1 영역과 다른 상기 패킷 처리 크기에 대응하는 제 2 영역의 패킷을 처리하는 동작, 및When the plurality of sub-processing modules process the packet in the first region, the first sub-processing module processes a packet in a second region of the vector corresponding to a packet processing size different from that of the first region. action, and상기 제 2 서브 처리 모듈을 통해 상기 제 2 영역의 패킷을 처리하는 동작을 더 포함하는 방법.and processing the packet of the second region through the second sub-processing module.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0173262 | 2020-12-11 | ||
KR1020200173262A KR20220083227A (en) | 2020-12-11 | 2020-12-11 | Electronic device of user plane function processing packet and operating method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022124732A1 true WO2022124732A1 (en) | 2022-06-16 |
Family
ID=81973847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2021/018366 WO2022124732A1 (en) | 2020-12-11 | 2021-12-06 | Electronic device having upf for processing packets, and operation method thereof |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20220083227A (en) |
WO (1) | WO2022124732A1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006085401A (en) * | 2004-09-16 | 2006-03-30 | Hitachi Ltd | Storage device and packet size control method of storage device |
US20190268276A1 (en) * | 2018-02-26 | 2019-08-29 | Qualcomm Incorporated | Per-flow jumbo mtu in nr systems |
KR20200029387A (en) * | 2017-05-15 | 2020-03-18 | 알테릭스 인코포레이티드 | Data aggregation method for cache optimization and efficient processing |
KR20200040134A (en) * | 2018-10-08 | 2020-04-17 | 에스케이텔레콤 주식회사 | Method for determining traffic size |
-
2020
- 2020-12-11 KR KR1020200173262A patent/KR20220083227A/en unknown
-
2021
- 2021-12-06 WO PCT/KR2021/018366 patent/WO2022124732A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006085401A (en) * | 2004-09-16 | 2006-03-30 | Hitachi Ltd | Storage device and packet size control method of storage device |
KR20200029387A (en) * | 2017-05-15 | 2020-03-18 | 알테릭스 인코포레이티드 | Data aggregation method for cache optimization and efficient processing |
US20190268276A1 (en) * | 2018-02-26 | 2019-08-29 | Qualcomm Incorporated | Per-flow jumbo mtu in nr systems |
KR20200040134A (en) * | 2018-10-08 | 2020-04-17 | 에스케이텔레콤 주식회사 | Method for determining traffic size |
Non-Patent Citations (1)
Title |
---|
"3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; System architecture for the 5G System (5GS); Stage 2 (Release 16)", 3GPP STANDARD; 3GPP TS 23.501, 3RD GENERATION PARTNERSHIP PROJECT (3GPP), MOBILE COMPETENCE CENTRE ; 650, ROUTE DES LUCIOLES ; F-06921 SOPHIA-ANTIPOLIS CEDEX ; FRANCE, vol. SA WG2, no. V16.6.0, 24 September 2020 (2020-09-24), Mobile Competence Centre ; 650, route des Lucioles ; F-06921 Sophia-Antipolis Cedex ; France , pages 1 - 447, XP051960892 * |
Also Published As
Publication number | Publication date |
---|---|
KR20220083227A (en) | 2022-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016039589A1 (en) | Method and apparatus for transmitting and receiving acknowledgment in a wireless communication system | |
WO2019035638A1 (en) | Method for checking change in wireless connection type of terminal in third-party application server | |
EP4018778A1 (en) | Apparatus and method for processing traffic of service in wireless communication system | |
AU2020276949B2 (en) | Method and apparatus for flexibly supporting services in wireless communication system | |
US7751420B2 (en) | Network switching method and apparatus, wireless access apparatus, and wireless network | |
WO2021141348A1 (en) | Method and apparatus for providing plurality of virtual networks for single application in mobile communication network | |
US8248927B2 (en) | VLAN pooling | |
WO2019245344A1 (en) | Method and system for hplmn-based traffic control when ue is registered on different plmns | |
WO2017074100A1 (en) | Method and apparatus for transmitting and receiving paging message in mobile communication system | |
WO2021034175A1 (en) | Service providing method and device using plurality of sims | |
WO2015126200A1 (en) | System and method for processing of data in a wireless communication system | |
WO2018056623A1 (en) | Handling of conflict configuration in dual connectivity | |
WO2021034031A1 (en) | Apparatus and method for access control, management, and protection in wireless communication system | |
WO2021137526A1 (en) | Device and method for supporting federated network slicing amongst plmn operators in wireless communication system | |
WO2021194324A1 (en) | Method and device for security mbs communication in wireless communication system | |
WO2016064230A1 (en) | Method and apparatus for interworking wireless lan according to camping cell | |
WO2021235891A1 (en) | Method and device for discovering and selecting network for provisioning ue subscriber data | |
WO2021049899A1 (en) | Device and method for processing traffic in wireless communication system | |
WO2022124732A1 (en) | Electronic device having upf for processing packets, and operation method thereof | |
WO2021091274A1 (en) | Paging method and device in wireless communication system | |
EP3210419A1 (en) | Method and apparatus for interworking wireless lan according to camping cell | |
WO2022035188A1 (en) | Method and apparatus for enhancing reliability in wireless communication systems | |
WO2021075762A1 (en) | Method and apparatus for transmitting or receiving data packet in wireless communication system | |
WO2020231152A1 (en) | Method and apparatus for flexibly supporting services in wireless communication system | |
WO2023014043A1 (en) | Wireless-core converged user plane device in communication system, and operating method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21903778 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21903778 Country of ref document: EP Kind code of ref document: A1 |