Graphics processor, computer system, resource allocation method and related apparatus

By introducing trusted computing blocks and security management modules into the graphics processor, the security status of trusted virtual shared memory and physical shared memory is dynamically adjusted, solving the problem of insufficient resource allocation in GPUs for confidential computing tasks and achieving flexible resource management and efficient computing task processing.

CN122155926APending Publication Date: 2026-06-05HYGON INFORMATION TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
HYGON INFORMATION TECH CO LTD
Filing Date
2026-02-11
Publication Date
2026-06-05

AI Technical Summary

Technical Problem

When GPUs handle highly secure and confidential computing tasks, insufficient allocation of computing resources and lack of flexibility lead to resource waste and low utilization.

Method used

By introducing trusted computing blocks and security management modules into the graphics processor, trusted virtual shared memory is dynamically reallocated according to the needs of confidential computing tasks, and the security status of physical shared memory is directly configured through hardware, thereby realizing the dynamic adjustment of trusted virtual shared memory and the precise allocation of physical shared memory.

Benefits of technology

It improves the flexibility of computing resource allocation, avoids resource waste, achieves isolation and protection between confidential and non-confidential computing tasks, and enhances resource utilization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122155926A_ABST
    Figure CN122155926A_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a graphics processor, a computer system, a resource allocation method and related devices. The graphics processor comprises: a trusted computing block; and a security management module configured to, when determining that a current processing computing task is a confidential computing task, determine a matching resource usage according to a task requirement of the confidential computing task, at least re-allocate a corresponding allocated trusted virtual shared memory of the trusted computing block to obtain an adjusted trusted virtual shared memory, and determine a corresponding mapped physical shared memory, configure the determined physical shared memory as a security state, so that the physical shared memory in the security state is the adjusted trusted physical shared memory for processing the confidential computing task, and virtual shared memory that is not re-allocated as the trusted virtual shared memory is non-trusted virtual shared memory for processing a non-confidential computing task. The technical solution provided by the embodiments of the present application can improve the flexibility of resource allocation.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, specifically to a graphics processor, a computer system, a resource allocation method, and related devices. Background Technology

[0002] With the development of artificial intelligence and large models, computing systems are required to provide more computing resources. GPUs (Graphics Processing Units), which have multiple computing units, undertake more high-performance computing services than CPUs (Central Processing Units). A computing unit is a set of hardware computing resources inside the GPU used to perform graphics rendering and parallel computing tasks. Multiple computing units can form a computing block.

[0003] However, GPUs still have shortcomings in allocating computing resources when handling highly secure and confidential computing tasks. Therefore, how to provide technical solutions to improve the flexibility of computing resource allocation has become a technical problem that urgently needs to be solved by those skilled in the art. Summary of the Invention

[0004] In view of this, embodiments of the present invention provide a graphics processor, a computer system, a resource allocation method, and related apparatus to improve the flexibility of computing resource allocation.

[0005] To achieve the above objectives, the embodiments of the present invention provide the following technical solutions.

[0006] In a first aspect, embodiments of the present invention provide a graphics processor, comprising: Trusted computing block; The security management module is used to determine the matching resource usage based on the task requirements of the confidential computing task when it is determined that the computing task currently being processed by the graphics processor is a confidential computing task; to reallocate at least the already allocated trusted virtual shared memory corresponding to the trusted computing block based on the resource usage, so as to obtain the adjusted trusted virtual shared memory; and to determine the corresponding mapped physical shared memory based on the adjusted trusted virtual shared memory, and to configure the determined physical shared memory in a secure state, so that the physical shared memory in the secure state is the adjusted trusted physical shared memory. The adjusted trusted virtual shared memory is used to process the confidential computing tasks, and the virtual shared memory that is not reallocated to trusted virtual shared memory is untrusted virtual shared memory, which is used to process non-confidential computing tasks.

[0007] In a second aspect, embodiments of the present invention provide a computer system, comprising: The graphics processor as described in the first aspect; The host is used to send confidential computing tasks to the graphics processor.

[0008] Thirdly, embodiments of the present invention provide a resource allocation method applied to a graphics processor as described in the first aspect, the method comprising: When it is determined that the computing task currently being processed by the graphics processor is a confidential computing task, the corresponding resource usage is determined according to the task requirements of the confidential computing task. Based on the resource usage, at least the allocated trusted virtual shared memory corresponding to the trusted computing block is reallocated to obtain the adjusted trusted virtual shared memory; And, based on the adjusted trusted virtual shared memory, the corresponding mapped physical shared memory is determined, and the determined physical shared memory is configured to a safe state, so that the physical shared memory in the safe state is the adjusted trusted physical shared memory; The adjusted trusted virtual shared memory is used to process the confidential computing tasks, and the virtual shared memory that is not reallocated to trusted virtual shared memory is untrusted virtual shared memory, which is used to process non-confidential computing tasks.

[0009] Fourthly, embodiments of the present invention provide an electronic device, including a memory and a processor, wherein the memory stores a program, and the processor calls the program stored in the memory to execute the resource allocation method as described in the third aspect.

[0010] Fifthly, embodiments of the present invention provide a storage medium storing a program that, when executed, implements the resource allocation method as described in the third aspect.

[0011] This invention provides a graphics processing unit (GPU) comprising: a trusted computing block; and a security management module, configured to, when determining that the computing task currently being processed by the GPU is a confidential computing task, determine a matching resource usage amount based on the task requirements of the confidential computing task; reallocate at least some of the trusted virtual shared memory corresponding to the trusted computing block based on the resource usage amount to obtain an adjusted trusted virtual shared memory; and determine a corresponding mapped physical shared memory based on the adjusted trusted virtual shared memory, configure the determined physical shared memory in a secure state, such that the secure physical shared memory is the adjusted trusted physical shared memory; the adjusted trusted virtual shared memory is used to process the confidential computing task, and the virtual shared memory not reallocated as trusted virtual shared memory is untrusted virtual shared memory, which is used to process non-confidential computing tasks.

[0012] The technical solution provided in this invention, when determining that the computing task currently being processed by the graphics processor is a confidential computing task, allows the security management module to reallocate the trusted virtual shared memory (TRM) corresponding to the trusted computing block based on the task requirements of the currently determined confidential computing task, resulting in adjusted TRM. This allows the processing of confidential computing tasks based on the adjusted TRM, enabling real-time adjustment of the TRM corresponding to the trusted computing block. This allows the existence of unassigned virtual shared memory (i.e., untrusted virtual shared memory) within the graphics processor, thus allowing untrusted virtual shared memory to process non-confidential computing tasks. Simultaneously, based on the adjusted TRM, the security management module determines the corresponding mapped physical shared memory, configures the determined physical shared memory in a secure state, and directly configures the physical shared memory through hardware. This allows for precise allocation of physical shared memory resources, making resource allocation more flexible, avoiding resource waste, and achieving resource isolation and protection. Therefore, the technical solution provided in this invention enables dynamic adjustment of both trusted virtual shared memory and trusted physical shared memory, allowing the graphics processor to support both confidential and non-confidential computing tasks. Attached Figure Description

[0013] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on the provided drawings without creative effort.

[0014] Figure 1 This is a schematic diagram of the structure of a graphics processor provided in an embodiment of the present invention; Figure 2 This is a functional schematic diagram of the encrypted memory mapping table provided in an embodiment of the present invention; Figure 3 This is a schematic diagram of the structure of a computer system provided in an embodiment of the present invention; Figure 4 This is a schematic diagram of the workflow of the computer system provided in an embodiment of the present invention; Figure 5 This is a flowchart illustrating a resource allocation method provided in an embodiment of the present invention. Detailed Implementation

[0015] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.

[0016] With the explosive growth in demand for artificial intelligence and high-performance computing, graphics processing units (GPUs) have become a critical infrastructure supporting complex computing tasks. To avoid low resource utilization of GPUs, especially in scenarios with large workload fluctuations or uncertain resource requirements, resulting in idle and wasted GPU resources, dynamic GPU fractions technology can be used to optimize GPU resource allocation.

[0017] To enable more flexible and convenient dynamic resource allocation of the GPU, this invention provides a graphics processor. Please refer to... Figure 1 , Figure 1 This is a schematic diagram of the structure of a graphics processor provided in an embodiment of the present invention.

[0018] like Figure 1 As shown, the graphics processor 1 may include: Trusted Computing Block 11; The security management module 12 is configured to, when determining that the computing task currently being processed by the graphics processor 1 is a confidential computing task, determine the matching resource usage based on the task requirements of the confidential computing task; based on the resource usage, at least reallocate the already allocated trusted virtual shared memory corresponding to the trusted computing block 11 to obtain the adjusted trusted virtual shared memory; and, based on the adjusted trusted virtual shared memory, determine the corresponding mapped physical shared memory, configure the determined physical shared memory to a secure state, such that the physical shared memory in the secure state is the adjusted trusted physical shared memory. The adjusted trusted virtual shared memory is used to process the confidential computing tasks, and the virtual shared memory that is not reallocated to trusted virtual shared memory is untrusted virtual shared memory, which is used to process non-confidential computing tasks.

[0019] The trusted computing block 11 is a computing block in the graphics processor 1 used to perform confidential computing tasks.

[0020] In the graphics processor 1, the trusted computing block 11 is a secure and isolated execution environment designed to protect the code and data executed within it from other parts of the system, including the operating system, applications, and even privileged users.

[0021] The trusted computing block 11 includes memory (e.g., trusted virtual shared memory) allocated to it by the graphics processor 1 to ensure data security and isolation. For example, the trusted computing block 11 corresponding to the allocated trusted virtual shared memory may include: a trusted virtual shared memory base address and a trusted virtual shared memory size.

[0022] The trusted virtual shared memory base address is the starting address assigned by the graphics processor 1 to the trusted computing block 11. By configuring the trusted virtual shared memory base address, the graphics processor 1 can ensure that only the trusted computing block 11 can access this virtual shared memory region.

[0023] The trusted virtual shared memory capacity is the size of the memory region allocated by the graphics processor 1 to the trusted computing block 11. By configuring the memory size, the graphics processor 1 can ensure that the trusted computing block 11 has sufficient space to store and process data.

[0024] To enable the graphics processing unit (GPU) 1 to better perform confidential computing tasks, virtual memory management is typically employed, allowing it to achieve memory isolation and protection. The core of virtual memory management includes the mapping between virtual shared memory and physical shared memory. This mapping mechanism provides multifaceted support and advantages for the GPU 1 when handling confidential computing tasks, ensuring data security and isolation.

[0025] Virtual memory management allows the graphics processing unit (GPU) to dynamically allocate and release memory based on the task requirements of confidential computing tasks. This enables the GPU to flexibly adjust memory resources according to real-time task demands, thereby improving resource utilization.

[0026] Therefore, after reallocating the base address and capacity of the trusted virtual shared memory corresponding to the trusted computing block 11, and obtaining the adjusted trusted virtual shared memory, the corresponding mapped physical shared memory can be determined based on the adjusted trusted virtual shared memory. Since the trusted virtual shared memory is real-time reallocated according to the currently processed confidential computing task in this embodiment, there may be cases where the physical shared memory mapped to the trusted virtual shared memory before adjustment is different from the physical shared memory mapped to the adjusted trusted virtual shared memory. Therefore, the security management module 12 can configure the security status of the determined physical shared memory to obtain the adjusted trusted physical shared memory. This ensures that the security of the adjusted trusted virtual shared memory and the adjusted trusted physical shared memory remains consistent, satisfying the processing requirements of confidential computing tasks.

[0027] After reallocating the trusted virtual shared memory corresponding to trusted computing block 11 according to the task requirements of the confidential computing task being processed, the virtual shared memory that was not reallocated as trusted virtual shared memory can be identified as untrusted virtual shared memory. Untrusted virtual shared memory can be used to process non-confidential computing tasks.

[0028] It is easy to understand that if the graphics processor 1 determines that it is only performing confidential computing tasks, then all the virtual shared memory in the graphics processor 1 can be reallocated to the adjusted trusted virtual shared memory, and there will be no untrusted virtual shared memory.

[0029] The security management module 12 can be implemented using a security processor or by using an antifuse programmable logic array.

[0030] For example, an embedded processor, which has significant security features, can be used and can therefore be considered a type of secure processor.

[0031] An antifuse programmable logic array (FPGA) is a field-programmable gate array based on antifuse technology. FPGAs are primarily used in applications with high security requirements. Due to their one-time programming capability, FPGAs can effectively prevent configuration data from being tampered with or copied.

[0032] As can be seen, the technical solution provided in this embodiment of the invention, when determining that the computing task currently being processed by the graphics processor 1 is a confidential computing task, allows the security management module 12 to reallocate the trusted virtual shared memory corresponding to the trusted computing block 11 based on the task requirements of the currently determined confidential computing task, resulting in adjusted trusted virtual shared memory. This allows the processing of confidential computing tasks based on the adjusted trusted virtual shared memory, enabling real-time adjustment of the trusted virtual shared memory corresponding to the trusted computing block 11. This allows the existence of virtual shared memory (i.e., untrusted virtual shared memory) that is not allocated as trusted virtual shared memory in the graphics processor 1, thereby allowing untrusted virtual shared memory to process non-confidential computing tasks. Simultaneously, in this embodiment of the invention, the security management module 12 determines the corresponding mapped physical shared memory based on the adjusted trusted virtual shared memory, configures the determined physical shared memory in a secure state, and directly configures the physical shared memory through hardware. This allows for precise allocation of physical shared memory resources, making resource allocation more flexible, avoiding resource waste, and achieving resource isolation and protection. Therefore, the technical solution provided by the embodiments of the present invention can realize the dynamic adjustment of trusted virtual shared memory and trusted physical shared memory, enabling the graphics processor to support the processing of confidential computing tasks and non-confidential computing tasks.

[0033] To facilitate the configuration of the security status of the physical shared memory by the security management module 12, the mapping relationship stored in the graphics processor 1 can be used for configuration. Please refer to [link / reference needed]. Figure 1 .

[0034] like Figure 1 As shown, the graphics processor 1 may further include: The encrypted memory mapping table 13 is used to record the mapping relationship between physical shared memory and virtual shared memory; The security management module 12 is used to determine the corresponding mapped physical shared memory based on the adjusted trusted virtual shared memory, and configure the determined physical shared memory to a secure state, including: Using the encrypted mapping table 13 of the memory, the physical shared memory corresponding to the adjusted trusted virtual shared memory is determined, and the security bits of the determined physical shared memory are configured to a secure state, so that the physical shared memory in the secure state is the adjusted trusted physical shared memory.

[0035] The encrypted mapping table 13 of the memory records the mapping relationship between physical shared memory and virtual shared memory, that is, it records the mapping from trusted physical shared memory accessed by trusted computing blocks to trusted virtual shared memory, and records the mapping from untrusted physical shared memory accessed by untrusted computing blocks to untrusted virtual shared memory.

[0036] During the initialization process of the graphics processor 1, an encrypted mapping table 13 of the memory can be stored. The encrypted mapping table 13 of the memory is managed by the security management module 12. When the security management module 12 reallocates the trusted virtual shared memory corresponding to the trusted computing block 11 based on the currently determined resource usage, it can find the physical shared memory mapped by the adjusted trusted virtual shared memory through the encrypted mapping table 13 of the memory, and then configure the security bits of the physical shared memory to a secure state to obtain the adjusted trusted physical shared memory.

[0037] The trusted physical shared memory has security bits, and these security bits can only be configured by the security management module 12. Therefore, it can meet the security requirements of the graphics processor 1 when performing confidential computing tasks. At the same time, by directly managing the physical shared memory through hardware configuration (security management module 12), the overhead of the software layer can be reduced, thereby achieving lower latency and higher data transfer throughput.

[0038] To further enhance the security of the graphics processor 1 when handling confidential computing tasks, the mapping between the physical shared memory and the virtual shared memory is achieved through a page table. Furthermore, the addresses of the physical shared memory are not contiguous, but the addresses of the virtual shared memory are contiguous. The security bits are the bits included in the page table.

[0039] In virtual memory management, the page table is a key data structure used by the operating system to manage the mapping between virtual and physical addresses. Physical shared memory is a region of physical memory that multiple processes can share through virtual memory management.

[0040] In other words, the mapping relationship recorded in the encrypted memory mapping table 13 is: the mapping relationship between the addresses of physical shared memory and the addresses of virtual shared memory, which are recorded in the page table.

[0041] The page table entries include multiple entries to represent the page's attributes and status. The security bits can be located in the page table entries and can only be accessed and read / written by the security management module 12.

[0042] In the encrypted memory mapping table 13, the addresses of the physical shared memory are not contiguous, but the addresses of the virtual shared memory are contiguous. For example, an out-of-order random hash mapping can be used to make the addresses of the physical shared memory not contiguous and the addresses of the virtual shared memory contiguous, thereby achieving lightweight protection and making it impossible for attackers to recover continuous confidential data from the addresses of the physical shared memory.

[0043] In one embodiment, the trusted computing block 11 includes at least one allocated trusted computing unit; the allocated trusted virtual shared memory includes: an allocated trusted virtual shared memory base address and an allocated trusted virtual shared memory capacity; the resource usage includes: computing resource usage and storage resource usage; the security management module 12 is used to adjust at least the allocated trusted virtual shared memory corresponding to the trusted computing block 11 according to the resource usage, to obtain the adjusted trusted virtual shared memory including: Based on the storage resource usage, the allocated trusted virtual shared memory base address and allocated trusted virtual shared memory capacity corresponding to the trusted computing block 11 are reallocated to obtain the adjusted trusted virtual shared memory. And, based on the computing resource usage, the number of the allocated trusted computing units included in the trusted computing block 11 is reallocated to obtain trusted computing units with adjusted numbers. Trusted computing block 11 processes the confidential computing task using the adjusted trusted virtual shared memory through the adjusted number of trusted computing units.

[0044] The assigned trusted computing unit may be a trusted computing unit assigned by the graphics processor 1 when processing the previous confidential computing task.

[0045] When the graphics processor 1 performs only confidential computing tasks, the trusted computing unit can be all the computing units in the graphics processor 1. When the graphics processor 1 performs only non-confidential computing tasks, the number of trusted computing units can be 0, that is, there are no trusted computing units in the trusted computing block 11.

[0046] When processing confidential computing tasks, in addition to allocating storage resources, computing resources must also be considered. Therefore, in order to ensure that confidential computing tasks can run efficiently and securely during execution, the security management module 12 reallocates the trusted computing units included in the trusted computing block and the trusted virtual shared memory corresponding to the trusted computing block based on the resource usage determined by the task requirements of the current confidential computing task.

[0047] Since the addresses of each virtual shared memory are contiguous in the encrypted memory mapping table 13, when reallocating trusted virtual shared memory, the base address and capacity of the already allocated trusted virtual shared memory can be reallocated according to the determined storage resource usage, resulting in adjusted trusted virtual shared memory. The security management module 12 can then determine the addresses of each relocated trusted virtual shared memory in the encrypted memory mapping table 13 based on the base address and memory capacity corresponding to the adjusted trusted virtual shared memory. Furthermore, it configures the non-contiguous physical shared memory mapped to each relocated trusted virtual shared memory according to the encrypted memory mapping table 13, resulting in adjusted trusted physical shared memory.

[0048] For example, if the allocated trusted virtual shared memory base address is 1 and the allocated trusted virtual shared memory capacity is 4, its corresponding trusted virtual shared memory page tables can be: page table 1, page table 2, page table 3, and page table 4. In the adjusted trusted virtual shared memory, the trusted virtual shared memory base address is 3 and the trusted virtual shared memory capacity is 8, and its corresponding trusted virtual shared memory page tables can be: page table 3, page table 4, page table 5, page table 6, page table 7, page table 8, page table 9, and page table 10. Based on the adjusted trusted virtual shared memory base address of 3 and trusted virtual shared memory capacity of 8, the security management module 12 determines the mapped physical shared memory according to the memory encryption mapping table 13, configures the security bits of the determined physical shared memory, and obtains the new adjusted trusted physical shared memory.

[0049] By utilizing the security management module 12 to modify the trusted physical shared memory configuration, fine-grained control over the resources of the graphics processor 1 is enabled, allowing for precise allocation of computing units and storage resources. This makes resource allocation more flexible and can be optimized according to the needs of specific confidential computing tasks, avoiding resource waste.

[0050] To provide secure isolation, protect sensitive data, and prevent malware attacks to meet the needs of confidential computing, the graphics processor 1 will be divided into trusted and untrusted partitions. Please refer to [link / reference needed]. Figure 1 .

[0051] like Figure 1 As shown, the security management module 12, trusted computing block 11, and memory encryption mapping table 13 are all located in trusted partition B. Trusted partition B is used to process and store sensitive data, such as encryption keys and confidential information. By isolating this data in the trusted partition, it can prevent it from being accessed by untrusted code, thereby reducing the risk of data leakage.

[0052] The graphics processor 1 may also include: Untrusted virtual shared memory 15 and trusted virtual shared memory 14; The untrusted virtual shared memory 15 is used to provide virtual shared memory for access by the untrusted computing block 16, such as the adjusted untrusted virtual shared memory mentioned above, and of course, the untrusted virtual shared memory allocated before adjustment; and the untrusted virtual shared memory is mapped to untrusted physical shared memory. The trusted virtual shared memory 14 is used to provide virtual shared memory for access to trusted computing block 11, such as the allocated trusted virtual shared memory and the adjusted trusted virtual shared memory described above.

[0053] Untrusted partition A may include untrusted computing block 16, which provides computing resources for processing non-confidential computing tasks. Untrusted partition A can run untrusted code without affecting sensitive operations in trusted partition B. This isolation mechanism effectively prevents malware from attacking sensitive data through untrusted code.

[0054] The isolation between trusted partition B and untrusted partition A can be achieved through the security management module 12. That is, the security management module 12 establishes an isolation boundary (first isolation boundary), which can divide trusted partition B and untrusted partition A.

[0055] exist Figure 1 In the trusted partition B shown, to further enhance the security of confidential computing tasks, trusted partition B is divided into a root trust partition B2 and an area B1 containing trusted computing block 11. The encrypted memory mapping table 13 is located in the root trust partition B2, and its lifespan depends on the processing progress of active confidential computing tasks; it will be cleared when all confidential computing tasks terminate, further enhancing the security during the reallocation of trusted virtual shared memory and trusted physical shared memory.

[0056] The root trust partition B2 is a key component of the trusted computing environment, providing a secure starting point for the entire graphics processing unit (GPU) 1. The primary function of root trust partition B2 is to ensure that GPU 1 starts operating from a trusted state and maintains this trusted state throughout its operation. Isolation between root trust partition B2 and trusted computing block 11 effectively prevents physical access attacks, such as cold start attacks and direct access to GPU memory. This design ensures the integrity of GPU 1's initial state and firmware through a hardware trust root, reduces the attack surface by isolating trusted computing block 11, and supports confidential computing through the collaborative work of hardware and software.

[0057] Virtual shared memory that is not reallocated as trusted virtual shared memory is untrusted virtual shared memory. The physical shared memory mapped by the untrusted virtual shared memory in the corresponding memory encryption mapping table 13 is untrusted physical shared memory. Untrusted computing tasks are processed in conjunction with the untrusted computing units in the untrusted computing block 16.

[0058] It should be noted that both untrusted computing block 16 and trusted computing block 11 are modules composed of multiple computing units. The computing units included in untrusted computing block 16 are called untrusted computing units, and the computing units included in trusted computing block 11 are called trusted computing units. Untrusted computing block 16 also has corresponding allocated untrusted virtual shared memory, including: the allocated untrusted virtual shared memory base address and the allocated untrusted virtual shared memory capacity.

[0059] When the graphics processor 1 only processes confidential computing tasks, the number of untrusted computing units can be 0. When the graphics processor 1 only processes non-confidential computing tasks, the untrusted computing units can be all the computing units included in the graphics processor 1.

[0060] In addition to handling multiple trusted computing units and untrusted computing units, the trusted computing block 11 and the untrusted computing block 16 also include registers, multi-level caches and memory.

[0061] The trusted computing unit accesses the trusted registers, trusted multi-level cache and trusted memory included in the trusted computing block 11 to process confidential computing tasks; the untrusted computing unit can only access the untrusted registers, untrusted multi-level cache and untrusted memory included in the untrusted computing block 16 to process non-confidential computing tasks.

[0062] The trusted registers, trusted multi-level caches, and trusted memory mentioned above can also be replaced with other trusted volatile storage that can fulfill the computational requirements.

[0063] To better understand the relationship between trusted computing block 11, untrusted computing block 16, and the corresponding accessed trusted and untrusted virtual shared memory, please refer to [reference needed]. Figure 2 , Figure 2 This is a functional schematic diagram of the encrypted memory mapping table provided in an embodiment of the present invention.

[0064] like Figure 2 As shown, in graphics processor 1, virtual memory management is used to map physical shared memory to virtual shared memory through page tables, and the mapping relationship is recorded in the encrypted mapping table of memory.

[0065] When the security management module 12 reallocates computing and storage resources based on the resource usage determined by the task requirements, the state of the trusted computing block 11 that processes confidential computing tasks is configured to a secure state. For example, the specific number of computing units required to execute the current confidential computing task are configured to a secure state and identified as trusted computing units, and the computing blocks composed of them are trusted computing blocks. Then, the security management module 12 determines the specific adjusted trusted virtual shared memory based on the adjusted trusted virtual shared memory base address and adjusted trusted virtual shared memory capacity corresponding to the trusted computing block 11, and then determines the physical shared memory mapped to the adjusted trusted virtual shared memory through the memory encryption mapping table 13. The security bits of the determined physical shared memory are configured to a secure state S to obtain the adjusted trusted virtual physical memory.

[0066] The remaining virtual shared memory that has not been reallocated to trusted virtual shared memory is untrusted virtual shared memory, and the corresponding mapped physical shared memory is untrusted physical shared memory.

[0067] Depend on Figure 2 It can be seen that the untrusted computing block 16 also includes the adjusted untrusted virtual shared memory base address and the adjusted untrusted physical shared memory capacity; used to determine the untrusted physical shared memory (physical shared memory in state NS) according to the encrypted mapping table 13 of the memory.

[0068] The primary functions of the root trust partition B2 include establishing a hardware root of trust, generating verifiable proofs, isolating and protecting sensitive operations, supporting dynamic roots of trust, reducing the attack surface, and supporting confidential computation. Through these functions, the root trust partition ensures that the system starts operating from a trusted state and maintains that trusted state throughout its operation. Therefore, as... Figure 1 As shown, in one implementation, the root trust partition B2 may further include: The hardware unique key providing module 17 is used to provide a private key and generate an identity key. The private key is used to authenticate the firmware of the security management module 12 and serves as the root of trust for the graphics processor 1. The identity key is used to authenticate the host. Key group receiving module 18 is used to receive keys for confidential data delivered by the host; The key group receiving module 18 and the encrypted mapping table 13 of the memory are located in the trusted storage module 19 of the root trusted partition.

[0069] The Hardware Unique Key (HUK) provider module 17 is a unique key embedded in the hardware to ensure the security of the device (e.g., a graphics processor) and the confidentiality of data. The HUK is typically written to a secure storage area of ​​the hardware during the device manufacturing stage. Each device's HUK is unique and cannot be tampered with or copied.

[0070] The hardware unique key providing module 17 provides a unique private key for the graphics processor 1 to authenticate the firmware of the security management module 12. The data and management program of the security management module 12 can be made tamper-proof using methods such as antifuse, thus forming the root of trust for the root trust partition B2 of the graphics processor 1. Simultaneously, the hardware unique key providing module 17 can generate a device identity key IK to establish authentication with the host.

[0071] In one implementation, the hardware unique key providing module 17 can be an antifuse medium memory. Of course, other secure storage media can also be used.

[0072] The trusted storage module 19 is non-volatile storage, storing a key and a memory encryption mapping table for confidential data distributed by the host (e.g., the CPU included in the host); the key receiving module 18 receives the key for encrypting and decrypting confidential data distributed by the CPU and the system through an asymmetric encryption algorithm or a Diffie-Hellmann (a public-key cryptography protocol) shared key. In other embodiments, other encryption and authentication distribution methods may also be used.

[0073] Please continue to refer to this. Figure 1 The trusted virtual shared memory 14 may include a trusted data input / output buffer 141, which is used to receive confidential data of the confidential computing task or output the encrypted result processed by the confidential computing task.

[0074] The confidential data for the confidential computing task is first copied to the trusted data input / output buffer 141. The security management module 12 then reallocates trusted computing units and trusted virtual shared memory, enabling the reassigned trusted computing blocks to perform decryption operations using the reassigned trusted computing units. The decrypted results are temporarily stored in the adjusted trusted virtual shared memory awaiting the next computation step. The trusted data input / output buffer 141 (currently primarily for trusted data input) is cleared, and the CPU process is notified that confidential data reception is complete. The computation results in the adjusted trusted virtual shared memory are encrypted by the trusted computing blocks allocated by the security management module 12 and stored in the trusted data input / output buffer 141 (currently primarily for trusted data output). The CPU process is then notified to receive the encrypted results. Memory exchange between the CPU and GPU can be DMA (Direct Memory Access) or other high-speed transfer schemes.

[0075] Of course, the non-confidential data of the non-confidential computing task can be directly copied to the memory of the non-trusted virtual shared memory and the non-trusted computing block of the non-trusted partition. Similarly, the computing results are returned to the host memory in the opposite way.

[0076] To prevent untrusted computing blocks from accessing trusted virtual shared memory, the security management module 12 can monitor unauthorized access to untrusted computing blocks.

[0077] Please continue to refer to this. Figure 1 The security management module 12 may include: Access control unit 121 is used to periodically traverse the encrypted mapping table 13 of the memory to check whether the untrusted computing block has illegally accessed the trusted virtual shared memory; if so, it returns a security exception signal. Security agent 122 is used to establish a communication link between the graphics processor 1 and the host.

[0078] Since there are cases where the data has not been reassigned and cases where it has been reassigned, the access control unit 121 can check for each case to prevent unauthorized access. If an unauthorized access is detected, a security exception signal will be triggered. After receiving the security exception signal, the security management module 12 will disconnect from the confidential computing task and destroy the confidential data temporarily stored in the trusted virtual shared memory.

[0079] The security agent 122 is used to establish communication links with the host and the graphics processor 1, which may include, for example, communication links for key distribution, key allocation, memory allocation, and exception return.

[0080] Based on the foregoing, different isolation boundaries are established in the graphics processor 1, such as the first isolation boundary between trusted partition B and untrusted partition A, the third isolation boundary between root trusted partition B2 and region B1 where trusted computing block 11 is located, and a second isolation boundary can be established between the host and the graphics processor 1 according to the specific task processing situation of the graphics processor 1.

[0081] like Figure 1 As shown, when it is determined that the graphics processor 1 is only processing non-confidential computing tasks, the trusted computing block 11 does not allocate trusted virtual shared memory; the security management module 12 is also used to: establish a first isolation boundary between the untrusted partition A and the trusted partition B (which is mainly the root trusted partition B2 at this time), or establish the first isolation boundary, and establish a second isolation boundary between the host and the graphics processor 1. When it is determined that the graphics processor 1 is only processing confidential computing tasks, the security management module 12 is also used to establish the second isolation boundary and to establish a third isolation boundary between the trusted computing block 11 and the root trust partition B2; When determining that the graphics processor 1 processes the confidential computing task and the non-confidential computing task, the security management module 12 is also used to establish the first isolation boundary, the second isolation boundary and the third isolation boundary; The untrusted virtual shared memory 15 and the trusted virtual shared memory 14 are isolated by the first isolation boundary.

[0082] The number of isolation boundaries determines the security level of a computer system. For example, when the host is not performing confidential computing tasks, the graphics processor 1 also does not perform confidential computing tasks. In this case, trusted partition B may not be configured with trusted computing block 11, and the number of trusted computing units in trusted computing block 11 is zero. If no second isolation boundary is established between the graphics processor 1 and the host, and only the first isolation boundary is established between the untrusted partition A and the root trusted partition B2, the security level is Level 1. If a second isolation boundary is established between the graphics processor 1 and the host, the security level is Level 2. When the host only performs confidential computing tasks, and the graphics processor 1 only performs confidential computing tasks, then there is no untrusted partition A, and the number of untrusted computing units included in the untrusted computing block 16 in the untrusted partition A is 0. However, a second isolation boundary must be established between the graphics processor 1 and the host, and a third isolation boundary must be established between the region B1 where all trusted computing blocks 11 are located and the root trusted partition B2. At this time, the security level is Level 2. When the host executes both confidential and non-confidential computing tasks simultaneously, the graphics processor 1 also executes both confidential and non-confidential computing tasks simultaneously. At this time, the graphics processor 1 establishes a second isolation boundary with the host, the trusted partition B establishes a first isolation boundary with the untrusted partition A, and a third isolation boundary is established between the region B1 where all trusted computing blocks 11 are located and the root trusted partition B2. At this time, the security level is Level 3.

[0083] This invention also provides a computer system for flexibly allocating graphics processor resources based on hardware configuration.

[0084] Please refer to Figure 3 , Figure 3 This is a schematic diagram of the structure of a computer system provided in an embodiment of the present invention.

[0085] like Figure 3 As shown, the computer system includes: The graphics processor 1 described in any of the foregoing embodiments; Host 2 is used to send the currently processed computing task to the graphics processor 1.

[0086] Because of the graphics processor 1, the security management module can determine the specific resource usage in real time based on task requirements when the currently processed computing task is identified as a confidential computing task. Then, based on the resource usage, the security management module can at least reallocate trusted computing blocks to trusted virtual shared memory, enabling adjustments to the confidential computing task based on the adjusted trusted virtual shared memory. Furthermore, it can determine the mapped physical shared memory based on the adjusted trusted virtual shared memory, and then reallocate the physical shared memory as trusted physical shared memory through the security management module, obtaining the adjusted trusted physical shared memory. By adopting a hardware-direct memory configuration method, the goal of flexibly adjusting the resources of the graphics processor 1 is achieved, enabling precise resource allocation and avoiding resource waste.

[0087] To illustrate the complete workflow of the computer system provided in the embodiments of the present invention, please refer to... Figure 4 , Figure 4 This is a schematic diagram of the workflow of the computer system provided in the embodiment of the present invention.

[0088] like Figure 4 The process includes: S1: Host initialization, compiling and loading the GPU driver.

[0089] S2: GPU initializes the security management module, authenticates the firmware, and establishes a root of trust.

[0090] S3: The GPU security management module initializes the root trusted partition, sets all computing blocks as untrusted computing blocks by default, sets the virtual shared memory as untrusted virtual shared memory, establishes and stores the encrypted mapping table of the memory, and establishes a security agent.

[0091] S4: The GPU completes the initialization of its standard design.

[0092] S5: Determine whether the current computing task being processed is a confidential computing task. If yes, proceed to step S61; otherwise, proceed to step S62.

[0093] S61: The host requests a key for delivering confidential data and a signature for the confidential key. The key is transmitted using an asymmetric encryption algorithm or a Diffie-Hellmann shared key algorithm. The security management module stores the key in trusted storage and returns the storage sequence number of the key.

[0094] S71: The host allocates the number of compute blocks and memory.

[0095] S8: Check if there are enough trusted computing blocks and trusted virtual shared memory. If yes, proceed to step S9; otherwise, proceed to step S16.

[0096] S9: The security management module determines the matching resource usage based on the task requirements of the confidential computing task, reallocates the allocated trusted virtual shared memory base address and the allocated trusted virtual shared memory capacity corresponding to the trusted computing block based on the resource usage, and obtains the adjusted trusted virtual shared memory; and reallocates the number of allocated trusted computing units included in the trusted computing block, and obtains the number of trusted computing units adjusted.

[0097] S10: Update the encrypted mapping table of memory according to the adjusted trusted virtual shared memory, configure the security bits of the corresponding mapped physical shared memory, and obtain the adjusted trusted physical shared memory.

[0098] S11: The host copies confidential data to the trusted data input / output buffer and notifies the security management module of the corresponding key storage sequence number.

[0099] S12: After the security management module takes away the confidential data, it clears the trusted data input / output buffer, loads the corresponding key for decryption, and decrypts the trusted computing blocks composed of trusted computing units of adjusted quantity in parallel acceleration. The result is stored in the adjusted trusted virtual shared memory.

[0100] S13: The graphics processor performs confidential calculations and stores the encrypted results in a trusted data input / output buffer. The encryption process is accelerated in parallel by trusted computing blocks composed of trusted computing units of adjusted quantity.

[0101] S14: The host receives and verifies the calculation results, and releases the trusted computing blocks composed of the adjusted number of trusted computing units and the adjusted trusted virtual shared memory.

[0102] S15: The security management module erases the data corresponding to the adjusted trusted virtual shared memory that has been released, configures the trusted computing block and trusted virtual shared memory as untrusted computing block and untrusted virtual shared memory, updates the encrypted mapping table of memory and the base address of the untrusted virtual shared memory of the untrusted computing block and the capacity of the untrusted virtual shared memory.

[0103] S62: Check if there are enough untrusted computing blocks and untrusted virtual shared memory. If yes, proceed to step S72; otherwise, proceed to step S16.

[0104] S72: Copy non-confidential data to untrusted virtual shared memory, start the untrusted computing block, wait for computation, and the graphics processor copies the computation results to the host.

[0105] S16: End processing.

[0106] This invention also provides a resource allocation method, applied to the graphics processor described in any of the foregoing embodiments.

[0107] Please refer to Figure 5 , Figure 5 This is a flowchart illustrating a resource allocation method provided in an embodiment of the present invention.

[0108] like Figure 5 As shown, the method includes the following steps: Step S500: When it is determined that the computing task currently being processed by the graphics processor is a confidential computing task, the resource usage amount that matches the task requirements of the confidential computing task is determined.

[0109] Step S501: Based on the resource usage, at least the allocated trusted virtual shared memory corresponding to the trusted computing block is reallocated to obtain the adjusted trusted virtual shared memory.

[0110] Step S502: Determine the corresponding mapped physical shared memory based on the adjusted trusted virtual shared memory, configure the determined physical shared memory in a safe state, so that the physical shared memory in the safe state is the adjusted trusted physical shared memory.

[0111] The adjusted trusted virtual shared memory is used to process the confidential computing tasks, and the virtual shared memory that is not reallocated to trusted virtual shared memory is untrusted virtual shared memory, which is used to process non-confidential computing tasks.

[0112] Optionally, step S502 may include: using the encrypted mapping table of memory to determine the physical shared memory corresponding to the adjusted trusted virtual shared memory, configuring the security bits of the determined physical shared memory to a secure state, so that the physical shared memory in the secure state is the adjusted trusted physical shared memory; The encrypted mapping table of the memory is used to record the mapping relationship between physical shared memory and virtual shared memory.

[0113] Optionally, the trusted computing block includes at least one allocated trusted computing unit; the resource usage includes: computing resource usage and storage resource usage; step S501 includes: Based on the storage resource usage, the allocated trusted virtual shared memory base address and allocated trusted virtual shared memory capacity corresponding to the trusted computing block are reallocated to obtain the adjusted trusted virtual shared memory. And, based on the computing resource usage, the number of allocated trusted computing units included in the trusted computing block is reallocated to obtain trusted computing units with adjusted numbers; The trusted computing block processes the confidential computing task using the adjusted trusted virtual shared memory through a number of trusted computing units.

[0114] As can be seen, the technical solution provided by this embodiment of the invention, when determining that the currently processed computing task is a confidential computing task, can reallocate the trusted virtual shared memory corresponding to the trusted computing block according to the task requirements of the currently determined confidential computing task, to obtain the adjusted trusted virtual shared memory. Thus, confidential computing tasks can be processed according to the adjusted trusted virtual shared memory, realizing real-time adjustment of the trusted virtual shared memory corresponding to the trusted computing block, allowing the existence of virtual shared memory (i.e., untrusted virtual shared memory) that is not allocated as trusted virtual shared memory in the graphics processor, thereby allowing untrusted virtual shared memory to process non-confidential computing tasks. Simultaneously, in this embodiment of the invention, the security management module determines the corresponding mapped physical shared memory based on the adjusted trusted virtual shared memory, configures the determined physical shared memory to a secure state, and directly configures the physical shared memory through hardware, thereby accurately allocating physical shared memory resources, making resource allocation more flexible, avoiding resource waste, and achieving resource isolation and protection. Therefore, the technical solution provided by this embodiment of the invention can realize dynamic adjustment of trusted virtual shared memory and trusted physical shared memory, enabling the graphics processor to support the processing of both confidential and non-confidential computing tasks.

[0115] This invention provides an electronic device, such as a terminal device, a server device, or other computer device, including a memory and a processor. The memory stores a program, and the processor calls the program stored in the memory to execute the resource allocation method as described in any of the foregoing embodiments.

[0116] This invention provides a storage medium storing a program that, when executed, implements the resource allocation method as described in any of the foregoing embodiments.

[0117] The foregoing describes multiple embodiments of the present invention. The optional methods described in each embodiment can be combined and cross-referenced without conflict, thereby extending to a variety of possible embodiments. These can all be considered as embodiments disclosed or made public by the present invention.

[0118] While the embodiments of the present invention have been disclosed above, the present invention is not limited thereto. Any person skilled in the art can make various modifications and alterations without departing from the spirit and scope of the present invention; therefore, the scope of protection of the present invention should be determined by the scope defined in the claims.

Claims

1. A graphics processor, characterized in that, include: Trusted computing block; The security management module is used to determine the matching resource usage based on the task requirements of the confidential computing task when it is determined that the computing task currently being processed by the graphics processor is a confidential computing task; and to reallocate at least the already allocated trusted virtual shared memory corresponding to the trusted computing block based on the resource usage to obtain the adjusted trusted virtual shared memory. And, based on the adjusted trusted virtual shared memory, the corresponding mapped physical shared memory is determined, and the determined physical shared memory is configured to a safe state, so that the physical shared memory in the safe state is the adjusted trusted physical shared memory; The adjusted trusted virtual shared memory is used to process the confidential computing tasks, and the virtual shared memory that is not reallocated to trusted virtual shared memory is untrusted virtual shared memory, which is used to process non-confidential computing tasks.

2. The graphics processor as described in claim 1, characterized in that, Also includes: An encrypted memory mapping table is used to record the mapping relationship between physical shared memory and virtual shared memory; The security management module is used to determine the corresponding mapped physical shared memory based on the adjusted trusted virtual shared memory, and configure the determined physical shared memory to a secure state, including: Using the encrypted mapping table of the memory, the physical shared memory corresponding to the adjusted trusted virtual shared memory is determined, and the security bits of the determined physical shared memory are configured to a secure state, so that the physical shared memory in the secure state is the adjusted trusted physical shared memory.

3. The graphics processor as described in claim 2, characterized in that, The mapping between the physical shared memory and the virtual shared memory is achieved through a page table. The addresses of the physical shared memory are not contiguous, but the addresses of the virtual shared memory are contiguous. The security bits are the bits included in the page table.

4. The graphics processor as described in claim 3, characterized in that, The trusted computing block includes at least one allocated trusted computing unit; The allocated trusted virtual shared memory includes: the allocated trusted virtual shared memory base address and the allocated trusted virtual shared memory capacity; the resource usage includes: computing resource usage and storage resource usage; the security management module is used to reallocate at least the allocated trusted virtual shared memory corresponding to the trusted computing block according to the resource usage, to obtain the adjusted trusted virtual shared memory, including: Based on the storage resource usage, the allocated trusted virtual shared memory base address and allocated trusted virtual shared memory capacity corresponding to the trusted computing block are reallocated to obtain the adjusted trusted virtual shared memory. And, based on the computing resource usage, the number of allocated trusted computing units included in the trusted computing block is reallocated to obtain trusted computing units with adjusted numbers; The trusted computing block processes the confidential computing task using the adjusted trusted virtual shared memory through a number of trusted computing units.

5. The graphics processor as described in claim 4, characterized in that, The graphics processor includes trusted partitions and untrusted partitions; The security management module and the trusted computing block are located in the trusted partition; The trusted partition further includes: a root trusted partition; the encrypted mapping table of the memory is located in the root trusted partition; the graphics processor further includes: An untrusted computing block, located in the untrusted partition, is used to process non-confidential computing tasks using the untrusted virtual shared memory; Untrusted virtual shared memory and trusted virtual shared memory; The untrusted virtual shared memory is used to provide virtual shared memory for accessing untrusted computing blocks; and the untrusted virtual shared memory is mapped to untrusted physical shared memory. The trusted virtual shared memory is used to provide access to trusted computing blocks.

6. The graphics processor as described in claim 5, characterized in that, The root trust partition also includes: A hardware unique key providing module is used to provide a private key and generate an identity key. The private key is used to authenticate the firmware of the security management module and serves as the root of trust for the graphics processor. The identity key is used to authenticate the host. The key group receiving module is used to receive the keys for confidential data delivered by the host. The key set and the encrypted mapping table of the memory are located in the trusted storage module of the root trusted partition.

7. The graphics processor as described in claim 6, characterized in that, The trusted shared virtual memory includes a trusted data input / output buffer, which is used to receive confidential data from the confidential computing task or output the encrypted result processed by the confidential computing task.

8. The graphics processor as described in claim 7, characterized in that, The security management module includes: The access control unit is used to periodically traverse the encrypted mapping table of the memory and check whether the untrusted computing block has illegally accessed the trusted virtual shared memory; if so, it returns a security exception signal. A security proxy is used to establish a communication link between the graphics processor and the host.

9. The graphics processor as described in claim 8, characterized in that, When it is determined that the graphics processor is only processing non-confidential computing tasks, the trusted computing block does not allocate trusted virtual shared memory; the security management module is also used to: establish a first isolation boundary between the untrusted partition and the trusted partition, or establish the first isolation boundary, and establish a second isolation boundary between the host and the graphics processor; When it is determined that the graphics processor is only processing confidential computing tasks, the security management module is also used to establish the second isolation boundary and to establish a third isolation boundary between the trusted computing block and the root trust partition; When determining that the graphics processor is processing the confidential computing task and the non-confidential computing task, the security management module is also used to establish the first isolation boundary, the second isolation boundary, and the third isolation boundary; The untrusted virtual shared memory and the trusted virtual shared memory are isolated by the first isolation boundary.

10. The graphics processor as claimed in claim 9, characterized in that, The security management module is implemented using a security processor or by embedding an antifuse programmable logic array; the hardware unique key providing module is an antifuse medium memory.

11. A computer system, characterized in that, include: The graphics processor as described in any one of claims 1-10; The host is used to send the currently processed computing task to the graphics processor.

12. A resource allocation method, characterized in that, Applied to a graphics processor as described in any one of claims 1-10, the method comprises: When it is determined that the computing task currently being processed by the graphics processor is a confidential computing task, the corresponding resource usage is determined according to the task requirements of the confidential computing task. Based on the resource usage, at least the allocated trusted virtual shared memory corresponding to the trusted computing block is reallocated to obtain the adjusted trusted virtual shared memory; And, based on the adjusted trusted virtual shared memory, the corresponding mapped physical shared memory is determined, and the determined physical shared memory is configured to a safe state, so that the physical shared memory in the safe state is the adjusted trusted physical shared memory; The adjusted trusted virtual shared memory is used to process the confidential computing tasks, and the virtual shared memory that is not reallocated to trusted virtual shared memory is untrusted virtual shared memory, which is used to process non-confidential computing tasks.

13. The resource allocation method as described in claim 12, characterized in that, The step of determining the corresponding mapped physical shared memory based on the adjusted trusted virtual shared memory, and configuring the determined physical shared memory to a secure state, includes: Using the encrypted mapping table of memory, the physical shared memory corresponding to the adjusted trusted virtual shared memory is determined, and the security bits of the determined physical shared memory are configured to a secure state, so that the physical shared memory in the secure state is the adjusted trusted physical shared memory. The encrypted mapping table of the memory is used to record the mapping relationship between physical shared memory and virtual shared memory.

14. The resource allocation method as described in claim 13, characterized in that, The trusted computing block includes at least one allocated trusted computing unit; the resource usage includes computing resource usage and storage resource usage; the step of reallocating at least the allocated trusted virtual shared memory corresponding to the trusted computing block according to the resource usage to obtain adjusted trusted virtual shared memory includes: Based on the storage resource usage, the allocated trusted virtual shared memory base address and allocated trusted virtual shared memory capacity corresponding to the trusted computing block are reallocated to obtain the adjusted trusted virtual shared memory. And, based on the computing resource usage, the number of allocated trusted computing units included in the trusted computing block is reallocated to obtain trusted computing units with adjusted numbers; The trusted computing block processes the confidential computing task using the adjusted trusted virtual shared memory through a number of trusted computing units.

15. An electronic device, characterized in that, It includes a memory and a processor, the memory storing a program, and the processor calling the program stored in the memory to execute the resource allocation method as described in any one of claims 12-14.

16. A storage medium, characterized in that, The storage medium stores a program that, when executed, implements the resource allocation method as described in any one of claims 12-14.