CN116360973A - Data processing system and method of operation thereof - Google Patents

Data processing system and method of operation thereof Download PDF

Info

Publication number
CN116360973A
CN116360973A CN202211015751.1A CN202211015751A CN116360973A CN 116360973 A CN116360973 A CN 116360973A CN 202211015751 A CN202211015751 A CN 202211015751A CN 116360973 A CN116360973 A CN 116360973A
Authority
CN
China
Prior art keywords
memory
data processing
devices
host devices
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211015751.1A
Other languages
Chinese (zh)
Inventor
崔正敏
金善雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN116360973A publication Critical patent/CN116360973A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A data processing system may include: a plurality of data processing devices, each including a computing memory and performing tasks issued from one or more host devices; one or more host apparatuses connected to the plurality of data processing apparatuses, and each of the host apparatuses selecting one or more of the data processing apparatuses based on meta information including a size of a memory required for the first task to be performed by the selected one or more data processing apparatuses and a size of a calculation memory of the respective data processing apparatuses and requesting the selected one or more data processing apparatuses to perform the first task; a network switch connecting one or more host devices to a plurality of data processing devices; and a network manager included in the network switch and collecting free memory of each data processing apparatus based on the meta information and the size of the computing memory of each data processing apparatus and controlling one or more host apparatuses to use at least some of the free memory.

Description

Data processing system and method of operation thereof
Cross Reference to Related Applications
The present application claims priority from korean patent application No. 10-2021-0189522 filed on 28, 12, 2021, the entire disclosure of which is incorporated herein by reference.
Technical Field
Various embodiments of the present disclosure relate generally to a semiconductor integrated device, and more particularly, to a data processing system and a method of operating the same.
Background
The growing importance and demand for Artificial Intelligence (AI) applications, large data analytics and graphics data processing has increased the need for computing systems capable of efficiently processing large data using more computing resources, high bandwidth networks, and large capacity and high performance memory devices.
However, there is a limit in expanding the memory capacity of a processor for processing large data. Accordingly, a protocol for expanding memory capacity through a fabric network (fabric) has recently been developed. The architecture-Attached Memory (FAM) is theoretically unlimited in terms of capacity expansion, and thus has a structure suitable for processing large data. However, as the number of times the host device accesses the FAM increases, various problems such as performance degradation and power consumption may be caused by data migration.
From this point of view, current computing systems have evolved into data-driven or memory-driven computing systems capable of processing large amounts of data in parallel at high speeds. In a data (memory) driven computing system, a processor for performing computations may be disposed near or within a memory device and process tasks (operation processing or application processing tasks) issued and requested by a host device.
Applying near data processing (Near Data Processing, NDP) to a data processing system capable of providing FAM of large amounts of memory resources requires a method of efficiently using memory resources, wherein NDP indicates a process of executing a task issued by a host device.
Disclosure of Invention
In an embodiment of the present disclosure, a data processing system may include: a plurality of data processing devices, each data processing device comprising a computing memory and configured to perform tasks issued from one or more host devices; one or more host devices connected to the plurality of data processing devices, and each configured to select one or more of the plurality of data processing devices based on meta information and a size of a computation memory of the respective data processing device and request the selected one or more data processing devices to perform a first task, wherein the meta information includes a size of a memory required for the first task to be performed by the selected one or more data processing devices; a network switch configured to connect one or more host devices to a plurality of data processing devices; and a network manager included in the network switch and configured to collect free memory of each data processing apparatus based on the meta information and the size of the computing memory of each data processing apparatus and to control the one or more host apparatuses to use at least some of the free memory.
In an embodiment of the present disclosure, there is provided a method of operating a data processing system in which a plurality of data processing apparatuses are connected to one or more host apparatuses through a network manager, each data processing apparatus having a calculation memory, the method of operating comprising: selecting, by each of the one or more host devices, one or more of the plurality of data processing devices based on meta information including a size of memory required for a first task to be performed by the selected one or more data processing devices and a size of a computing memory of the respective data processing device; requesting, by each of the one or more host devices, the selected one or more data processing devices to perform the first task; collecting, by the network manager, free memory of each data processing apparatus based on the meta information and the size of the computing memory of each data processing apparatus; and controlling, by the network manager, the one or more host devices to use at least some of the free memory.
In an embodiment of the present disclosure, there is provided a method of operating a network device for interconnecting one or more first devices and one or more second devices with each other, the method of operating comprising: identifying available capacities of memories respectively included in the first device and the second device; and transmitting control signals and data signals to the first and second devices for one or more of the first devices to share at least a portion of the available capacity for their operation.
Drawings
Fig. 1 is a configuration diagram illustrating a data processing system according to an embodiment of the present disclosure.
Fig. 2 is a configuration diagram showing a data processing apparatus according to an embodiment of the present disclosure.
Fig. 3 is a configuration diagram illustrating a network manager according to an embodiment of the present disclosure.
FIG. 4 is a flowchart for describing a method of operation of a data processing system according to an embodiment of the present disclosure.
Fig. 5 is a conceptual diagram for describing a memory resource utilization method according to an embodiment of the present disclosure.
Fig. 6 is a configuration diagram illustrating a data processing system according to an embodiment of the present disclosure.
FIG. 7 is a flowchart for describing a method of operation of a data processing system according to an embodiment of the present disclosure.
Fig. 8 is a conceptual diagram for describing a memory resource utilization method according to an embodiment of the present disclosure.
Detailed Description
Hereinafter, embodiments of the present disclosure will be described in more detail with reference to the accompanying drawings.
Fig. 1 is a configuration diagram illustrating a data processing system according to an embodiment of the present disclosure.
Data processing system 10 according to an embodiment may include a plurality of data processing devices 300-1, 300-2, 300-3, … … coupled to host device 200 through network manager 100.
Network manager 100 may be included in a network switch that couples host device 200 to data processing devices 300-1, 300-2, 300-3, … … through a fabric network such as ethernet, fibre channel, or InfiniBand.
The network manager 100 may control memories included in the host apparatus 200 and the data processing apparatuses 300-1, 300-2, 300-3, … … based on the use states of the memories, respectively, so that the memories are shared in the data processing system 10.
Applications such as big data analysis and machine learning require computation for massive data. According to such a demand, the host device 200 may delegate a task (i.e., a calculation process or an application process) of the host device 200 to a Near Data Processing (NDP) device such as the data processing devices 300-1, 300-2, 300-3, … …, so that the task is processed by the NDP device.
Before issuing the task, the host device 200 may check meta information including the type of task to be issued, the amount of calculation, and the size of memory (occupation) required to execute the task.
The issuing of an indication delegates a task or computation to be performed by a particular device to another device. In an embodiment, the host device 200 may issue tasks or calculations to be performed by the host device 200 onto the data processing devices 300-1, 300-2, 300-3, … ….
The network manager 100 may transmit the state of the computing resources owned by the data processing devices 300-1, 300-2, 300-3, … … to the host device 200. The status of the computing resources owned by the data processing apparatus 300-1, 300-2, 300-3, … … may be collected upon request by the network manager 100, or may be collected by the data processing apparatus 300-1, 300-2, 300-3, … … spontaneously reporting the status of the computing resources to the network manager 100. The computing resources may be indicative of hardware and software resources required for operation of the data processing apparatus 300-1, 300-2, 300-3, … … and include the number or size of memory resources. The memory resources included in the data processing apparatus 300-1, 300-2, 300-3, … … may be referred to as computing memory resources.
The host device 200 may select an appropriate data processing device based on the state of the computing resources owned by the data processing devices 300-1, 300-2, 300-3, … … and meta information of the task to be issued, and issue the task (i.e., computing process or application process) through the network manager 100.
As tasks are issued, the network manager 100 may collect usage status of memory resources of each of the data processing apparatuses 300-1, 300-2, 300-3, … …, e.g., information (e.g., address, capacity, etc.) of the free memory resources, according to the computing resources used by the data processing apparatuses to process the issued tasks and the occupied space of the issued tasks, and allocate at least a portion of the free memory resources to the host apparatus 200.
Host device 200 may include system memory 210. The system memory 210 is a working memory or main memory that stores arguments and process states (process states) required to operate on a program, and data generated and updated during a process. The host device 200 may check the use state of the system memory 210, for example, the memory size occupied by the task in progress and the size of the free memory, and autonomously notify the network manager 100 of the check result. In another embodiment, the network manager 100 may request and collect information about the use state of the system memory 210 from the host device 200.
The host device 200 may request memory resources from the network manager 100 according to the use state of the system memory 210. Based on the usage status of the memory resources included in the data processing apparatus 300-1, 300-2, 300-3, … …, the network manager 100 may allocate at least some of the free memory resources to the host apparatus 200.
The free memory resources of the data processing apparatus 300-1, 300-2, 300-3, … … additionally allocated to the host apparatus 200 may be used as an external system memory of the host apparatus 200.
The data processing apparatuses 300-1, 300-2, 300-3, … … may each perform an operation corresponding to a request of the host apparatus 200 in response to the request, address, and data of the host apparatus 200, and transmit data derived as a result of the processing to the host apparatus 200.
Fig. 2 is a configuration diagram showing a data processing apparatus according to an embodiment of the present disclosure.
The data processing apparatus 300 of fig. 2 may be one of the data processing apparatuses 300-1, 300-2, 300-3, … … shown in fig. 1.
Referring to fig. 2, a data processing apparatus 300 may include a network interface 310, a processor 320, and a memory device 330.
Network interface 310 may provide a communication channel through which data processing device 300 may access network manager 100 and communicate with host device 200.
Processor 320 may include multiple cores. Processor 320 may be configured as a combination of hardware devices and software running on the hardware devices and may process data by decoding commands transmitted from host device 200 to data processing device 300. The operations to process the data may include: an operation of storing data transmitted from the host device 200 in the memory device 330, an operation of reading data stored in the memory device 330, an operation of calculating data based on the read data, and an operation of providing the calculated data to the host device 200 or the memory device 330.
The memory device 330 may include a memory controller 331 and a memory pool 333.
For example, the memory controller 331 may be coupled to the memory pool 333 through a bus (not shown), and control data input/output to the memory pool 333.
Memory pool 333 may include one or more memory modules. The memory pool 333 may be configured in the form of a High Bandwidth Memory (HBM) or a Hybrid Memory Cube (HMC) in which a plurality of memory modules are stacked through a bus such as TSVs, but may not be limited thereto.
In a FAM environment in which one or more host devices 200 and one or more data processing devices 300 are connected through the network manager 100, the host device 200 may request the network manager 100 to issue a task based on the state of computing resources of each data processing device 300 and meta information of the task to be issued.
Network manager 100 may collect the usage states of memory pools 333 included in respective data processing apparatuses 300 according to the usage states and the occupied space of system memory 210 included in host apparatus 200. Further, the network manager 100 may allocate at least a part of the free memory resources of the data processing apparatus 300 as external system memory of the host apparatus 200 according to a request of the host apparatus 200.
Fig. 3 is a configuration diagram illustrating a network manager according to an embodiment of the present disclosure.
Referring to fig. 3, the network manager 100 may include a host management circuit 110, a memory pool management circuit 120, a task allocation circuit 130, and a memory resource allocation circuit 140.
The host management circuit 110 may collect the usage status of the system memory 210 through communication with the host device 200. The usage state of the system memory 210 may be provided from the host device 200 according to a request of the network manager 100, or the host device 200 may autonomously transmit the usage state of the system memory 210.
When the host device 200 requests the network manager 100 to issue a task, the memory pool management circuit 120 may collect the use state of the memory pool 333 included in the data processing device 300 to process the task. That is, the memory pool management circuit 120 may collect information (e.g., address, capacity, etc.) of free memory resources according to the size of memory (occupied space) required to perform a task that has been requested to be issued by the network manager 100 and the size of memory resources included in the data processing apparatus 300 for processing the task.
When host device 200 is intended to select a particular data processing device 300 and issue a task, task allocation circuitry 130 may transmit an issue request to the corresponding data processing device 300 along with the address, data, etc. associated with the issue request.
When the host device 200 requests memory resource allocation, the memory resource allocation circuit 140 may allocate at least a portion of the free memory included in the data processing device 300 as external system memory of the host device 200 based on the use state of the memory pool of the data processing device 300.
FIG. 4 is a flowchart for describing a method of operation of a data processing system according to an embodiment of the present disclosure. By way of example, FIG. 4 depicts a method of operation of a data processing system from the perspective of network manager 100.
The host device 200 may check meta information including the type of task to be issued, the amount of calculation, and the size (occupied space) of memory required to perform the task before issuing the task. Further, the host apparatus 200 may collect the state of the computing resources possessed by the data processing apparatus 300.
When the host device 200 selects an appropriate data processing device 300 based on the state of the computing resource possessed by the data processing device 300 and the meta information of the task to be issued and transmits the issue request to the network manager 100 in operation S101, the network manager 100 may transmit the issue request and the address, data, etc. related to the issue request to the corresponding data processing device 300 in operation S103.
In operation S105, the memory resource usage state of the data processing apparatus 300 to which the task is issued may be changed based on the occupation space of the issued task, and the network manager 100 may collect the usage state of the memory pool, for example, information of the free memory resource, according to the occupation space of the issued task and the size of the memory resource owned by the data processing apparatus 300.
In operation S107, when additional system memory is required according to the use state of the system memory 210, the host device 200 may request the network manager 100 to allocate memory resources.
In operation S109, the network manager 100 may allocate at least a portion of the free memory resources as external system memory of the host device 200 based on the usage state of the memory pool.
When an idle memory resource is allocated as the external system memory, the allocation may be reflected by updating the page table of the host apparatus 200 and the data processing apparatus 300.
Fig. 5 is a conceptual diagram for describing a memory resource utilization method according to an embodiment of the present disclosure.
To allow sharing of memory resources within data processing system 10-1, network manager 100 may check the usage status of the memory pool through operation S105 of fig. 4.
The checking result of the use state of the memory pools may show that the entire memory pool 333-2 of the second data storage device 300-2 and the partial memory pool 333-4 of the third data storage device 300-3 are used as a calculation memory for performing the task issued by the host device 200, and the entire memory pool 333-1 of the first data storage device 300-1 and the partial memory pool 333-3 of the third data storage device 300-3 are free memories.
Through S109 of fig. 4, the network manager 100 may allocate the entire memory pool 333-1 of the first data processing apparatus 300-1 as the first external system memory of the host apparatus 200, and allocate a portion of the memory pool 333-3 of the third data processing apparatus 300-3 as the second external system memory of the host apparatus 200.
Since the capacity of the working memory required for the calculation of the host apparatus 200 increases, the performance of the data processing system 10 can be improved.
Fig. 6 is a configuration diagram illustrating a data processing system 20 according to an embodiment of the present disclosure.
Referring to fig. 6, the data processing system 20 may include a plurality of data processing devices 300-1, 300-2, 300-3, … … connected to a plurality of host devices 201, 202, 203, … … through a network manager 100.
The network manager 100 may connect the host device 201, 202, 203, … … to the data processing device 300-1, 300-2, 300-3, … … through an architecture network such as ethernet, fibre channel, or infiniband.
The network manager 100 may control memory resources to be shared in the data processing system 20 based on the usage states of the memory resources included in the host devices 201, 202, 203, … … and the data processing devices 300-1, 300-2, 300-3, … …, i.e., the usage states of the system memories 211, 212, and 213 and the memory pools (333-1, 333-2, and 333-3 of fig. 8).
When one or more of the data processing apparatuses 300-1, 300-2, 300-3, … … processes a task issued by the host apparatus 201, 202, 203, … …, the network manager 100 can collect a usage state of the memory pool reflected by the memory footprint of the data processing apparatus 300-1, 300-2, 300-3, … ….
The host devices 201, 202, 203, … … may include system memories 211, 212, 213, … …, respectively. The host apparatuses 201, 202, 203, … … can check the use states of the system memories 211, 212, 213, … …. The host device 201, 202, 203, … … may autonomously report the usage status of the system memory 212, 213, … … to the network manager 100, or the network manager 100 may access the host device 201, 202, 203, … … and collect the usage status of the system memory 212, 213, … ….
The host devices 200-1, 200-2, 200-3, … … may request memory resources from the network manager 100 according to the usage status of the system memories 211, 212, 213, … …. The network manager 100 may collect information (address, capacity, etc.) of the free memory resources based on the usage status of the memory resources included in the data processing devices 300-1, 300-2, 300-3, … … and allocate at least some of the free memory resources to the host devices 201, 202, 203, … ….
The free memory resources of the data processing apparatus 300-1, 300-2, 300-3, … … additionally allocated to the host apparatus 201, 202, 203, … … may be used as external system memory of the host apparatus 201, 202, 203, … ….
When the size of the memory resources collected from the data storage devices 300-1, 300-2, 300-3, … …, i.e., the size of the free memory resources, is greater than a threshold, the network manager 100 may allocate the free memory resources owned by the data storage devices 300-1, 300-2, 300-3, … … to the host devices 201, 202, 203, … ….
For example, the network manager 100 may check whether the sum of memory resources requested to be allocated by the plurality of host devices 201, 202, 203, … … is greater than the sum of free memory resources.
When the sum of memory resources requested to be allocated is greater than the sum of free memory resources, the network manager 100 may distribute and allocate the free memory resources to the plurality of host devices 201, 202, 203, … … according to a preset standard.
In an embodiment, the criteria for allocating free memory resources may be selected from among various criteria such as: a method of distributing free memory resources according to the ratio of memory resources respectively requested to be distributed by the host devices 201, 202, 203, … …, and a method of distributing memory resources in proportion to the speed required for the host devices 201, 202, 203, … … to process services. That is, since various processing speeds are required according to the type of service that the external device has requested the host device 201, 202, 203, … … to process and the host device 201, 202, 203, … … operates at the processing speed set to its target speed, external system memory can be provided to achieve the target speed.
When the sum of memory resources requested to be allocated by the plurality of host apparatuses 201, 202, 203, … … is smaller than the size of the free memory resources included in one data processing apparatus, the network manager 100 may divide the free memory resources included in the one data processing apparatus and allocate the divided free memory resources to the plurality of host apparatuses 201, 202, 203, … ….
When any of the host devices 201, 202, 203, … … requests a memory resource, the network manager 100 can select a free memory resource from one or more of the data processing devices 300-1, 300-2, 300-3, … … and allocate the selected free memory resource.
When the size of the memory resources collected from the data storage devices 300-1, 300-2, 300-3, … …, i.e., the size of the free memory resources, is less than a preset threshold, the network manager 100 may check whether free memory resources are present in one or more of the system memories 211, 212, 213, … … and allocate free memory resources of the system memories 211, 212, 213, … … such that the free memory resources are shared by the host devices 201, 202, 203, … ….
Thus, the external system memory required by one or more host devices 201, 202, 203, … … can be allocated from the free memory resources of the data processing devices 300-1, 300-2, 300-3, … … or from the free system memory of other host devices, which makes it possible to improve the data processing performance of the host devices 201, 202, 203, … ….
FIG. 7 is a flowchart for describing a method of operation of a data processing system according to an embodiment of the present disclosure.
Fig. 7 shows an operation method of the data processing system 20 when a plurality of host apparatuses 201, 202, 203, … … request memory resource allocation.
When the host device 201, 202, 203, … … requests the network manager 100 to allocate memory resources in operation S107 (see fig. 4), the network manager 100 may check whether the size of the free memory resources is greater than a threshold value based on the use state of the memory pool included in the data processing device 300-1, 300-2, 300-3, … … in operation S201.
When the size of the free memory resource is greater than the threshold value (yes in operation S201), the network manager 100 may determine whether the sum of the memory resources requested to be allocated is greater than the sum of the free memory resources included in the plurality of data processing apparatuses 300-1, 300-2, 300-3, … … in operation S203.
When the sum of the memory resources requested to be allocated is greater than the sum of the free memory resources (yes in operation S203), the network manager 100 may distribute the free memory resources in operation S205 and allocate the free memory resources to the plurality of host devices 201, 202, 203, … … in operation S207.
To distribute memory resources, the network manager 100 may distribute free memory resources according to the ratio of memory resources requested to be allocated by the respective host devices 201, 202, 203, … …. In another embodiment, the network manager 100 may decide the size of the allocated memory resources in proportion to the speed required to process the service based on the type of service processed by the respective host devices 201, 202, 203, … ….
When the sum of the memory resources requested to be allocated is equal to or less than the sum of the free memory resources (no in operation S203), the network manager 100 may allocate the free memory resources to the plurality of host devices 201, 202, 203, … … in operation S207.
When the size of the free memory resource is equal to or smaller than the threshold value (no in operation S201), the network manager 100 may check whether or not there is free system memory in one or more of the system memories 211, 212, 213, … … in operation S209.
When there is a free system memory ("yes" in operation S209), the network manager 100 may allocate free system memory resources of the system memories 211, 212, 213, … … in operation S211.
When the external system memory is allocated, the allocation can be reflected by updating the page tables of the host apparatuses 201, 202, 203, … … and the data processing apparatuses 300-1, 300-2, 300-3, … ….
When there is no free memory resource (no in operation S209), the network manager 100 may transmit a message indicating that memory resource allocation cannot be performed to the host device 201, 202, 203, … … that has requested memory resource allocation in operation S213.
Fig. 8 is a conceptual diagram for describing a memory resource utilization method according to an embodiment of the present disclosure.
To allow sharing of memory resources in data processing system 20-1, network manager 100 may collect usage status of system memory 211, 212, 213, … … and usage status of the memory pools of data processing devices 300-1, 300-2, 300-3, … ….
Fig. 8 shows that a part of the memory pool 333-1 of the first data processing apparatus 300-1 is used as a calculation memory, and the other part of the memory pool 333-1 of the first data processing apparatus 300-1 is allocated as an external system memory of the first host apparatus 201.
Further, fig. 8 shows that a part of the memory pool 333-2 included in the second data processing apparatus 300-2 is used as the calculation memory, and another part of the memory pool 333-2 is allocated as the external system memory of the third host apparatus 203.
In addition, fig. 8 shows that the entire memory pool 333-3 included in the third data processing apparatus 300-3 is used as the calculation memory.
Further, fig. 8 shows that a part of the system memory 212 included in the second host apparatus 202 is allocated as the external system memory of the first host apparatus 201.
Among the memory pools included in the plurality of data storage devices 300-1, 300-2, 300-3, … … that process the computation issued by the host devices 201, 202, 203, … …, the free memory resources can be used as external system memory of the host devices 201, 202, 203, … …, which allows the processing speed of the data processing system 10 or 20 to be improved.
In addition, multiple host devices 201, 202, 203, … … can share free memory resources of system memory 211, 212, 213, … …, which allows the performance of data processing system 10 or 20 to be further improved.
Although various embodiments have been described above, those skilled in the art will appreciate that the described embodiments are merely examples. Accordingly, the data processing systems and methods of operation thereof described herein should not be limited based on the described embodiments and the claims. Furthermore, the embodiments may be combined to form additional embodiments.

Claims (17)

1. A data processing system, comprising:
a plurality of data processing devices, each data processing device including a computing memory and performing tasks issued from one or more host devices;
the one or more host devices are connected to the plurality of data processing devices, and each host device:
selecting one or more of the plurality of data processing apparatuses based on meta information including a size of memory required for a first task to be performed by the selected one or more data processing apparatuses and a size of a calculation memory of each data processing apparatus, and
requesting the selected one or more data processing apparatus to perform the first task,
a network switch connecting the one or more host devices to the plurality of data processing devices; and
a network manager included in the network switch, and:
collecting free memory of the respective data processing apparatus based on the meta information and the size of the calculation memory of the respective data processing apparatus, and
controlling the one or more host devices to use at least some of the free memory.
2. The data processing system of claim 1, wherein the network manager is further to provide at least some of the free memory to the one or more host devices as system memory for the one or more host devices when the one or more host devices request allocation of memory.
3. The data processing system of claim 2, wherein when a sum of memory requested to be allocated by two or more of the host devices is greater than a size of the free memory, the network manager further allocates the free memory to the two or more host devices according to a ratio of memory requested to be allocated by the two or more host devices, respectively.
4. The data processing system of claim 2,
wherein each of two or more of the host devices operates at a target speed required for a service to be provided to an external device, and
wherein when the sum of the two or more host devices requesting allocated memory is greater than the size of the free memory, the network manager allocates the free memory to the two or more host devices further in proportion to the target speed of each of the two or more host devices.
5. The data processing system of claim 1, wherein the network manager is further to:
when a selected one of the host devices requests a memory allocation, selecting free memory from one or more of the plurality of data processing devices,
the selected free memory is provided to the selected host device.
6. The data processing system of claim 1,
wherein each of the one or more host devices includes a system memory, and
wherein the network manager further:
collecting free system memory from each of the one or more host devices, and
at least a portion of the free system memory is allowed to be shared by the one or more host devices.
7. The data processing system of claim 6, wherein the network manager further provides at least some of the free memory and the free system memory to the one or more host devices when the one or more host devices request a memory allocation.
8. A method of operation of a data processing system in which a plurality of data processing devices are connected to one or more host devices through a network manager, each data processing device having a computing memory, the method of operation comprising:
selecting, by each of the one or more host devices, one or more of the plurality of data processing devices based on meta information including a size of memory required for a first task to be performed by the selected one or more data processing devices and a size of a computing memory of the respective data processing device;
requesting, by each of the one or more host devices, the selected one or more data processing devices to perform the first task;
collecting, by the network manager, free memory of the respective data processing apparatus based on the meta information and a size of a computing memory of the respective data processing apparatus; and
controlling, by the network manager, the one or more host devices to use at least some of the free memory.
9. The method of operation of claim 8, further comprising: when the one or more host devices request allocation of memory, at least some of the free memory is provided by the network manager to the one or more host devices as system memory for the one or more host devices.
10. The method of operation of claim 9, further comprising: when the sum of the memory requested to be allocated by two or more of the host devices is greater than the size of the free memory, the free memory is allocated to the two or more host devices by the network manager according to the ratio of the memory requested to be allocated by the two or more host devices, respectively.
11. The method of operation according to claim 9,
wherein each of two or more of the host devices operates at a target speed required for a service to be provided to an external device,
the method of operation further comprises: when the sum of the two or more host devices requesting allocated memory is greater than the size of the free memory, the free memory is allocated to the two or more host devices by the network manager in proportion to the target speed of each of the two or more host devices.
12. The method of operation of claim 8, further comprising:
selecting, by the network manager, free memory from one or more of the plurality of data processing devices when a memory allocation is requested by a selected one of the host devices; and
the selected free memory is provided to the selected host device.
13. The method of operation according to claim 8,
wherein each of the one or more host devices includes a system memory, and
the method of operation further comprises:
collecting, by the network manager, free system memory for each of the one or more host devices; and
at least a portion of the free system memory is allowed to be shared by the one or more host devices.
14. The method of operation of claim 13, further comprising: at least some of the free memory and the free system memory are provided to the one or more host devices by the network manager when the one or more host devices request a memory allocation.
15. A method of operation of a network device for interconnecting one or more first devices and one or more second devices with each other, the method of operation comprising:
identifying available capacity of memory included in the first device and the second device, respectively; and
control signals and data signals are transmitted to the first device and the second device for one or more of the first devices to share at least a portion of the available capacity for their operation.
16. The method of operation of claim 15, further comprising: the available capacity of the memory of each of the second devices is determined based on the size of the memory required for the task to be performed by the selected second device among the second devices and the size of the computing memory of the respective second devices.
17. The method of operation of claim 16, wherein the task is a task issued from the one or more first devices.
CN202211015751.1A 2021-12-28 2022-08-24 Data processing system and method of operation thereof Pending CN116360973A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2021-0189522 2021-12-28
KR1020210189522A KR20230100010A (en) 2021-12-28 2021-12-28 Data Processing System and Operating Method Thereof

Publications (1)

Publication Number Publication Date
CN116360973A true CN116360973A (en) 2023-06-30

Family

ID=86897695

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211015751.1A Pending CN116360973A (en) 2021-12-28 2022-08-24 Data processing system and method of operation thereof

Country Status (3)

Country Link
US (1) US20230205418A1 (en)
KR (1) KR20230100010A (en)
CN (1) CN116360973A (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117806851B (en) * 2024-02-28 2024-05-10 苏州元脑智能科技有限公司 Multi-host shared memory system, memory access method, device and storage medium

Also Published As

Publication number Publication date
KR20230100010A (en) 2023-07-05
US20230205418A1 (en) 2023-06-29

Similar Documents

Publication Publication Date Title
US20240168823A1 (en) Computer cluster arrangement for processing a computation task and method for operation thereof
CN102473106B (en) Resource allocation in virtualized environments
JP2001331333A (en) Computer system and method for controlling computer system
US8903981B2 (en) Method and system for achieving better efficiency in a client grid using node resource usage and tracking
US20050102387A1 (en) Systems and methods for dynamic management of workloads in clusters
CN112269661B (en) Partition migration method and device based on Kafka cluster
WO2023020010A1 (en) Process running method, and related device
CN116360973A (en) Data processing system and method of operation thereof
JPWO2005116832A1 (en) Computer system, method and program for controlling job execution in a distributed processing environment
CN112134964A (en) Controller distribution method, computer equipment, storage medium and network service system
JP2014186411A (en) Management device, information processing system, information processing method and program
CN116382581A (en) Method, system, equipment and storage medium for accelerating execution of NVMe protocol
CN111352735A (en) Data acceleration method, device, storage medium and equipment
US11093291B2 (en) Resource assignment using CDA protocol in distributed processing environment based on task bid and resource cost
CN116075809A (en) Automatic node exchange between compute nodes and infrastructure nodes in edge regions
US20210311767A1 (en) Storage system, storage device therefor, and operating method thereof
CN113204421A (en) Serverless co-distribution of functions and storage pools
CN114546493A (en) Core sharing method and device, processing core, electronic device and medium
US11637791B2 (en) Processing allocation in data center fleets
CN114924888A (en) Resource allocation method, data processing method, device, equipment and storage medium
CN115202859A (en) Memory expansion method and related equipment
CN114281516A (en) Resource allocation method and device based on NUMA attribute
CN115563050A (en) Many-core computing chip and data access method
CN116483536B (en) Data scheduling method, computing chip and electronic equipment
US20230089925A1 (en) Assigning jobs to heterogeneous graphics processing units

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination