Resource allocation method and apparatus, electronic device, and storage medium

Through the memory management and allocation unit in the resource allocation system, the memory module that matches the demand is dynamically selected and the address conversion is performed, which solves the problem of server memory resource waste and achieves efficient memory resource utilization and cost reduction.

WO2025189856A1PCT designated stage Publication Date: 2025-09-18INSPUR SUZHOU INTELLIGENT TECH CO LTD

Patent Information

Application Number
PCT/CN2024/137577
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-03-12
Filing Date
2024-12-06
Publication Date
2025-09-18

AI Technical Summary

Technical Problem

In the existing technology, the server has a high memory usage cost due to a memory architecture bottleneck and serious resource waste when the business volume is low, and it is impossible to effectively and dynamically allocate memory resources.

Method used

Through the memory management unit and memory allocation unit in the resource allocation system, it responds to memory acquisition requests, selects memory modules that match the required capacity, and performs address conversion and allocation. Combined with temperature monitoring and fan management, it realizes the dynamic allocation and utilization of memory resources.

Benefits of technology

It improves memory resource utilization, reduces usage costs, and ensures rapid allocation and flexible management of memory resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024137577_18092025_PF_FP_ABST
    Figure CN2024137577_18092025_PF_FP_ABST
Patent Text Reader

Abstract

Embodiments of the present application relate to the technical field of computer storage, and provide a resource allocation method and apparatus, an electronic device, and a storage medium. The method comprises: in response to a memory acquisition request sent by a target host, a memory management unit in a resource allocation system acquiring demanded memory capacity and a memory starting address carried by the memory acquisition request; on the basis of a memory allocation unit in the resource allocation system, selecting from among at least two memory modules a target memory module matching the demanded memory capacity; and on the basis of a memory address router in the memory allocation unit and the memory starting address, performing address translation on the target memory module, and allocating to the target host the target memory module having undergone address translation, thereby achieving dynamic resource allocation of the target host. In this way, the interaction between a memory management unit and a memory allocation unit ensures rapid allocation of idle memory modules in a system, thereby improving the utilization rate of memory resources, and reducing costs of usage of the memory resources.
Need to check novelty before this filing date? Find Prior Art

Description

Resource allocation method, device, electronic device and storage medium

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to the Chinese patent application filed with the China Patent Office on March 12, 2024, with application number 202410281682.1, and application name “Resource Allocation Method, Device, Electronic Device and Storage Medium”, all contents of which are incorporated by reference into this application. Technical Field

[0003] The present application belongs to the field of computer storage technology, and in particular relates to a resource allocation method, device, electronic device, and non-volatile readable storage medium. Background Art

[0004] With the high demand for data center storage and data processing, current servers are facing bottleneck problems caused by the existing memory architecture.

[0005] In related technologies, the host's memory expansion is often achieved by connecting enough CXL (Compute Express Link) memory modules to the host to meet the peak business demand. However, this method has a high memory usage cost, and when the host's business volume is low, the memory usage ratio is low, which will cause a waste of memory resources. Summary of the Invention

[0006] To overcome the problems existing in the related art, the present application provides a resource allocation method, device, electronic device and non-volatile readable storage medium.

[0007] In a first aspect, the present application provides a resource allocation method, which is applied to a memory management unit in a resource allocation system, and the method includes:

[0008] In response to a memory acquisition request forwarded by a switch in the resource allocation system, acquiring a memory demand capacity and a memory start address carried in the memory acquisition request; the memory acquisition request is sent to the switch by any target host among at least two hosts included in the resource allocation system;

[0009] selecting, based on a memory allocation unit in the resource allocation system, a target memory module that matches the required memory capacity from at least two memory modules in the resource allocation system;

[0010] Based on the memory address router and the memory start address in the memory allocation unit, the target memory module is addressed and allocated to the target host.

[0011] In some embodiments of the present application, at least two hosts are respectively connected one-to-one with at least two host memory interfaces in the memory allocation unit based on a computing high-speed link bus; the memory device interface in the memory allocation unit is connected to the memory storage unit in the resource allocation system based on the computing high-speed link bus.

[0012] In some embodiments of the present application, the memory storage unit includes at least two memory modules and at least two memory expansion controllers, the at least two memory expansion controllers are connected to the at least two memory modules in a one-to-one correspondence, and the memory expansion controllers are used to expand the memory of the memory modules.

[0013] In some embodiments of the present application, the memory management unit is connected to the status acquisition interface in the memory allocation unit based on a universal asynchronous receiver / transmitter; and the method further includes:

[0014] Based on the status acquisition interface, obtain the temperature information corresponding to the memory allocation unit.

[0015] In some embodiments of the present application, the method further comprises:

[0016] When the temperature information meets the preset temperature condition, a first target signal is sent to a target fan in the resource allocation system based on a logic unit in the resource allocation system; the first target signal is used to obtain speed information corresponding to the target fan;

[0017] Based on the rotation speed information and the temperature information, a second target signal is sent to the target fan; the second target signal is used to adjust the rotation speed of the target fan.

[0018] In some embodiments of the present application, based on a memory allocation unit in a resource allocation system, selecting a target memory module that matches a required memory capacity from at least two memory modules in the resource allocation system includes:

[0019] Based on the memory allocation unit in the resource allocation system, obtaining the memory allocation status corresponding to each memory module in the resource allocation system;

[0020] Determine the memory module to be allocated and the free memory size corresponding to the memory module to be allocated based on the memory allocation status corresponding to each memory module;

[0021] When the free memory size of a first memory module in the memory modules to be allocated is greater than or equal to the required memory capacity, the first memory module is determined as the target memory module.

[0022] In some embodiments of the present application, based on a memory allocation unit in a resource allocation system, selecting a target memory module that matches a required memory capacity from at least two memory modules in the resource allocation system further includes:

[0023] In the case that the memory size of any memory module to be allocated is smaller than the required memory capacity, a designated memory module is determined as a target memory module; the designated memory module includes at least two memory modules to be allocated.

[0024] In some embodiments of the present application, address translation is performed on a target memory module based on a memory address router and a memory start address in a memory allocation unit, including:

[0025] Get the initial start address, initial end address and target memory size corresponding to the target memory module;

[0026] The memory address router determines the target end address based on the target memory size and the memory start address;

[0027] Convert the initial start address to the memory start address, and convert the initial end address to the destination end address.

[0028] In some embodiments of the present application, the memory acquisition request carries a host identifier; and allocating the target memory module after address translation to the target host includes:

[0029] Determine, based on the host identifier, a target host memory interface connected to the target host from at least two host memory interfaces in the memory allocation unit;

[0030] When the memory address router completes the address translation of the target memory module, the memory address router sends the memory start address and the target end address to the target host memory interface.

[0031] In some embodiments of the present application, each host in the resource allocation system is connected to a target processor via a two-wire serial bus, and the target processor stores a host identifier corresponding to the host connected to the target processor.

[0032] In some embodiments of the present application, the memory management unit is connected to the configuration interface in the memory allocation unit via a two-wire serial bus; the method further includes:

[0033] At least two memory modules are uniformly addressed based on the configuration interface.

[0034] In some embodiments of the present application, the method further comprises:

[0035] Based on the configuration interface, the initialization unit in the control memory allocation unit performs initialization configuration according to the information in the storage processor.

[0036] In some embodiments of the present application, a memory management unit is connected to a memory resource interface in a memory allocation unit based on a high-speed serial computer expansion bus; and obtaining a memory allocation status corresponding to each memory module in the resource allocation system based on the memory allocation unit in the resource allocation system includes:

[0037] Based on the memory resource interface, the memory allocation status of each memory module is obtained in real time.

[0038] In some embodiments of the present application, the memory allocation status includes host information, bandwidth information, and device interface connection status corresponding to the allocated memory module, and the free memory size corresponding to the memory module to be allocated.

[0039] In some embodiments of the present application, the target host is configured to send a memory acquisition request to the switch when a storage module corresponding to the target host does not meet a preset storage condition.

[0040] In some embodiments of the present application, based on the configuration interface, controlling the initialization unit in the memory allocation unit to perform initialization configuration according to information in the storage processor includes:

[0041] When the memory allocation unit is powered on, the initialization unit is controlled based on the configuration interface to obtain initialization information from the storage processor;

[0042] Based on the initialization information, the host memory interface and the memory device interface in the memory allocation unit are enabled, and the transmission bandwidth information and the transmission rate information are set.

[0043] In some embodiments of the present application, the memory start address is determined based on the storage size of the storage module corresponding to the target host.

[0044] In a second aspect, the present application provides a resource allocation device, the device comprising:

[0045] a first acquisition module, configured to respond to a memory acquisition request forwarded by a switch in the resource allocation system and acquire a memory demand capacity and a memory start address carried in the memory acquisition request; the memory acquisition request is sent to the switch by any target host among at least two hosts included in the resource allocation system;

[0046] A first selection module is configured to select, based on a memory allocation unit in the resource allocation system, a target memory module that matches a required memory capacity from at least two memory modules in the resource allocation system;

[0047] The first allocation module is used to perform address conversion on the target memory module based on the memory address router and the memory start address in the memory allocation unit, and allocate the target memory module after the address conversion to the target host.

[0048] In a third aspect, the present application provides a resource allocation system, the resource allocation system including a memory management unit, a memory allocation unit, a memory storage unit, a switch, and at least two hosts;

[0049] At least two hosts are connected to the switch based on a network, and at least two hosts are also connected to at least two host memory interfaces in the memory allocation unit based on a computing high-speed link bus in a one-to-one correspondence;

[0050] The memory device interface in the memory allocation unit is connected to the memory storage unit based on a computing high-speed link bus;

[0051] The memory management unit is connected to the switch based on the network; the memory management unit is connected to the status acquisition interface in the memory allocation unit based on the universal asynchronous receiver and transmitter, the memory management unit is also connected to the configuration interface in the memory allocation unit based on the two-wire serial bus, and the memory management unit is also connected to the memory resource interface in the memory allocation unit based on the high-speed serial computer expansion bus.

[0052] In a fourth aspect, the present application provides an electronic device comprising: a processor, a memory, and a computer program stored in the memory and executable on the processor, characterized in that the processor implements the resource allocation method of any one of the above-mentioned first aspects when executing the program.

[0053] In a fifth aspect, the present application provides a non-volatile readable storage medium. When the instructions in the non-volatile readable storage medium are executed by a processor of an electronic device, the electronic device is enabled to perform the steps in the resource allocation method in any embodiment of the first aspect above.

[0054] In an embodiment of the present application, a memory management unit in a resource allocation system responds to a memory acquisition request sent by a target host forwarded by a switch in the resource allocation system, obtains the memory demand capacity and memory starting address carried in the memory acquisition request, selects a target memory module that matches the memory demand capacity from at least two memory modules in the resource allocation system based on the memory allocation unit in the resource allocation system, and performs address translation on the target memory module based on the memory address router and memory starting address in the memory allocation unit, and allocates the target memory module after address translation to the target host to achieve dynamic resource allocation to the target host. In this way, through the interaction between the memory management unit and the memory allocation unit in the resource allocation system, it is possible to ensure the rapid allocation of idle memory modules in the system. Moreover, based on the actual memory demand of the target host, a target memory module that matches the memory demand capacity can be determined for the target host, and the target memory module can be allocated to the target host, thereby achieving dynamic allocation of memory resources in the resource allocation system while improving the memory resource utilization rate in the resource allocation system and reducing the cost of using memory resources. BRIEF DESCRIPTION OF THE DRAWINGS

[0055] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, a brief introduction will be given below to the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.

[0056] FIG1 is a flowchart of a resource allocation method according to an embodiment of the present application;

[0057] FIG2 is a schematic diagram of the architecture of a resource allocation system provided in an embodiment of the present application;

[0058] FIG3 is a schematic diagram of the architecture of a server cabinet provided in an embodiment of the present application;

[0059] FIG4 is a flowchart of specific steps of a resource allocation method provided in an embodiment of the present application;

[0060] FIG5 is a structural diagram of a resource allocation device provided in an embodiment of the present application;

[0061] FIG6 is a structural diagram of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0062] The following will be combined with the drawings in the embodiments of this application to clearly and completely describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are part of the embodiments of this application, not all of them. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.

[0063] FIG1 is a flowchart of the steps of a resource allocation method provided in an embodiment of the present application, which is applied to a memory management unit in a resource allocation system.

[0064] In an embodiment of the present application, a resource allocation system can be used to implement dynamic allocation of memory resources. The resource allocation system can be mounted on a server cabinet and interconnected by cables for easy deployment. The resource allocation system may include at least two hosts, a switch, a memory management unit, a memory allocation unit, and a memory storage unit. Among them, the switch may be a Compute Express Link (CXL) switch, such as a general-purpose physical network switch. The memory management unit may be a BMC memory management unit, that is, the memory management unit uses a BMC (Baseboard Management Controller) to manage the entire resource allocation system, including memory resource status monitoring, configuration of the memory allocation unit, and the like.

[0065] The memory allocation unit may be a CXL memory allocation unit, which is used to monitor the status of memory and allocate memory. Specifically, it may be composed of modules such as a host memory interface, a memory address router, a memory address allocation unit, a memory device interface, a status acquisition interface, a memory resource interface, a configuration interface, and an initialization unit. The memory storage unit may be a CXL memory storage unit, which may be composed of a memory expansion controller (MXC) and a memory module (such as a CMM (CXL Memory Modual, CXL memory module)). Exemplarily, the memory module may be a memory module in the form of an E1.S, E3.S, or PCIe standard card. The memory storage unit may include at least two memory modules and at least two memory expansion controllers. Each memory expansion controller may be connected to a memory module. The memory expansion controller is used to provide high-bandwidth, low-latency, high-speed interconnection for the processor in the host and the device (memory module) based on the CXL protocol to achieve memory expansion of the memory module.

[0066] In the resource allocation system, at least two hosts are connected to at least two host memory interfaces provided in a memory allocation unit in a one-to-one correspondence via a computing express link bus (CXL). Specifically, each host memory interface in the memory allocation unit is connected to one host. Simultaneously, a memory device interface configured in the memory allocation unit is connected to a memory storage unit in the resource allocation system via the computing express link bus. Specifically, the memory device interface in the memory allocation unit can be connected to a memory expander controller in the memory storage unit in a one-to-one correspondence via the computing express link bus.

[0067] Each host is equipped with local memory, meaning each host has a corresponding storage module. This storage module is used to meet the host's basic system requirements, ensuring normal system operation and fast transfer of hot data. For example, the storage module can be a DIMM (Dual Inline Memory Module), which can be connected to the DIMM based on DDR (Double Data Rate SDRAM).

[0068] At the same time, each host can be connected to a target processor via a two-wire serial bus (I2C), and the target processor can store a host identifier corresponding to the host connected to the target processor. That is to say, for any host in the resource allocation system, the host identifier corresponding to the host and related information will be stored in the target processor connected to the host. In this way, when the host is powered on, the processor in the host will automatically read the host identifier in the target processor and bind to the host. When the host sends a memory acquisition request carrying the host identifier, the memory management unit can determine the host that sent the memory acquisition request, avoiding the loss of the correspondence between the host and the host identifier due to power failure of the host, which affects subsequent resource allocation. Exemplarily, the target processor can be an EEPROM processor. The host identifier can be a hexadecimal number, such as 0x00, 0x01, 0x02, 0x03, etc. It is understandable that the embodiments of the present application are not limited to this.

[0069] As shown in FIG1 , the method may include:

[0070] Step 101: In response to a memory acquisition request forwarded by a switch in a resource allocation system, acquire a memory demand capacity and a memory start address carried in the memory acquisition request; the memory acquisition request is sent to the switch by any target host among at least two hosts included in the resource allocation system.

[0071] In an embodiment of the present application, when the storage module configured on any target host among at least two hosts does not meet the preset storage conditions, a memory acquisition request will be sent to the switch via the network. The memory acquisition request carries the host identifier corresponding to the target host, the memory resource capacity required by the target host, i.e., the memory demand capacity, and the memory start address. The memory start address is determined based on the storage size of the storage module corresponding to the target host. For example, assuming that the storage size of the storage module is 64GB, the address range of the storage module is 0x00000000-0x107fffffff, and the CXL memory start address required by the target host needs to be +1 based on the tail address of the storage module, that is, 0x1080000000. Among them, the preset storage condition can be that the storage module does not have the ability to provide the target host with the memory resources it requires, for example, the remaining free memory of the storage module is less than the memory resource capacity required by the target host, i.e., the memory demand capacity, etc.

[0072] When any target host in the resource allocation system sends a memory acquisition request to a switch, the switch forwards the request to the memory management unit, which is connected to the switch via a network. Upon receiving the request, the memory management unit parses the request and retrieves the host identifier, requested memory capacity, and starting memory address contained in the request.

[0073] Step 102: Based on a memory allocation unit in the resource allocation system, a target memory module matching the required memory capacity is selected from at least two memory modules in the resource allocation system.

[0074] In an embodiment of the present application, a target memory module that matches the required memory capacity is selected from at least two memory modules in the resource allocation system based on a memory allocation unit in the resource allocation system. Exemplarily, the memory allocation unit determines an idle memory module by obtaining the storage status of the at least two memory modules, and selects a target memory module that matches the required memory capacity of the target host from the idle memory modules. The target memory module that matches the required memory capacity of the target host may have a memory capacity that is greater than or equal to the required memory capacity.

[0075] Step 103: Based on the memory address router and the memory start address in the memory allocation unit, perform address translation on the target memory module, and allocate the target memory module after address translation to the target host.

[0076] In an embodiment of the present application, since the memory address corresponding to the target host needs to be a continuous address, it is necessary to use the memory address router in the memory allocation unit to perform address conversion based on the memory address and the initial address of the target memory module, and allocate the target memory module after address conversion to the target host through the host memory interface in the memory allocation unit for use.

[0077] In summary, in an embodiment of the present application, a memory management unit in a resource allocation system responds to a memory acquisition request sent by a target host forwarded by a switch in the resource allocation system, obtains the memory demand capacity and memory starting address carried in the memory acquisition request, selects a target memory module that matches the memory demand capacity from at least two memory modules in the resource allocation system based on the memory allocation unit in the resource allocation system, and performs address conversion on the target memory module based on the memory address router and memory starting address in the memory allocation unit, and allocates the target memory module after address conversion to the target host to achieve dynamic resource allocation to the target host. In this way, through the interaction between the memory management unit and the memory allocation unit in the resource allocation system, it is possible to ensure the rapid allocation of idle memory modules in the system. Moreover, based on the actual memory demand of the target host, a target memory module that matches the memory demand capacity can be determined for the target host, and the target memory module can be allocated to the target host, thereby achieving dynamic allocation of memory resources in the resource allocation system while improving the memory resource utilization rate in the resource allocation system and reducing the cost of using memory resources.

[0078] In some embodiments of the present application, a memory management unit in a resource allocation system is connected to a status acquisition interface in a memory allocation unit based on a universal asynchronous receiver / transmitter (UART). The status acquisition interface is used to monitor the memory allocation unit.

[0079] The embodiment of the present application may include the following steps:

[0080] Step 201: Based on a status acquisition interface, obtain temperature information corresponding to a memory allocation unit.

[0081] In the embodiment of the present application, since the memory allocation unit may experience a temperature increase during operation, in order to ensure the performance of the memory allocation unit, it is necessary to monitor the temperature of the memory allocation unit in real time. The memory management unit can monitor the temperature of the memory unit in real time based on the status acquisition interface in the memory allocation unit and obtain temperature information corresponding to the memory allocation unit.

[0082] In an embodiment of the present application, the memory management unit can monitor the temperature of the memory allocation unit in real time through the status acquisition interface in the memory allocation unit to avoid performance problems of the memory allocation unit.

[0083] In some embodiments of the present application, the resource allocation system may include a logic unit and a target fan. The embodiment of the present application may include the following steps:

[0084] Step 301: When temperature information meets a preset temperature condition, a first target signal is sent to a target fan in the resource allocation system based on a logic unit in the resource allocation system; the first target signal is used to obtain speed information corresponding to the target fan.

[0085] In an embodiment of the present application, when temperature information satisfies a preset temperature condition, the current temperature representing the memory allocation unit may affect the performance of the memory allocation unit. Therefore, the memory allocation unit can be cooled by adjusting the fan speed. The memory management unit can be connected to a logic unit in the resource allocation system via a two-wire serial bus (Inter-Integrated Circuit, I2C). The logic unit can be a complex programmable logic device (CPLD). The memory management unit can send a first target signal to a target fan in the resource allocation system based on the logic unit in the resource allocation system. Exemplarily, the memory management unit can send a fan adjustment command to the logic unit. After receiving the fan adjustment command, the logic unit can send the first target signal to the target fan. The first target signal is used to obtain the current speed information corresponding to the target fan. Exemplarily, the first target signal can be a TACH signal. The TACH signal is an output pulse signal whose frequency is proportional to the fan speed. The higher the fan speed, the higher the frequency of the TACH signal. Therefore, by measuring the frequency of the TACH signal, the current fan speed can be determined and the speed information corresponding to the target fan can be obtained.

[0086] Step 302: Send a second target signal to the target fan based on the rotation speed information and the temperature information; the second target signal is used to adjust the rotation speed of the target fan.

[0087] In an embodiment of the present application, a second target signal is sent to the target fan based on the speed information and the temperature information. The second target signal is used to adjust the speed of the target fan. For example, the second target signal can be a PWM signal. The PWM signal is a pulse signal with a certain frequency. The logic unit can adjust the duty cycle by sending the second target signal to the target fan, and then adjust the fan speed of the target fan to improve the heat dissipation effect of the memory allocation unit. Exemplarily, the speed difference that needs to be adjusted can be determined based on the temperature information corresponding to the memory allocation unit and the target temperature. Based on the speed difference and the speed information, a second target signal is generated. The second target signal will adjust the speed of the target fan by adjusting the duty cycle.

[0088] In the embodiment of the present application, the rotation speed of the target fan can be adjusted through the memory management unit to ensure the performance of the memory allocation unit.

[0089] In some embodiments of the present application, step 102 may include the following steps:

[0090] Step 401: Based on a memory allocation unit in a resource allocation system, obtain memory allocation status corresponding to each memory module in the resource allocation system.

[0091] In an embodiment of the present application, based on the memory allocation unit in the resource allocation system, the memory allocation status corresponding to each memory module in the memory storage unit can be obtained. Among them, the memory allocation status can include allocated and to be allocated, and accordingly, the memory module can be divided into allocated memory modules and to be allocated memory modules. The memory allocation status may include host information (including host identification, etc.), bandwidth information and device interface connection status corresponding to the allocated memory module, as well as the free memory size corresponding to the to-be-allocated memory module. It is understandable that the memory allocation status can obtain different information according to user needs, and the embodiment of the present application does not limit the memory allocation status.

[0092] In some embodiments of the present application, the memory management unit is connected to the memory resource interface in the memory allocation unit based on a high-speed serial computer expansion bus.

[0093] Step 401 may include the following steps:

[0094] Step 4011: Based on the memory resource interface, the memory allocation status corresponding to each memory module is obtained in real time.

[0095] In an embodiment of the present application, the high-speed serial computer expansion bus may be a PCIe Gen1 x2 bus, that is, the memory management unit may be connected to the memory resource interface in the memory allocation unit via a set of PCIe Gen1 x2 buses to obtain real-time memory resource usage (including the memory allocation status corresponding to the memory module). Thus, when the target host sends a memory acquisition request signal, the memory management unit obtains the memory allocation status corresponding to the memory device based on the memory resource interface in the memory allocation unit to allocate idle memory resources to the target host.

[0096] Step 402: Based on the memory allocation status corresponding to each memory module, determine the memory module to be allocated and the free memory size corresponding to the memory module to be allocated.

[0097] In the embodiment of the present application, based on the acquired memory allocation status corresponding to each memory module, the currently idle memory modules to be allocated and the idle memory size corresponding to each memory module to be allocated are determined.

[0098] Step 403: If the free memory size of the first memory module in the memory modules to be allocated is greater than or equal to the required memory capacity, determine the first memory module as the target memory module.

[0099] In an embodiment of the present application, if a first memory module among the memory modules to be allocated has a free memory size greater than or equal to the required memory capacity, indicating that the target memory module can provide a memory size that meets the host's requirements, then the first memory module can be directly determined as the target memory module. It will be appreciated that if there are multiple first memory modules among the memory modules to be allocated, based on the first difference between the actual capacity of each first memory module and the required memory capacity, the first memory module corresponding to the smallest first difference can be determined as the target memory module.

[0100] Step 404: When the memory size of any memory module to be allocated is smaller than the required memory capacity, a designated memory module is determined as a target memory module; the designated memory module includes at least two memory modules to be allocated.

[0101] In an embodiment of the present application, if the memory size of any to-be-allocated memory module is less than the required memory capacity, this indicates that no single to-be-allocated memory module exists that meets the required memory capacity, and a single to-be-allocated memory module cannot provide sufficient memory capacity to the host. Therefore, a combined allocation based on at least two to-be-allocated memory blocks can be performed to meet the required memory capacity of the host. Specifically, at least two to-be-allocated memory modules whose sum of memory sizes is greater than or equal to the required memory capacity can be selected, i.e., designated memory modules, and determined as target memory modules.

[0102] In the embodiments of the present application, by selecting a memory module to be allocated that is greater than or equal to the required memory capacity as the target memory module, a matching memory module can be selected as the target memory module while avoiding resource waste. Furthermore, if the memory size of a single memory module to be allocated is less than the required memory capacity, the target memory module can be determined by combining the memory modules to be allocated, thereby making resource allocation in the resource allocation system more flexible and diversified.

[0103] In some embodiments of the present application, the memory management unit is connected to the configuration interface in the memory allocation unit via a two-wire serial bus (I2C).

[0104] In an embodiment of the present application, the configuration interface in the memory allocation unit is used to control the initialization of the memory allocation unit, the unified addressing of memory addresses, and the routing of memory addresses. The configuration interface can be connected to the initialization unit in the memory allocation unit to control the initialization unit to initialize the memory allocation unit. The configuration interface can also be connected to the memory address allocation unit in the memory allocation unit to control the memory address allocation unit to perform unified addressing of at least two memory modules. The configuration interface can also be connected to the memory address router in the memory allocation unit to control the memory address router to utilize the mutual cooperation of memory address allocation and memory address routing to allocate the specified target memory module to the target host.

[0105] The embodiment of the present application may include the following steps:

[0106] Step 501: uniformly address at least two memory modules based on a configuration interface.

[0107] In an embodiment of the present application, the memory management unit controls the configuration interface via a two-wire serial bus, and further controls the memory address allocation unit in the memory allocation unit via the configuration interface to uniformly address at least two memory modules in the memory storage unit. For example, assuming that the memory storage unit includes two memory modules, both of which are 64GB, the memory address range corresponding to memory module 1 is 0x0-0x107fffffff, and the address range of memory module 2 is 0x1080000000-0x207fffffff.

[0108] In the embodiment of the present application, at least two memory modules are uniformly addressed through a configuration interface, so that the resource allocation system can allocate resources to the at least two memory modules.

[0109] In some embodiments of the present application, step 103 may include the following steps:

[0110] Step 601: Obtain an initial start address, an initial end address, and a target memory size corresponding to a target memory module.

[0111] In an embodiment of the present application, after determining the target memory module, the initial start address, initial end address, and target memory size corresponding to the target memory module are obtained. The initial start address and initial end address corresponding to the target memory module may be the address information corresponding to the target memory module after unified addressing. The target memory size is the actual available memory capacity corresponding to the target memory module.

[0112] Step 602: Determine the target end address based on the target memory size and the memory start address through the memory address router.

[0113] Step 603: Convert the initial start address to a memory start address, and convert the initial end address to a target end address.

[0114] In an embodiment of the present application, the target memory module is addressed by a memory address router. Specifically, the target end address can be determined based on the target memory size and the memory start address. The target end address is the end address corresponding to the target memory module after the address conversion. Exemplarily, the target end memory corresponding to the target memory module can be determined based on the memory start address and the size of the target memory module corresponding to the target memory module. The initial start address corresponding to the target memory module is converted to the memory start address, and the initial end address corresponding to the target memory module is converted to the target end address, that is, the memory address range corresponding to the target memory module after the address conversion is from the memory start address to the target end address.

[0115] In the embodiment of the present application, the address conversion of the target memory module is realized by a memory address router, so that the allocation of memory resources can be realized quickly.

[0116] In some embodiments of the present application, step 103 may include the following steps:

[0117] Step 701: Based on a host identifier, determine a target host memory interface connected to a target host from at least two host memory interfaces in a memory allocation unit.

[0118] In an embodiment of the present application, at least two hosts in the resource allocation system each correspond to a unique host identifier. After the memory allocation unit determines the target memory module to be allocated to the target host, the target memory module needs to be allocated to the corresponding target host based on the at least two host memory interfaces in the memory allocation unit. The memory management unit obtains the host identifier carried in the memory acquisition request received, and the memory allocation unit can determine the target host memory interface connected to the target host from the at least two host memory interfaces based on the host identifier.

[0119] Step 702: When the memory address router completes the address translation for the target memory module, the memory address router sends the memory start address and the target end address to the target host memory interface.

[0120] In an embodiment of the present application, when the memory address router in the memory allocation unit completes the address conversion of the target memory module, it is characterized that the target memory module can be allocated to the corresponding target host. Therefore, the memory address router can send the memory start address and target end address after address conversion to the target host memory interface to realize memory resource allocation to the target host.

[0121] In an embodiment of the present application, the target memory module is addressed by a memory address router, and then the target memory module after address translation is allocated to the target host through the target host memory interface corresponding to the target host, so that the memory address of the target host remains continuous.

[0122] In some embodiments of the present application, the embodiments of the present application may include the following steps:

[0123] Step 801: Based on the configuration interface, control the initialization unit in the memory allocation unit to perform initialization configuration according to the information in the storage processor.

[0124] In an embodiment of the present application, a configuration interface in the memory allocation unit can control an initialization unit in the memory allocation unit to initialize and configure the memory allocation unit. Based on the configuration interface, the initialization unit is controlled to obtain initialization information stored in the storage processor, and initialize and configure the memory allocation unit based on the initialization information. Wherein, the storage processor can be a FLASH processor, and the initialization information can be initialization content pre-stored in the storage processor. Exemplarily, the initialization unit can be connected to the storage processor based on a serial peripheral interface (SPI).

[0125] In some embodiments of the present application, step 801 may include the following steps:

[0126] Step 8011: When the memory allocation unit is powered on, the initialization unit is controlled based on the configuration interface to obtain initialization information from the storage processor.

[0127] In the embodiment of the present application, when the memory allocation unit is powered on, the initialization unit obtains initialization information from the storage processor, wherein the initialization information may include parameter configuration information and interface enabling information corresponding to the memory allocation unit.

[0128] Step 8012: Based on the initialization information, enable the host memory interface and the memory device interface in the memory allocation unit, and set the transmission bandwidth information and the transmission rate information.

[0129] In the embodiment of the present application, based on the initialization information, the host memory interfaces and the memory device interfaces in the memory allocation unit are enabled, and the transmission bandwidth information and the transmission rate information of the memory allocation unit are initialized and set.

[0130] In the embodiment of the present application, the memory management unit controls the initialization unit through the configuration interface of the memory allocation unit to initialize the memory allocation unit, thereby ensuring the performance of the memory allocation unit.

[0131] For example, Figure 2 shows a schematic diagram of the architecture of a resource allocation system. As shown in Figure 2, the resource allocation system includes four hosts, a switch, a memory management unit, a memory allocation unit, and a memory storage unit. The four hosts are connected to four host memory interfaces in a one-to-one correspondence using CXL. Each host is connected to a storage module and a target processor. The host and storage modules are connected using DDR, and the host and target processor are connected using I2C. Each host is connected to the switch via a network and sends a memory acquisition request to the switch via the network. The switch then sends the memory acquisition request to the memory management unit via the network. The memory management unit can be connected to the status acquisition interface via UART, to the memory resource interface via a PCIe Gen1 x2 bus, and to the configuration interface and logic unit via I2C. In response to the memory acquisition request, the memory management unit obtains the memory allocation status corresponding to the memory module via the memory resource interface. The memory management unit also obtains temperature information corresponding to the memory allocation unit via the status acquisition interface and can control the speed of the target fan via the logic unit to adjust the temperature of the memory allocation unit. The memory management unit can control the initialization unit based on the configuration interface to initialize and configure the memory allocation unit based on the initialization information stored in the storage processor; can control the memory address allocation unit based on the configuration interface to uniformly address the memory addresses of the four memory modules; and can also control the memory address router based on the configuration interface to convert the address of the target memory module. The four memory device interfaces in the memory allocation unit are connected to the memory expansion controllers in the memory storage unit based on CXL, and each memory expansion controller is connected to a memory module. The memory address router connects to the host memory interface upward and receives memory address information from the memory address allocation unit downward. Therefore, the memory address allocation and memory address routing can be used to coordinate and allocate a specified memory module to a specified host.

[0132] Furthermore, FIG3 shows a schematic diagram of the architecture of a server cabinet. As shown in FIG3, the cabinet includes a switch, a memory allocation unit, a memory management unit, and a memory storage unit. The switch is connected to the host via a network bus, the switch is connected to the memory allocation unit and the memory management unit via a network bus, the host is connected to the memory allocation unit and the memory management unit via a computing express link (CXL) bus, and the memory allocation unit and the memory management unit are connected to the memory storage unit via a computing express link (CXL) bus.

[0133] Exemplarily, FIG4 shows a flowchart of the specific steps of a resource allocation method. As shown in FIG4 , the memory management unit controls the memory allocation unit to complete the initialization configuration, and uniformly addresses at least two memory modules based on the memory address allocation unit. After each host in the resource allocation system is powered on, it obtains the host identifier from the corresponding target processor and binds it to its own host. If the storage module of any target host does not meet the preset storage conditions, a memory acquisition request is sent to the switch. The switch forwards the memory acquisition request to the memory management unit, and the memory management unit obtains the memory allocation status corresponding to the memory module, and performs address conversion on the determined target memory module, and then sends the target memory module after address conversion to the target host to realize dynamic allocation of memory resources.

[0134] FIG5 is a schematic diagram of the structure of a resource allocation device provided in an embodiment of the present application. As shown in FIG5 , a memory management unit applied to a resource allocation system may include:

[0135] A first acquisition module 901 is configured to respond to a memory acquisition request forwarded by a switch in the resource allocation system and acquire a memory demand capacity and a memory start address carried in the memory acquisition request; the memory acquisition request is sent to the switch by any target host among at least two hosts included in the resource allocation system;

[0136] A first selection module 902 is configured to select a target memory module that matches a required memory capacity from at least two memory modules in the resource allocation system based on a memory allocation unit in the resource allocation system;

[0137] The first allocation module 903 is configured to perform address translation on the target memory module based on the memory address router and the memory start address in the memory allocation unit, and allocate the target memory module after address translation to the target host.

[0138] An embodiment of the present application provides a resource allocation device, which, through a memory management unit in a resource allocation system, responds to a memory acquisition request sent by a target host forwarded by a switch in the resource allocation system, obtains the memory required capacity and memory starting address carried in the memory acquisition request, selects a target memory module that matches the memory required capacity from at least two memory modules in the resource allocation system based on the memory allocation unit in the resource allocation system, and performs address translation on the target memory module based on the memory address router and memory starting address in the memory allocation unit, and allocates the target memory module after address translation to the target host, thereby achieving dynamic resource allocation for the target host. In this way, through the interaction between the memory management unit and the memory allocation unit in the resource allocation system, it is possible to ensure the rapid allocation of idle memory modules in the system. Furthermore, based on the actual memory demand of the target host, a target memory module that matches the memory required capacity can be determined for the target host, and the target memory module can be allocated to the target host, thereby achieving dynamic allocation of memory resources in the resource allocation system, improving the memory resource utilization rate in the resource allocation system, and reducing the cost of using memory resources.

[0139] In some embodiments of the present application, the memory management unit is connected to the state acquisition interface in the memory allocation unit based on a universal asynchronous receiver / transmitter; the device may further include:

[0140] The second acquisition module is used to acquire temperature information corresponding to the memory allocation unit based on the state acquisition interface.

[0141] In some embodiments of the present application, the device may further include:

[0142] A first sending module is configured to send a first target signal to a target fan in the resource allocation system based on a logic unit in the resource allocation system when the temperature information satisfies a preset temperature condition; the first target signal is used to obtain speed information corresponding to the target fan;

[0143] The second sending module is configured to send a second target signal to the target fan based on the rotation speed information and the temperature information; the second target signal is used to adjust the rotation speed of the target fan.

[0144] In some embodiments of the present application, the first selection module 902 includes:

[0145] A first acquisition submodule is configured to acquire, based on a memory allocation unit in the resource allocation system, a memory allocation status corresponding to each memory module in the resource allocation system;

[0146] A first determining module is configured to determine a memory module to be allocated and a free memory size corresponding to the memory module to be allocated based on a memory allocation status corresponding to each memory module;

[0147] The second determining module is configured to determine the first memory module as a target memory module when the free memory size of the first memory module in the memory modules to be allocated is greater than or equal to the required memory capacity.

[0148] In some embodiments of the present application, the first selection module 902 includes:

[0149] The third determining module is configured to determine a designated memory module as a target memory module when the memory size of any memory module to be allocated is smaller than the required memory capacity; the designated memory module includes at least two memory modules to be allocated.

[0150] In some embodiments of the present application, the first allocation module 903 includes:

[0151] The second acquisition submodule is used to obtain the initial start address, initial end address and target memory size corresponding to the target memory module;

[0152] A first determination submodule is configured to determine a target end address based on a target memory size and a memory start address through a memory address router;

[0153] The first conversion module is configured to convert the initial start address into a memory start address, and convert the initial end address into a target end address.

[0154] In some embodiments of the present application, the memory acquisition request carries a host identifier; the first allocation module 903 includes:

[0155] A second determining submodule is configured to determine, based on the host identifier, a target host memory interface connected to the target host from at least two host memory interfaces in the memory allocation unit;

[0156] The third sending module is used to send the memory start address and the target end address to the target host memory interface by the memory address router when the memory address router completes the address conversion of the target memory module.

[0157] In some embodiments of the present application, the memory management unit is connected to the configuration interface in the memory allocation unit via a two-wire serial bus; the device may further include:

[0158] The first addressing module is configured to uniformly address at least two memory modules based on the configuration interface.

[0159] In some embodiments of the present application, the device may further include:

[0160] The first configuration module is used to control the initialization unit in the memory allocation unit to perform initialization configuration according to information in the storage processor based on the configuration interface.

[0161] In some embodiments of the present application, the memory management unit is connected to the memory resource interface in the memory allocation unit based on a high-speed serial computer expansion bus; the first acquisition submodule includes:

[0162] The third acquisition submodule is used to acquire the memory allocation status corresponding to each memory module in real time based on the memory resource interface.

[0163] In some embodiments of the present application, the first configuration module includes:

[0164] a fourth acquisition submodule, configured to control the initialization unit to obtain initialization information from the storage processor based on the configuration interface when the memory allocation unit is powered on;

[0165] The first configuration submodule is used to enable the host memory interface and the memory device interface in the memory allocation unit based on the initialization information, and to set the transmission bandwidth information and the transmission rate information.

[0166] The embodiment of the present application further provides a resource allocation system, the resource allocation system comprising a memory management unit, a memory allocation unit, a memory storage unit, a switch, and at least two hosts;

[0167] At least two hosts are connected to the switch based on a network, and at least two hosts are also connected to at least two host memory interfaces in the memory allocation unit based on a computing high-speed link bus in a one-to-one correspondence;

[0168] The memory device interface in the memory allocation unit is connected to the memory storage unit based on a computing high-speed link bus;

[0169] The memory management unit is connected to the switch based on the network; the memory management unit is connected to the status acquisition interface in the memory allocation unit based on the universal asynchronous receiver and transmitter, the memory management unit is also connected to the configuration interface in the memory allocation unit based on the two-wire serial bus, and the memory management unit is also connected to the memory resource interface in the memory allocation unit based on the high-speed serial computer expansion bus.

[0170] For example, the relevant architecture diagram of the resource allocation system in the embodiment of the present application can refer to Figure 2, and the specific architecture description of the resource allocation system corresponding to Figure 2 can refer to the aforementioned embodiment, and the embodiment of the present application will not be repeated here.

[0171] The present application also provides an electronic device, see Figure 6, including: a processor 1001, a memory 1002, and a computer program 10021 stored in the memory and executable on the processor, wherein the processor implements the resource allocation method of the aforementioned embodiment when executing the program.

[0172] The present application also provides a non-volatile readable storage medium. When instructions in the non-volatile readable storage medium are executed by a processor of an electronic device, the electronic device can execute the resource allocation method of the aforementioned embodiment.

[0173] As for the device embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment.

[0174] The algorithms and displays provided herein are not inherently related to any particular computer, virtual system, or other device. Various general-purpose systems may also be used together with the teachings herein. Based on the above description, it is apparent that the structure required for constructing such systems is suitable. In addition, the present application is not directed to any specific programming language. It should be understood that various programming languages ​​may be utilized to implement the present application described herein, and the description of the specific languages ​​above is provided for the purpose of disclosing the preferred embodiment of the present application.

[0175] In the description provided herein, a large number of specific details are described. However, it is understood that the embodiments of the present application can be practiced without these specific details. In some instances, well-known methods, structures, and techniques are not shown in detail so as not to obscure the understanding of this description.

[0176] Similarly, it should be understood that in order to streamline the present application and aid in understanding one or more of the various inventive aspects, in the above description of the exemplary embodiments of the present application, various features of the present application are sometimes grouped together into a single embodiment, figure, or description thereof. However, this disclosed method should not be interpreted as reflecting an intention that the claimed application requires more features than are expressly recited in each claim. Rather, as reflected in the claims below, inventive aspects lie in fewer than all the features of the individual embodiments disclosed above. Accordingly, the claims following the detailed description are hereby expressly incorporated into this detailed description, with each claim itself serving as a separate embodiment of the present application.

[0177] Those skilled in the art will appreciate that the modules in the devices in the embodiments may be adaptively changed and arranged in one or more devices different from the embodiments. The modules or units or components in the embodiments may be combined into one module or unit or component, and in addition may be divided into multiple submodules or subunits or subcomponents. All features disclosed in this specification (including the accompanying claims, abstracts and drawings) and all processes or units of any method or device disclosed herein may be combined in any combination, except that at least some of such features and / or processes or units are mutually exclusive. Unless expressly stated otherwise, each feature disclosed in this specification (including the accompanying claims, abstracts and drawings) may be replaced by an alternative feature providing the same, equivalent or similar purpose.

[0178] The various component embodiments of the present application can be implemented in hardware, or in software modules running on one or more processors, or in a combination thereof. It should be understood by those skilled in the art that a microprocessor or digital signal processor (DSP) can be used in practice to implement some or all of the functions of some or all of the components in the sorting device according to the present application. The present application can also be implemented as a device or apparatus program for executing part or all of the methods described herein. Such a program implementing the present application can be stored on a computer-readable medium, or can have the form of one or more signals. Such a signal can be downloaded from an Internet website, or provided on a carrier signal, or provided in any other form.

[0179] It should be noted that the above embodiments illustrate rather than limit the present application, and that a person skilled in the art may devise alternative embodiments without departing from the scope of the appended claims. In the claims, any reference symbols placed between brackets should not be construed as limiting the claims. The word "comprising" does not exclude the presence of elements or steps not listed in the claims. The word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements. The present application may be implemented by means of hardware comprising several different elements and by means of appropriately programmed computers. In a unit claim enumerating several means, several of these means may be embodied by the same item of hardware. The use of the words first, second, and third etc. does not indicate any order. These words may be interpreted as names.

[0180] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0181] It should be noted that all actions of acquiring signals, information or data in this application are carried out in compliance with the relevant data protection laws and policies of the country where they are located and with the authorization given by the owner of the corresponding device.

[0182] The above are only preferred embodiments of the present application and are not intended to limit the present application. Any modifications, equivalent replacements, and improvements made within the spirit and principles of the present application should be included in the scope of protection of the present application.

[0183] The above are only specific embodiments of the present application, but the scope of protection of this application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.

Claims

1. A resource allocation method, characterized in that: The method is applied to a memory management unit in a resource allocation system, and comprises: In response to a memory acquisition request forwarded by a switch in the resource allocation system, acquiring a memory demand capacity and a memory start address carried in the memory acquisition request; the memory acquisition request is sent to the switch by any target host among at least two hosts included in the resource allocation system; selecting, based on a memory allocation unit in the resource allocation system, a target memory module that matches the required memory capacity from at least two memory modules in the resource allocation system; Based on the memory address router in the memory allocation unit and the memory start address, the target memory module is addressed and allocated to the target host.

2. The resource allocation method according to claim 1, characterized in that: The at least two hosts are connected to the at least two host memory interfaces in the memory allocation unit one-to-one based on the computing high-speed link bus; the memory device interface in the memory allocation unit is connected to the memory storage unit in the resource allocation system based on the computing high-speed link bus.

3. The resource allocation method according to claim 2, characterized in that: The memory storage unit includes at least two memory modules and at least two memory expansion controllers. The at least two memory expansion controllers are connected to the at least two memory modules in a one-to-one correspondence. The memory expansion controllers are configured to perform memory expansion on the memory modules.

4. The resource allocation method according to claim 1, wherein: The memory management unit is connected to the state acquisition interface in the memory allocation unit based on a universal asynchronous receiver / transmitter; the method further comprises: Based on the status acquisition interface, temperature information corresponding to the memory allocation unit is acquired.

5. The resource allocation method according to claim 4, characterized in that: The method further comprises: When the temperature information satisfies a preset temperature condition, a first target signal is sent to a target fan in the resource allocation system based on a logic unit in the resource allocation system; the first target signal is configured to obtain speed information corresponding to the target fan; Based on the rotation speed information and the temperature information, a second target signal is sent to the target fan; the second target signal is configured to adjust the rotation speed of the target fan.

6. The resource allocation method according to claim 1, wherein: The selecting, based on the memory allocation unit in the resource allocation system, a target memory module that matches the required memory capacity from at least two memory modules in the resource allocation system comprises: Based on the memory allocation unit in the resource allocation system, obtaining the memory allocation status corresponding to each memory module in the resource allocation system; Determining a memory module to be allocated and a free memory size corresponding to the memory module to be allocated based on a memory allocation status corresponding to each of the memory modules; In a case where the free memory size of a first memory module in the memory modules to be allocated is greater than or equal to the required memory capacity, the first memory module is determined as the target memory module.

7. The resource allocation method according to claim 6, characterized in that: The selecting, based on the memory allocation unit in the resource allocation system, a target memory module that matches the required memory capacity from at least two memory modules in the resource allocation system further comprises: In a case where the memory size of any of the memory modules to be allocated is smaller than the required memory capacity, a designated memory module is determined as the target memory module; the designated memory module includes at least two memory modules to be allocated.

8. The resource allocation method according to claim 1, characterized in that: The performing address conversion on the target memory module based on the memory address router in the memory allocation unit and the memory start address includes: Obtaining an initial start address, an initial end address, and a target memory size corresponding to the target memory module; Determining, by the memory address router, a target end address based on the target memory size and the memory start address; The initial start address is converted to the memory start address, and the initial end address is converted to the target end address.

9. The resource allocation method according to claim 8, characterized in that: The memory acquisition request carries a host identifier; and allocating the target memory module after address conversion to the target host includes: Based on the host identifier, determining a target host memory interface connected to the target host from at least two host memory interfaces in the memory allocation unit; When the memory address router completes the address conversion of the target memory module, the memory address router sends the memory start address and the target end address to the target host memory interface.

10. The resource allocation method according to claim 1, characterized in that: Each host in the resource allocation system is connected to a target processor via a two-wire serial bus. The target processor stores a host identifier corresponding to the host connected to the target processor.

11. The resource allocation method according to claim 1, wherein: The memory management unit is connected to the configuration interface in the memory allocation unit via a two-wire serial bus; the method further includes: The at least two memory modules are uniformly addressed based on the configuration interface.

12. The resource allocation method according to claim 11, characterized in that: The method further comprises: Based on the configuration interface, the initialization unit in the memory allocation unit is controlled to perform initialization configuration according to the information in the storage processor.

13. The resource allocation method according to claim 6, characterized in that: The memory management unit is connected to the memory resource interface in the memory allocation unit based on a high-speed serial computer expansion bus; the memory allocation unit in the resource allocation system obtains the memory allocation status corresponding to each memory module in the resource allocation system, including: Based on the memory resource interface, the memory allocation status corresponding to each memory module is obtained in real time.

14. The resource allocation method according to claim 13, characterized in that: The memory allocation status includes host information, bandwidth information, and device interface connection status corresponding to the allocated memory module, and the free memory size corresponding to the memory module to be allocated.

15. The resource allocation method according to claim 1, characterized in that: The target host is configured to send the memory acquisition request to the switch if the storage module corresponding to the target host does not meet a preset storage condition.

16. The resource allocation method according to claim 12, characterized in that: The controlling, based on the configuration interface, the initialization unit in the memory allocation unit to perform initialization configuration according to information in the storage processor includes: When the memory allocation unit is powered on, controlling the initialization unit to obtain initialization information from the storage processor based on the configuration interface; Based on the initialization information, the host memory interface and the memory device interface in the memory allocation unit are enabled, and the transmission bandwidth information and the transmission rate information are set.

17. The resource allocation method according to claim 1, characterized in that: The memory start address is determined based on the storage size of the storage module corresponding to the target host.

18. A resource allocation device, characterized in that: A memory management unit applied to a resource allocation system, the device comprising: a first acquisition module configured to, in response to a memory acquisition request forwarded by a switch in the resource allocation system, acquire a memory demand capacity and a memory start address carried in the memory acquisition request; the memory acquisition request is sent to the switch by any target host among at least two hosts included in the resource allocation system; a first selection module configured to select, based on a memory allocation unit in the resource allocation system, a target memory module that matches the required memory capacity from at least two memory modules in the resource allocation system; The first allocation module is configured to perform address conversion on the target memory module based on the memory address router in the memory allocation unit and the memory start address, and allocate the target memory module after address conversion to the target host.

19. A resource allocation system, characterized in that: The resource allocation system includes a memory management unit, a memory allocation unit, a memory storage unit, a switch and at least two hosts; The at least two hosts are connected to the switch based on a network, and the at least two hosts are also connected to at least two host memory interfaces in the memory allocation unit in a one-to-one correspondence based on a computing high-speed link bus; The memory device interface in the memory allocation unit is connected to the memory storage unit based on a computing high-speed link bus; The memory management unit is connected to the switch based on a network; the memory management unit is connected to the status acquisition interface in the memory allocation unit based on a universal asynchronous receiver and transmitter; the memory management unit is also connected to the configuration interface in the memory allocation unit based on a two-wire serial bus; the memory management unit is also connected to the memory resource interface in the memory allocation unit based on a high-speed serial computer expansion bus.

20. An electronic device, characterized in that: include: A processor, a memory, and a computer program stored in the memory and executable on the processor, wherein the processor implements the resource allocation method according to any one of claims 1 to 17 when executing the program.

21. A non-volatile readable storage medium, characterized in that: When the instructions in the non-volatile readable storage medium are executed by a processor of an electronic device, the electronic device is enabled to execute the resource allocation method according to any one of claims 1 to 17.

Citation Information

Patent Citations

  • BMC (Baseboard Management Controller)-based memory resource processing equipment, method and device and medium

    CN115686872A

  • Resource allocation method and device, electronic equipment and storage medium

    CN117170882A

  • Resource allocation method and device, electronic equipment and storage medium

    CN117873738A

  • Data communication method, communication system and computer-readable storage medium

    US20220413702A1

Cited By

  • Memory expansion card

    CN121051037A

  • Server memory expansion method and electronic equipment

    CN121364952A

  • Memory control method, computing device, storage medium and program product

    CN121501518A