WO2026007261A1 - Cxl模组、控制器、任务处理方法、介质和系统 - Google Patents
Cxl模组、控制器、任务处理方法、介质和系统Info
- Publication number
- WO2026007261A1 WO2026007261A1 PCT/CN2024/123926 CN2024123926W WO2026007261A1 WO 2026007261 A1 WO2026007261 A1 WO 2026007261A1 CN 2024123926 W CN2024123926 W CN 2024123926W WO 2026007261 A1 WO2026007261 A1 WO 2026007261A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- address
- task
- storage space
- address mapping
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Definitions
- This disclosure relates to, but is not limited to, the field of data access technology, and particularly to a CXL module, controller, task processing method, medium, and system.
- CXL Computer Express Link
- PCIe Peripheral Component Interconnect Express
- Embodiments of this disclosure provide a CXL module, a controller, a task processing method, a medium, and a system.
- embodiments of this disclosure provide a CXL module, including a controller and a memory chip connected to the controller.
- the memory chip is configured with a shared storage space accessible to both the controller and a host, a first storage space accessible only to the controller, and a second storage space accessible only to the host.
- the controller is configured to: establish a first address mapping relationship from a virtual address to an external physical address corresponding to the shared storage space; when performing a computing task, convert the virtual address carried in a data access instruction to an external physical address according to the first address mapping relationship, and access the corresponding data according to the converted external physical address; establish a second address mapping relationship from the virtual address to a memory address in the first storage space; when performing a computing task, convert the virtual address carried in a data access instruction to a memory address according to the second address mapping relationship, and access the corresponding data according to the converted memory address; receive an external access instruction sent by the host, the external access instruction carrying an external physical address to be accessed; and access any one or more of the second storage space and the shared storage space according to the external physical address to be accessed.
- the CXL module includes memory connected to the controller.
- the memory is configured with a shared storage space accessible to both the controller and the host, a first storage space accessible only to the controller, and a second storage space accessible only to the host.
- the controller includes a processor and a virtual memory manager.
- the virtual memory manager is configured to: convert a virtual address carried in a data access instruction into an external physical address based on a first address mapping relationship from a virtual address to an external physical address corresponding to the shared storage space; and convert the virtual address in the data access instruction into a memory address based on a second address mapping relationship from a virtual address to a memory address in the first storage space.
- the processor is configured to: establish the first address mapping relationship; access corresponding data based on the external physical address converted by the virtual memory manager when executing a computation task; establish the second address mapping relationship; access corresponding data based on the memory address converted by the virtual memory manager when executing a computation task; receive an external access instruction sent by the host, the external access instruction carrying an external physical address to be accessed; and access any one or more of the second storage space and the shared storage space based on the external physical address to be accessed.
- the CXL module includes a controller and memory connected to the controller.
- the memory is configured to allow access by the controller and the host.
- the method comprises: establishing a first address mapping relationship from a virtual address to an external physical address corresponding to the shared storage space, and a second address mapping relationship from a virtual address to a memory address in the first storage space; when executing a computing task, converting the virtual address carried in a data access instruction to an external physical address according to the first address mapping relationship, and accessing the corresponding data according to the converted external physical address; converting the virtual address carried in the data access instruction to a memory address according to the second address mapping relationship, and accessing the corresponding data according to the converted memory address; receiving an external access instruction sent by the host, the external access instruction carrying an external physical address to be accessed; and accessing any one or more of the second storage space and the shared storage space according to the external physical address to be accessed.
- this disclosure provides a non-transient computer storage medium storing a computer program, which, when executed by a processor, implements the task processing method described above.
- this disclosure provides a computer system including a host and the CXL module in the above embodiments.
- the host communicates with the CXL module through the CXL interface to realize the discovery, configuration and data transmission of the CXL module.
- Figure 1 is a schematic diagram of the structure of an embodiment of the CXL module of this disclosure
- FIG. 2 is a schematic diagram of an embodiment of the CXL module disclosed herein;
- Figure 5 is a schematic diagram of the structure of an embodiment of the controller disclosed herein;
- Figure 6 is a schematic diagram of the structure of an embodiment of the controller of this disclosure.
- Figure 7 is a flowchart illustrating an embodiment of the task processing method of this disclosure.
- Figure 8 is a flowchart illustrating the process of establishing a first address mapping relationship in one embodiment of the task processing method of this disclosure
- Figure 9 is a flowchart illustrating the process of establishing a second address mapping relationship in one embodiment of the task processing method of this disclosure.
- Figure 11 is a flowchart illustrating the process of terminating a task in one embodiment of the task processing method of this disclosure
- Figure 12 is a schematic diagram of the structure of an embodiment of the computer system disclosed herein.
- this embodiment of the present disclosure provides a CXL module, which includes a controller 110 and a memory 120 connected to the controller 110.
- the memory 120 may include, for example, multiple DRAM (Dynamic Random Access Memory) chips.
- the memory 120 is configured with a shared storage space accessible to both the controller 110 and the host, a first storage space accessible only to the controller, and a second storage space accessible only to the host.
- controller 110 can be a control chip or integrated into a memory chip.
- Controller 110 may be equipped with a CXL interface based on the CXL protocol, allowing the host to interact with controller 110 via the CXL interface.
- the host CPU can send a memory access instruction to controller 110 to access data in memory 120.
- the address information involved in the memory access instruction is the external physical address, that is, the address carried in the message sent by the host CPU to the CXL module through the address bus.
- Controller 110 may also be equipped with a DDR (Double Data Rate) controller for managing memory 120, for example, accessing data in memory 120 based on memory addresses. For example, based on the CXL.io protocol, the host CPU can also send task instructions or other control instructions to the controller 110.
- DDR Double Data Rate
- Virtual memory technology allows applications to read and write data using virtual addresses.
- the host CPU can translate virtual addresses into physical addresses in real time, thus managing the memory usage of each task and ensuring sufficient storage space for each task. They won't trample on each other.
- virtual memory technology provides developers with a unified programming environment, allowing multiple applications to load and run dynamically.
- virtual addresses involved in host instructions can only be translated into physical addresses by the host CPU's Memory Management Unit (MMU). This process consumes host computing resources, increases host load, is time-consuming, and poses certain security risks.
- MMU Memory Management Unit
- the data access instruction is generated by the controller 110 and is used to access data in memory 120.
- the controller 110 first determines the virtual address corresponding to the data to be accessed, then converts the virtual address into an external physical address or a memory address, and then accesses the corresponding data in memory 120 according to the external physical address or memory address. This realizes the conversion between virtual address and external physical address or memory address within the CXL module. In this way, the controller 110 can manage the data storage of multiple tasks through virtual addresses, avoid mutual interference, and shorten the response time of the CXL module and the host in co-processing tasks.
- the shared storage space can be accessed by the controller 110 and the host.
- the host When the host needs to access data in the shared storage space, it can send a memory access command to the controller 110 based on the CXL.mem protocol or the CXL.cache protocol.
- the address information carried in the memory access command is the external physical address. Therefore, when the controller accesses data, it converts the virtual address to the external physical address and then accesses the corresponding data based on the external physical address, which makes it easier to manage the consistency of data in the shared storage space.
- the controller can generate data access instructions carrying virtual addresses as needed, translate these virtual addresses into memory addresses, and use them to access data in the first storage space. For example, it can read the raw data of the computation task from the first storage space, or store intermediate data generated during task execution in the first storage space. In this way, the controller can manage the storage of raw and intermediate data related to the computation task in the first storage space based on virtual addresses.
- the controller can store the processing result in a shared storage space so that the host can read the processing result from the shared storage space.
- the controller may also establish a third address mapping relationship from the virtual address to the corresponding external physical address of the first storage space.
- the controller When the controller needs to access data in the first storage space, it can first translate the virtual address into an external physical address according to the third address mapping relationship, and then translate the external physical address into the memory address of the first storage space.
- the data required to perform the computing task is stored in the first storage space.
- this can reduce the storage resources occupied by the computing task in the shared storage space and the number of addresses recorded in the first address mapping relationship, thereby reducing the storage resources occupied by the first address mapping relationship inside the CXL module and in the host.
- the second address mapping relationship since the first storage space is only accessible to the controller, the second address mapping relationship only needs to be stored inside the CXL module and does not need to be stored in the host, thereby reducing the storage pressure on the host.
- the host CPU can instruct the processor of controller 110 to create a computing task via a task instruction.
- This task instruction can include the virtual address corresponding to the computing task and the size of the required storage space.
- Controller 110 can allocate a storage area for the computing task in the shared storage space according to the task instruction and establish a first address mapping relationship between the external physical address and the virtual address of this storage area.
- controller 110 can generate data access instructions based on the virtual address corresponding to the computing task to access the data needed during execution. For example, data generated during task execution and the processing results obtained after completion can be stored in the shared storage space, and the host can access this data through external memory access instructions. In this way, controller 110 can manage the data storage of computing tasks based on virtual addresses, avoiding data conflicts between multiple tasks in a multi-tasking scenario.
- the CXL module controller can establish a first address mapping relationship from virtual addresses to the corresponding external physical addresses in the shared storage space, and a second address mapping relationship from virtual addresses to the memory addresses in the first storage space. This allows the controller to convert the virtual addresses carried in data access instructions to external physical addresses based on the first address mapping relationship, and to convert them to memory addresses based on the second address mapping relationship. The controller can then access the corresponding data based on the converted external physical addresses and memory addresses. Furthermore, it can access any one or more of the second storage space and the shared storage space based on the external physical address to be accessed carried in the external access instruction. This not only improves the storage space utilization of the CXL module but also enables memory access processing based on virtual addresses without relying on the host operating system.
- the first address mapping relationship includes a first address mapping table corresponding to each computing task; and the controller is configured to establish a first address mapping relationship from virtual addresses to external physical addresses corresponding to shared storage space, including: receiving a first task allocation instruction sent by the host, the first task allocation instruction including an identifier of the task to be allocated, a first virtual address corresponding to the task to be allocated, and the size of the storage space required by the task to be allocated; determining, according to the first task allocation instruction, a storage area corresponding to the task to be allocated in the shared storage space, and determining a first address mapping table between the external physical address of the storage area and the first virtual address; determining the correspondence between the first address mapping table and the identifier of the task to be allocated; and sending the first address mapping table to the host.
- the controller can process multiple computing tasks and generate a first address mapping table for each computing task according to the host's first task allocation instruction.
- the first task allocation instruction is used to instruct the controller to allocate storage areas for the tasks to be allocated in the shared storage space and determine the first address mapping table.
- Both the CXL module and the host store the first address mapping table corresponding to each computing task so that the shared storage space can be accessed subsequently according to the virtual address and external physical address recorded in the first address mapping table.
- the second address mapping relationship includes a second address mapping table corresponding to each computing task; and the controller is configured to establish a second address mapping relationship from virtual addresses to memory addresses in the first storage space, including: receiving a second task allocation instruction sent by the host, the second task allocation instruction including an identifier of the task to be allocated, a second virtual address corresponding to the task to be allocated, and the size of the storage space required by the task to be allocated; determining, according to the second task allocation instruction, a storage region corresponding to the task to be allocated in the first storage space, and determining a second address mapping table between the memory address of the storage region and the second virtual address; and determining the correspondence between the second address mapping table and the identifier of the task to be allocated.
- the controller can generate a second address mapping table for each computing task according to the host's second task allocation instruction.
- the second task allocation instruction instructs the controller to allocate storage areas for the tasks to be allocated in the first storage space and determine the second address mapping table.
- the controller can access the first storage space according to the virtual address and memory address recorded in the second address mapping table corresponding to each computing task.
- each computing task can correspond to both a first address mapping table and a second address mapping table, which facilitates the controller to manage the data storage of the execution process and processing results of the computing task according to the virtual address.
- the memory 210 of the CXL module includes a shared storage space 211, a first storage space 212, and a second storage space 213.
- the controller 220 can receive task execution instructions sent by the host, the task execution instructions including an identifier of the computing task to be executed.
- the controller 220 can complete the virtual address translation based on the identifier of the computing task to be executed.
- This translation process may include the translation of the virtual address to the external physical location of the shared storage space and the translation of the virtual address to the memory address of the first storage space.
- the translation from virtual address to external physical location of shared storage space can be performed in the following manner: based on the execution...
- the identifier of the computing task is determined in the first address mapping relationship, and the target first address mapping table corresponding to the computing task to be executed is determined; the external physical address corresponding to the virtual address carried in the data access instruction is searched in the target first address mapping table.
- the translation from virtual address to memory address in the first storage space can be performed as follows: Based on the identifier of the computation task to be executed, determine the target second address mapping table corresponding to the computation task to be executed in the second address mapping relationship; and look up the memory address corresponding to the virtual address carried in the data access instruction in the target second address mapping table.
- controller 220 can load multiple executable computing tasks and manage the data storage of these tasks through virtual addresses corresponding to each task.
- the host can send a task execution command to controller 220 based on the CXL.io protocol.
- Controller 220 can switch the currently executing computing task to the task to be executed based on the identifier of the computing task to be executed carried in the task execution command, and switch the currently used address mapping table to the target first address mapping table and target second address mapping table corresponding to that identifier.
- controller 220 can access data in the shared storage space based on the target first address mapping table, for example, storing processing results in the shared storage space; it can also access the first storage space based on the target second address mapping table, for example, storing intermediate data generated during the execution of the computing task in the first storage space.
- the controller 220 when the controller 220 receives an external access instruction sent by the host, it can access any one or more of the second storage space and the shared storage space according to the external physical address to be accessed carried in the external access instruction.
- the controller can determine the target first address mapping table and the target second address mapping table corresponding to the task to be executed based on the identifier of the task to be executed, so as to complete the translation from virtual address to external physical address and memory address. This helps to improve the processing efficiency of the controller in multi-tasking scenarios.
- the memory 310 includes a shared storage space 311, a first storage space 312, and a second storage space 313.
- the controller 320 is further provided with a cache 321, configured to store data in the shared storage space 311; and, when the controller 320 accesses data according to an external physical address, it can preferentially access the data in the cache 321 according to the translated external physical address; if there is no data to be accessed in the cache 321, the translated external physical address is translated into a memory address, and the data in the shared storage space 311 is accessed according to the memory address.
- controller 320 can load data from shared storage space 311 into cache 321 and record the correspondence between the external physical address of the data and the cache address.
- controller 320 can look up the external physical address in the correspondence. If the external physical address exists in the correspondence, the data in cache 321 is accessed according to the cache address corresponding to the external physical address; if the external physical address does not exist in the correspondence, the external physical address is translated into a memory address, and the data in shared storage space 311 is accessed according to the memory address.
- the time taken for the controller to access data in the shared storage space can be shortened, which helps to improve the efficiency of data access within the CXL module.
- the cache 321 is also configured to store data in the first storage space 312; and, when the controller 320 performs a computing task, it can preferentially access the data in the cache 321 according to the converted memory address; if there is no data to be accessed in the cache 321, it accesses the data in the first storage space 312 according to the converted memory address.
- the controller 320 can load data from the first storage space 312 into the cache 321 and record the correspondence between the memory address and the cache address of the data.
- the controller 320 can look up the memory address in the correspondence. If the memory address exists in the correspondence, the data in the cache 321 is accessed according to the cache address corresponding to that memory address; if the memory address does not exist in the correspondence, the data in the first storage space 312 is accessed according to that memory address.
- storing the data in the first storage space in the cache allows for priority access to the data in the cache, which can shorten the time it takes for the controller to access the data in the first storage space and help to further improve the efficiency of data access within the CXL module.
- the controller is further configured to: in response to receiving a task termination instruction sent by the host, determine a first address mapping table and a second address mapping table corresponding to the task to be terminated based on the identifier of the task to be terminated carried in the task termination instruction; release the storage space occupied by the task to be terminated in the shared storage space based on the external physical address in the first address mapping table corresponding to the task to be terminated; release the storage space occupied by the task to be terminated in the first storage space based on the memory address in the second address mapping table corresponding to the task to be terminated; and release the storage space occupied by the first address mapping table and the second address mapping table corresponding to the task to be terminated.
- the controller can terminate the corresponding computing task according to the task termination instruction sent by the host and release the resources occupied by the computing task, such as the data stored by the computing task in the shared storage space and the first storage space, as well as the storage resources occupied by the first address mapping table and the second address mapping table corresponding to the computing task, thereby improving the memory utilization rate in the CXL module.
- the memory 410 includes a shared storage space 411, a first storage space 412, and a second storage space 413 accessible only by the host.
- the controller 420 is further configured to: receive an external access instruction sent by the host, the external access instruction carrying an external physical address to be accessed; and access any one or more of the second storage space 413 and the shared storage space 411 according to the external physical address to be accessed.
- the memory space of the CXL module is divided into a shared storage space, a first storage space, and a second storage space.
- Each storage space has different permissions and functions, which helps to improve the memory utilization of the CXL module.
- the CXL module also includes flash memory 430; and the controller 420 is also configured to: replace cold data in memory 410 into flash memory 430, and record the correspondence between the external physical address of the cold data and the flash memory address.
- cold data refers to data that is accessed less frequently.
- the controller can replace cold data in flash memory to reduce the storage pressure on the memory.
- FIG. 5 shows a schematic diagram of an embodiment of the controller of this disclosure, which is applied to the CXL module in any of the above embodiments.
- the CXL module includes a memory 520 connected to the controller 510.
- the memory 520 is provided with a shared storage space 521 accessible by the controller 510 and the host, a first storage space 522 accessible only by the controller, and a second storage space 523 accessible only by the host.
- the controller 510 includes a processor 511 and a virtual memory manager (Memory Management Unit, MMU) 512.
- MMU virtual memory manager
- the virtual memory manager 512 is configured to: convert the virtual address carried in the data access instruction into an external physical address according to a first address mapping relationship from the virtual address to the external physical address corresponding to the shared storage space 521; and convert the virtual address in the data access instruction into a memory address according to a second address mapping relationship from the virtual address to the memory address of the first storage space.
- the processor 511 is configured to: establish a first address mapping relationship; access corresponding data according to the external physical address translated by the virtual memory manager when executing a computing task; establish a second address mapping relationship; access corresponding data according to the memory address translated by the virtual memory manager when executing a computing task; receive an external access instruction sent by the host, the external access instruction carrying the external physical address to be accessed; and access any one or more of the second storage space 523 and the shared storage space 521 according to the external physical address to be accessed.
- processor 511 serving as a computing resource for controller 510, can be one or more CPU cores or a data processing accelerator, executing corresponding computing tasks by running applications. During task execution, processor 511 can generate data access instructions as needed, carrying the virtual address corresponding to the data to be accessed. Processor 511 sends the data access instructions to virtual memory manager 512, which can then manage the virtual memory. The processor 512 translates the virtual address into an external physical address according to the first address mapping relationship, or translates the virtual address into a memory address according to the second address mapping relationship, so that the processor 511 can access the corresponding data according to the external physical address or memory address.
- this portion of data can be stored in the first storage space 522.
- the controller 510 executes a computing task, it can generate a data access instruction carrying a virtual address as needed, and then translate the virtual address into a memory address to access the data in the first storage space 522. For example, it can read the original data of the computing task from the first storage space 522 or store the intermediate data generated during the task execution in the first storage space. In this way, the controller can manage the storage of the original data and intermediate data involved in the computing task in the first storage space based on the virtual address.
- this can reduce the storage resources occupied by the computing task in the shared storage space and the number of addresses recorded in the first address mapping relationship, thereby reducing the storage resources occupied by the first address mapping relationship inside the CXL module and in the host.
- the second address mapping relationship since the first storage space is only accessible to the controller, the second address mapping relationship only needs to be stored inside the CXL module and does not need to be stored in the host, thereby further reducing the storage pressure on the host.
- the controller 510 when the controller 510 receives an external access instruction sent by the host, it can access any one or more of the second storage space 523 and the shared storage space 521 according to the external physical address to be accessed carried in the external access instruction.
- the memory space of the CXL module is divided into a shared storage space, a first storage space, and a second storage space.
- Each storage space has different permissions and functions. This not only helps improve the memory utilization of the CXL module but also enables memory access processing based on virtual addresses without relying on the host's operating system. On the one hand, this shortens the response time of collaborative processing tasks between the CXL module and the host, thus improving the efficiency and reliability of such tasks.
- having the CXL module perform the translation from virtual addresses to external physical addresses instead of the host reduces the load on the host's virtual memory manager. Setting up a virtual memory manager in the controller allows for internal translation of virtual addresses to external physical addresses or memory addresses, further shortening the response time of collaborative processing tasks between the CXL module and the host, and improving their efficiency and reliability.
- the first address mapping relationship includes a first address mapping table corresponding to each computing task; and the processor is configured to establish the first address mapping relationship, including: receiving a first task allocation instruction sent by a host, the first task allocation instruction including an identifier of a task to be allocated, a first virtual address corresponding to the task to be allocated, and the size of the storage space required by the task to be allocated; determining, according to the first task allocation instruction, a storage region corresponding to the task to be allocated in a shared storage space, and determining a first address mapping table between the external physical address of the storage region and the first virtual address; determining the correspondence between the first address mapping table and the identifier of the task to be allocated; and sending the first address mapping table to the host.
- the processor can handle multiple computing tasks and generate a first address mapping table for each computing task according to the host's first task allocation instruction.
- the first task allocation instruction is used to instruct the controller to allocate storage areas for the tasks to be allocated in the shared storage space and determine the first address mapping table.
- Both the CXL module and the host store the first address mapping table corresponding to each computing task so that the shared storage space can be accessed subsequently according to the virtual address and external physical address recorded in the first address mapping table.
- the second address mapping relationship includes a second address mapping table corresponding to each computing task; and the processor is configured to establish the second address mapping relationship, including: receiving a second task allocation instruction sent by the host, the second task allocation instruction including an identifier of the task to be allocated, a second virtual address corresponding to the task to be allocated, and the size of the storage space required by the task to be allocated; determining, according to the second task allocation instruction, a storage region corresponding to the task to be allocated in a first storage space, and determining a second address mapping table between the memory address of the storage region and the second virtual address; and determining the correspondence between the second address mapping table and the identifier of the task to be allocated.
- the processor can generate a first task for each computing task according to the host's second task allocation instruction.
- a second address mapping table instructs the processor to allocate storage areas in the first storage space for the tasks to be allocated and to determine the second address mapping table.
- the processor can access the first storage space according to the virtual address and memory address recorded in the second address mapping table corresponding to each computation task.
- each computation task can correspond to both a first address mapping table and a second address mapping table, which facilitates the processor to manage the data storage of the execution process and processing results of the computation task according to the virtual address.
- the processor is further configured to: receive a task execution instruction sent by a host, the task execution instruction including an identifier of a computational task to be executed; determine a target first address mapping table corresponding to the computational task to be executed in a first address mapping relationship based on the identifier of the computational task to be executed, and determine a target second address mapping table corresponding to the computational task to be executed in a second address mapping relationship;
- the virtual memory manager is configured to convert a virtual address carried in a data access instruction into an external physical address according to the first address mapping relationship from virtual address to external physical address corresponding to shared storage space, including: searching for the external physical address corresponding to the virtual address carried in the data access instruction in the target first address mapping table;
- the virtual memory manager is configured to convert a virtual address carried in a data access instruction into a memory address according to the second address mapping relationship, including: searching for the memory address corresponding to the virtual address carried in the data access instruction in the target second address mapping table.
- the processor can determine the target first address mapping table and the target second address mapping table corresponding to the task to be executed based on the identifier of the task to be executed. Then, the virtual memory manager completes the translation from virtual address to external physical address and memory address. This helps improve the processing efficiency of the controller in multi-tasking scenarios.
- the controller includes a cache 610, an address translator 620, a processor 630, and a virtual memory manager 640.
- the controller also includes a cache 610 and an address translator 620.
- the cache 610 is configured to store data in the shared memory space.
- the address translator 620 is configured to translate external physical addresses into memory addresses.
- the processor 630 can preferentially access data in the cache based on the external physical address translated by the virtual memory manager 640. If the data to be accessed is not in the cache 610, the translated external physical address is sent to the address translator 620, and the data in the shared memory space is accessed based on the memory address translated by the address translator 620.
- the address translator 620 is used to translate external physical addresses into memory addresses.
- the external access instructions sent by the host to the CXL module based on the CXL.mem or CXL.cache protocol carry external physical addresses.
- the controller can use the address translator 620 to translate these external physical addresses into memory addresses to complete the host's memory access operations.
- the address translator 620 can also translate the external physical addresses output by the virtual memory manager 640 into memory addresses to complete the memory access operations when the processor 630 performs computational tasks.
- the time spent by the processor accessing data in the shared storage space can be shortened, which helps to improve the efficiency of data access within the CXL module.
- cache 610 is further configured to store data in the first storage space; and processor 630 can preferentially access data in cache 610 according to the memory address converted by virtual memory manager 640; if there is no data to be accessed in cache 610, data in the first storage space is accessed according to the converted memory address.
- storing the data in the first storage space in the cache allows for priority access to the data in the cache, which can shorten the time it takes for the processor to access the data in the first storage space and help to further improve the efficiency of data access within the CXL module.
- the processor is further configured to: in response to receiving a task termination instruction sent by the host, determine a first address mapping table and a second address mapping table corresponding to the task to be terminated based on the identifier of the task to be terminated carried in the task termination instruction; and release the task to be terminated based on the external physical address in the first address mapping table corresponding to the task to be terminated.
- the processor can terminate the corresponding computing task according to the task termination instruction sent by the host and release the resources occupied by the computing task, such as the data stored by the computing task in the shared storage space and the first storage space, as well as the storage resources occupied by the first address mapping table and the second address mapping table corresponding to the computing task. This improves the memory utilization rate in the CXL module.
- the CXL module further includes flash memory; and the processor is further configured to: replace cold data in memory with flash memory, and record the correspondence between the external physical address of the cold data and the flash memory address.
- cold data refers to data with a low access frequency, such as data with an access frequency lower than a preset frequency threshold.
- the controller can replace cold data in flash memory to reduce the storage pressure on the memory.
- the CXL module includes a controller and memory connected to the controller.
- the memory is configured with a shared storage space that allows access by the controller and the host, a first storage space that allows access only by the controller, and a second storage space that allows access only by the host, as shown in FIG7.
- the method includes the following steps 710 to 750.
- Step 710 Establish a first address mapping relationship from virtual address to the corresponding external physical address in shared storage space and a second address mapping relationship from virtual address to memory address in the first storage space.
- Step 720 When executing the computing task, the virtual address carried in the data access instruction is converted into an external physical address according to the first address mapping relationship, and the corresponding data is accessed according to the converted external physical address.
- Step 730 Convert the virtual address carried in the data access instruction into a memory address according to the second address mapping relationship, and access the corresponding data according to the converted memory address.
- Step 740 Receive the external access command sent by the host.
- the external access instruction carries the external physical address to be accessed.
- Step 750 Access one or more of the second storage space and the shared storage space based on the external physical address to be accessed.
- a first address mapping relationship can be established from virtual addresses to the corresponding external physical addresses in the shared storage space
- a second address mapping relationship can be established from virtual addresses to the memory addresses in the first storage space.
- This not only improves the utilization rate of the CXL module's storage space but also enables memory access processing based on virtual addresses without relying on the host's operating system. On one hand, this shortens the response time of collaborative processing tasks between the CXL module and the host, helping to improve the efficiency and reliability of collaborative processing tasks between the CXL module and the host. On the other hand, having the CXL module perform the virtual address to external physical address conversion instead of the host reduces the load on the host's virtual memory manager.
- the process includes steps 810 to 840.
- Step 810 Receive the first task allocation instruction sent by the host.
- the first task allocation instruction includes the identifier of the task to be allocated, the first virtual address corresponding to the task to be allocated, and the size of the storage space required by the task to be allocated.
- Step 820 According to the first task allocation instruction, determine the storage area corresponding to the task to be allocated in the shared storage space, and determine the first address mapping table between the external physical address and the first virtual address of the storage area.
- Step 830 Determine the correspondence between the first address mapping table and the identifier of the task to be assigned.
- Step 840 Send the first address mapping table to the host.
- the controller of the CXL module can handle multiple computing tasks, and the first address mapping relationship includes a first address mapping table corresponding to each computing task.
- a first address mapping table can be generated for each computing task according to the host's first task allocation instruction.
- the first task allocation instruction instructs the controller to allocate storage areas for the tasks to be allocated in the shared storage space and determine the first address mapping table.
- Both the CXL module and the host store the first address mapping table corresponding to each computing task so that the shared storage space can be accessed subsequently based on the virtual address and external physical address recorded in the first address mapping table.
- the process includes steps 910 to 930.
- Step 910 Receive the second task allocation instruction sent by the host.
- the second task allocation instruction includes the identifier of the task to be allocated, the second virtual address corresponding to the task to be allocated, and the size of the storage space required by the task to be allocated.
- Step 920 According to the second task allocation instruction, determine the storage area corresponding to the task to be allocated in the first storage space, and determine the second address mapping table between the memory address of the storage area and the second virtual address.
- Step 930 Determine the correspondence between the second address mapping table and the identifier of the task to be assigned.
- the second address mapping relationship includes a second address mapping table corresponding to each computing task.
- the controller can generate a second address mapping table for each computing task based on the host's second task allocation instruction.
- the second task allocation instruction instructs the controller to allocate storage areas for the tasks to be allocated in the first storage space and determine the second address mapping table.
- the controller can access the first storage space based on the virtual address and memory address recorded in the second address mapping table corresponding to each computing task.
- each computing task can correspond to a first address mapping table and a second address mapping table, which makes it easier for the controller to manage the execution process and data storage of the computing task based on the virtual address.
- FIG10 shows a flowchart of another embodiment of the task processing method of the present disclosure. As shown in FIG10, the process includes the following steps 1010 to 1050.
- Step 1010 Receive the task execution instruction sent by the host.
- the task execution instruction includes an identifier for the computational task to be executed.
- Step 1020 Based on the identifier of the computation task to be executed, determine the target first address mapping table corresponding to the computation task to be executed in the first address mapping relationship, and determine the target second address mapping table corresponding to the computation task to be executed in the second address mapping relationship.
- Step 1030 Search for the external physical address corresponding to the virtual address carried in the data access instruction in the target first address mapping table.
- Step 1040 Search for the memory address corresponding to the virtual address carried in the data access instruction in the target second address mapping table.
- Step 1050 Access the corresponding data based on the obtained external physical address and memory address.
- the target first location corresponding to the task to be executed can be determined based on the identifier of the task to be executed.
- the system uses a virtual address mapping table and a target secondary address mapping table to translate virtual addresses into external physical addresses and memory addresses. This helps improve the controller's processing efficiency in multi-tasking scenarios.
- the controller is further provided with a cache configured to store data in the shared storage space; and step 720 above may include: prioritizing access to data in the cache based on the translated external physical address; if the data to be accessed is not in the cache, translating the translated external physical address into a memory address, and accessing the data in the shared storage space based on the memory address.
- the time taken for the controller to access data in the shared storage space can be shortened, which helps to improve the efficiency of data access within the CXL module.
- the cache is further configured to store data in the first storage space; and step 730 above may include: accessing data in the cache firstly according to the converted memory address; and accessing data in the first storage space according to the converted memory address if there is no data to be accessed in the cache.
- storing the data in the first storage space in the cache allows for priority access to the data in the cache, which can shorten the time it takes for the controller to access the data in the first storage space and help to further improve the efficiency of data access within the CXL module.
- FIG 11 shows a flowchart of terminating a task in one embodiment of the task processing method of this disclosure, the process includes steps 1110 to 1140.
- Step 1110 In response to receiving a task termination instruction from the host, determine the first address mapping table and the second address mapping table corresponding to the task to be terminated based on the identifier of the task to be terminated carried in the task termination instruction.
- Step 1120 Release the storage space occupied by the task to be terminated in the shared storage space according to the external physical address in the first address mapping table corresponding to the task to be terminated.
- Step 1130 Release the storage space occupied by the task to be terminated in the first storage space according to the memory address in the second address mapping table corresponding to the task to be terminated.
- Step 1140 Release the storage space occupied by the first address mapping table and the second address mapping table corresponding to the task to be terminated.
- the corresponding computing task can be terminated according to the task termination instruction sent by the host, and the resources occupied by the computing task can be released, such as the data stored by the computing task in the shared storage space and the first storage space, as well as the storage resources occupied by the first address mapping table and the second address mapping table corresponding to the computing task, thereby improving the memory utilization rate in the CXL module.
- This disclosure also provides a non-transient computer storage medium storing a computer program, which, when executed by a processor, implements the task processing method described above.
- the computer system includes a host 1210 and a CXL module 1220 in any of the above embodiments.
- the host 1210 communicates with the CXL module 1220 through the CXL interface to realize the discovery, configuration and data transmission of the CXL module 1220.
- the CXL module 1220 can manage the storage of data involved in computing tasks in memory according to virtual addresses.
- the CXL module 1220 can complete the virtual address translation process internally. On the one hand, this avoids the need to implement virtual address translation through the host's operating system, which can shorten the task response time.
- the data storage of multiple tasks in the CXL module based on virtual addresses it can avoid the mutual trampling of storage resources of multiple tasks.
- computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules or other data).
- Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disc (DVD) or other optical disc storage, magnetic cartridges, magnetic tape, disk storage or other magnetic storage devices, or any other medium that can be used to store desired information and is accessible to a computer.
- communication media typically contain computer-readable instructions, data structures, program modules, or other data in modulated data signals such as carrier waves or other transmission mechanisms, and may include any information delivery medium.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
一种CXL模组、控制器、任务处理方法、介质和系统,所述CXL模组包括控制器以及与控制器连接的内存,内存设置有允许控制器和主机访问的共享存储空间、仅允许控制器访问的第一存储空间以及仅允许主机访问的第二存储空间;控制器被配置为:建立虚拟地址到共享存储空间对应的外部物理地址的第一地址映射关系以及虚拟地址到第一存储空间的内存地址的第二地址映射关系;在执行计算任务时,根据第一地址映射关系将数据访问指令中携带的虚拟地址转换为外部物理地址,并根据外部物理地址访问对应的数据;根据第二地址映射关系将数据访问指令中携带的虚拟地址转换为内存地址,并根据内存地址访问对应的数据。
Description
本申请要求于2024年07月05日提交中国专利局、申请号为202410904395.1、发明名称为“CXL模组、控制器、任务处理方法、介质和系统”的中国专利申请的优先权,其内容应理解为通过引用的方式并入本申请中。
本公开实施例涉及但不限于数据访问技术领域,尤指一种CXL模组、控制器、任务处理方法、介质和系统。
CXL(Compute Express Link,计算快速链接)是一种基于PCIe(Peripheral Component Interconnect Express,外围组件互联)物理层的内存接口协议,可以实现多个计算节点的共享,使得应用层软件可以像读写主机内存一样地读写CXL模组中的内存。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。本公开实施例提供了一种CXL模组、控制器、任务处理方法、介质和系统。
第一方面,本公开实施例提供了一种CXL模组,包括控制器以及与控制器连接的内存芯片,内存设置有允许控制器和主机访问的共享存储空间、仅允许控制器访问的第一存储空间以及仅允许主机访问的第二存储空间;控制器被配置为:建立虚拟地址到共享存储空间对应的外部物理地址的第一地址映射关系;在执行计算任务时,根据第一地址映射关系将数据访问指令中携带的虚拟地址转换为外部物理地址,并根据转换得到的外部物理地址访问对应的数据;建立虚拟地址到第一存储空间的内存地址的第二地址映射关系;在执行计算任务时,根据第二地址映射关系将数据访问指令中携带的虚拟地址转换为内存地址,并根据转换得到的内存地址访问对应的数据;接收主机发送的外部访问指令,外部访问指令中携带有待访问的外部物理地址;根据待访问的外部物理地址访问第二存储空间和共享存储空间中的任意一个或多个。
第二方面,本公开实施例提供了一种控制器,应用于上述实施例中的CXL模组,CXL模组包括与控制器连接的内存,内存设置有允许控制器和主机访问的共享存储空间、仅允许控制器访问的第一存储空间以及仅允许主机访问的第二存储空间,控制器包括处理器和虚拟内存管理器;其中,虚拟内存管理器被配置为:根据虚拟地址到共享存储空间对应的外部物理地址的第一地址映射关系,将数据访问指令中携带的虚拟地址转换为外部物理地址;根据虚拟地址到第一存储空间的内存地址的第二地址映射关系,将数据访问指令中的虚拟地址转换为内存地址;处理器被配置为:建立第一地址映射关系;在执行计算任务时,根据虚拟内存管理器转换得到的外部物理地址访问对应的数据;建立第二地址映射关系;在执行计算任务时,根据虚拟内存管理器转换得到的内存地址访问对应的数据;接收主机发送的外部访问指令,外部访问指令中携带有待访问的外部物理地址;根据待访问的外部物理地址访问第二存储空间和共享存储空间中的任意一个或多个。
第三方面,本公开实施例提供了一种任务处理方法,应用于上述实施例中的CXL模组,CXL模组包括控制器以及与控制器连接的内存,内存设置有允许控制器和主机访问
的共享存储空间、仅允许控制器访问的第一存储空间以及仅允许主机访问的第二存储空间,该方法包括:建立虚拟地址到共享存储空间对应的外部物理地址的第一地址映射关系以及虚拟地址到第一存储空间的内存地址的第二地址映射关系;在执行计算任务时,根据第一地址映射关系将数据访问指令中携带的虚拟地址转换为外部物理地址,并根据转换得到的外部物理地址访问对应的数据;根据第二地址映射关系将数据访问指令中携带的虚拟地址转换为内存地址,并根据转换得到的内存地址访问对应的数据;以及,接收主机发送的外部访问指令,外部访问指令中携带有待访问的外部物理地址;根据待访问的外部物理地址访问第二存储空间和共享存储空间中的任意一个或多个。
第四方面,本公开实施例提供了一种非瞬态计算机存储介质,计算机存储介质存储有计算机程序,计算机程序被处理器执行时实现上述实施例中的任务处理方法。
第五方面,本公开实施例提供了一种计算机系统,包括主机和上述实施例中的CXL模组,主机通过CXL接口与CXL模组通信,实现对CXL模组的发现、配置和数据传输。
在阅读并理解了附图和详细描述后,可以明白其他方面。
附图概述
附图用来提供对本公开技术方案的理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开的技术方案,并不构成对本公开技术方案的限制。
图1为本公开的CXL模组的一个实施例的结构示意图;
图2为本公开的CXL模组的一个实施例的原理示意图;
图3为本公开的CXL模组的一个实施例的结构示意图;
图4为本公开的CXL模组的一个实施例的结构示意图;
图5为本公开的控制器的一个实施例的结构示意图;
图6为本公开的控制器的一个实施例的结构示意图;
图7为本公开的任务处理方法的一个实施例的流程示意图;
图8为本公开的任务处理方法的一个实施例中建立第一地址映射关系的流程示意图;
图9为本公开的任务处理方法的一个实施例中建立第二地址映射关系的流程示意图;
图10为本公开的任务处理方法的又一个实施例的流程示意图;
图11为本公开的任务处理方法的一个实施例中终止任务的流程示意图;
图12为本公开的计算机系统的一个实施例的结构示意图。
详述
下文中将结合附图对本公开的实施例进行详细说明。在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互任意组合。
本公开的实施方式并不一定限定附图所示尺寸,附图中各部件的形状和大小不反映真实比例。此外,附图示意性地示出了理想的例子,本公开的实施方式不局限于附图所示的形状或数值。
本公开中的“第一”、“第二”等序数词是为了避免构成要素的混同而设置,并不表示任何顺序、数量或者重要性。
本公开描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说,在本公开所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本公开包括并设想了与本领域普通技术人员已知的特征和元件的组合。本公开已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的方案。任何实施例的任何特征或元件也可以与来自其它公开方案的特征或元件组合,以形成另一个由权利要求限定的方案。因此,应当理解,在本公开中示出和讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本公开所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本公开实施例的精神和范围内。
如图1所示,本公开实施例提供一种CXL模组,该CXL模组包括控制器110以及与控制器110连接的内存120,内存120例如可以包括多个DRAM(Dynamic Random Access Memory,动态随机存储器)芯片。内存120设置有允许控制器110和主机访问的共享存储空间、仅允许控制器访问的第一存储空间以及仅允许主机访问的第二存储空间;控制器110被配置为:建立虚拟地址(Virtual Address)到共享存储空间对应的外部物理地址的第一地址映射关系;在执行计算任务时,根据第一地址映射关系将数据访问指令中携带的虚拟地址转换为外部物理地址,并根据转换得到的外部物理地址访问对应的数据;建立虚拟地址到第一存储空间的内存地址的第二地址映射关系;在执行计算任务时,根据第二地址映射关系将数据访问指令中携带的虚拟地址转换为内存地址,并根据转换得到的内存地址访问对应的数据;接收主机发送的外部访问指令,外部访问指令中携带有待访问的外部物理地址;根据待访问的外部物理地址访问第二存储空间和共享存储空间中的任意一个或多个。
示例性地,控制器110可以采用控制芯片的方式,也可以集成于内存芯片中。控制器110可以设置有基于CXL协议的CXL接口,以便主机(Host)通过CXL接口与控制器110进行交互。例如,基于CXL.mem协议或CXL.cache协议,主机CPU可以向控制器110发送访存指令,以此访问内存120中的数据,在这里,访存指令涉及的地址信息为外部物理地址,即主机CPU通过地址总线发送至CXL模组的报文中携带的地址;当CXL模组从地址总线接收到报文后,可以从中提取外部物理地址,之后可以通过专有硬件(例如地址翻译器)将外部物理地址转换为内存芯片(例如DRAM芯片)中存储单元的地址。控制器110中还可以设置有DDR(Double Data Rate,双倍速率)控制器,用于管理内存120,例如可以根据内存地址访问内存120中的数据。再例如,基于CXL.io协议,主机CPU还可以向控制器110发送任务指令或其他控制指令。
虚拟内存技术可以让应用程序使用虚拟地址读写数据,主机CPU可以把虚拟地址实时翻译成物理地址,这样就可以管理各个任务的内存使用,保证各个任务对应的存储空间
不会互相践踏。此外,借助虚拟内存技术,可以为开发人员提供一个统一的编程环境,同时让多个应用可以动态加载运行。目前,主机指令(例如指示CXL模组从某地址取数据)中涉及的虚拟地址,只能通过主机CPU中的虚拟内存管理器(Memory Manage Unit,MMU)翻译成物理地址,这个处理过程需要占用主机的运算资源,增加了主机负载,并且需要耗费较长的时间且存在一定的安全风险。
在本实施例中,数据访问指令是由控制器110生成的、用于访问内存120中数据的指令。控制器110首先确定待访问的数据对应的虚拟地址,然后将虚拟地址转换为外部物理地址或内存地址后,再根据外部物理地址或内存地址访问内存120中对应的数据,实现了在CXL模组内部完成虚拟地址与外部物理地址或内存地址的转换,如此一来,控制器110可以通过虚拟地址对多个任务的数据存储进行管理,避免互相践踏,并且缩短了CXL模组与主机协同处理任务的响应时间。
此外,共享存储空间可以允许控制器110和主机访问,当主机需要访问共享存储空间中的数据时,可以基于CXL.mem协议或CXL.cache协议向控制器110发送访存指令,该访存指令中携带的地址信息为外部物理地址,因此,控制器访问数据时将虚拟地址转换为外部物理地址后,再根据外部物理地址访问对应的数据,可以更方便地对共享存储空间中数据进行一致性管理。
在CXL模组与主机进行协同处理计算任务时,CXL模组执行计算任务过程中所需的数据对主机而言重要性较低,可以将该部分数据存储在仅允许控制器访问的第一存储空间中,并建立虚拟地址到第一存储空间的内存地址的第二地址映射关系。后续,控制器在执行计算任务时,可以根据需求生成携带有虚拟地址的数据访问指令,然后将该虚拟地址翻译成内存地址并以此访问第一存储空间中的数据。例如可以从第一存储空间中读取计算任务的原始数据,或将任务执行过程中产生的中间数据存储在第一存储空间中。如此一来,控制器可以基于虚拟地址对计算任务涉及的原始数据和中间数据在第一存储空间中的存储进行管理。可选的,当控制器执行计算任务完成后,可以将得到的处理结果存储在共享存储空间中,以便主机从共享存储空间中读取该处理结果。
在本实施例的一些可选的实施方式中,控制器还可以建立虚拟地址到第一存储空间对应的外部物理地址的第三地址映射关系。控制器需要访问第一存储空间中的数据时,可以首先根据第三地址映射关系将虚拟地址翻译为外部物理地址,然后再将外部物理地址翻译为第一存储空间的内存地址。
在本实施例中,将执行计算任务所需的数据保存在第一存储空间中,一方面可以减少计算任务在共享存储空间中占用的存储资源以及第一地址映射关系中记录的地址数量,降低了第一地址映射关系在CXL模组内部和主机中占用的存储资源;另一方面,由于第一存储空间仅允许控制器访问,因此第二地址映射关系只需要保存在CXL模组内部,不需要存储在主机中,由此可以降低主机的存储压力。
在一个示例中,主机CPU可以通过任务指令指示控制器110的处理器建立计算任务,此时,任务指令中可以包括该计算任务对应的虚拟地址以及需要占用的存储空间的大小,控制器110可以根据任务指令在共享存储空间中为该计算任务分配存储区域,并建立该存储区域的外部物理地址与虚拟地址的第一地址映射关系。后续控制器110在执行该计算任务时,可以根据该计算任务对应的虚拟地址生成数据访问指令,以此访问执行过程中需要的数据,例如可以将执行任务过程中产生的数据和执行完毕后得到的处理结果存储在共享存储空间中,主机通过外部访存指令即可访问该部分数据。如此一来,控制器110可以基于虚拟地址管理计算任务的数据存储,在多任务的场景下,可以避免多个任务的数据之间的互相践踏。
本实施例中的CXL模组,控制器可以建立虚拟地址到共享存储空间对应的外部物理地址的第一地址映射关系以及虚拟地址到第一存储空间的内存地址的第二地址映射关系,以便在执行计算任务时可以根据第一地址映射关系将数据访问指令中携带的虚拟地址转换为外部物理地址,根据第二地址映射关系将数据访问指令中携带的虚拟地址转换为内存地址,并根据转换得到的外部物理地址和内存地址访问对应的数据;还可以根据外部访问指令中携带的待访问的外部物理地址访问第二存储空间和共享存储空间中的任意一个或多个。不仅提高了CXL模组的存储空间的利用率,而且无需通过主机的操作系统即可实现根据虚拟地址的访存处理,一方面缩短了CXL模组与主机协同处理任务的响应时间,有助于提高CXL模组与主机协同处理任务的效率和可靠性;另一方面,由CXL模组代替主机实现虚拟地址到外部物理地址的转换,可以降低主机的虚拟内存管理器的负载。
在一些实施例中,第一地址映射关系包括每个计算任务对应的第一地址映射表;以及,控制器被配置为建立虚拟地址到共享存储空间对应的外部物理地址的第一地址映射关系,包括:接收主机发送的第一任务分配指令,第一任务分配指令中包括待分配任务的标识、待分配任务对应的第一虚拟地址以及待分配任务所需存储空间的大小;根据第一任务分配指令,在共享存储空间中确定待分配任务对应的存储区域,并确定该存储区域的外部物理地址与第一虚拟地址之间的第一地址映射表;确定第一地址映射表与待分配任务的标识之间的对应关系;将第一地址映射表发送至主机。
在本实施例中,控制器可以处理多个计算任务,并根据主机的第一任务分配指令为每个计算任务生成一个第一地址映射表。在这里,第一任务分配指令用于指示控制器在共享存储空间中为待分配任务划分存储区域,并确定第一地址映射表。CXL模组和主机均存储每个计算任务对应的第一地址映射表,以便后续根据第一地址映射表中记载的虚拟地址和外部物理地址访问共享存储空间。
在一些实施例中,第二地址映射关系包括每个计算任务对应的第二地址映射表;以及,控制器被配置为建立虚拟地址到第一存储空间的内存地址的第二地址映射关系,包括:接收主机发送的第二任务分配指令,第二任务分配指令中包括待分配任务的标识、待分配任务对应的第二虚拟地址以及待分配任务所需存储空间的大小;根据第二任务分配指令,在第一存储空间中确定待分配任务对应的存储区域,并确定该存储区域的内存地址与第二虚拟地址之间的第二地址映射表;确定第二地址映射表与待分配任务的标识之间的对应关系。
在本实施例中,控制器可以根据主机的第二任务分配指令为每个计算任务生成一个第二地址映射表。在这里,第二任务分配指令用于指示控制器在第一存储空间中为待分配任务划分存储区域,并确定第二地址映射表。后续,控制器可以根据每个计算任务对应的第二地址映射表中记载的虚拟地址和内存地址访问第一存储空间。如此一来,每个计算任务可以同时对应一个第一地址映射表和一个第二地址映射表,便于控制器根据虚拟地址分别对计算任务的执行过程和处理结果的数据存储进行管理。
接下来参考图2,图2示出了本公开的CXL模组的一个实施例的原理示意图。如图2所示,CXL模组的内存210包括共享存储空间211、第一存储空间212和第二存储空间213。控制器220可以接收主机发送的任务执行指令,任务执行指令包括待执行的计算任务的标识。
接收到任务执行指令之后,控制器220可以根据待执行的计算任务的标识完成虚拟地址的转换,该转换过程可以包括虚拟地址到共享存储空间的外部物理地的转换和虚拟地址到第一存储空间的内存地址的转换。
其中,虚拟地址到共享存储空间的外部物理地的转换可以采用如下方式:根据待执行
的计算任务的标识,在第一地址映射关系中确定待执行的计算任务对应的目标第一地址映射表;在目标第一地址映射表中查找数据访问指令中携带的虚拟地址对应的外部物理地址。
虚拟地址到第一存储空间的内存地址的转换可以采用如下方式:根据待执行的计算任务的标识,在第二地址映射关系中确定待执行的计算任务对应的目标第二地址映射表;在目标第二地址映射表中查找数据访问指令中携带的虚拟地址对应的内存地址。
在一个具体的示例中,控制器220可以装载有多个可执行的计算任务,并通过每个计算任务对应的虚拟地址对计算任务的数据存储进行管理。当主机需要调用CXL模组处理某个计算任务时,可以基于CXL.io协议向控制器220发送任务执行指令,控制器220可以根据任务执行指令中携带的待执行的计算任务的标识,将当前执行的计算任务切换至该计算任务,并将当前使用的地址映射表切换至该标识对应的目标第一地址映射表和目标第二地址映射表。之后,控制器220可以根据目标第一地址映射表访问共享存储空间中的数据,例如可以将处理结果存储在共享存储空间中;还可以根据目标第二地址映射表访问第一存储空间,例如可以将执行计算任务的过程中产生的中间数据存储在第一存储空间中。
此外,控制器220接收到主机发送的外部访问指令时,可以根据外部访问指令中携带的待访问的外部物理地址访问第二存储空间和共享存储空间中的任意一个或多个。
在本实施例中,控制器可以根据待执行的任务的标识确定出待执行的任务对应的目标第一地址映射表和目标第二地址映射表,以便完成虚拟地址到外部物理地址和内存地址的转换。有助于提高控制器在多任务场景下的处理效率。
下面参考图3,图3示出了本公开的CXL模组的一个实施例的示意图,如图3所示,内存310包括共享存储空间311、第一存储空间312和第二存储空间313。控制器320还设置有缓存321,被设置为存储共享存储空间311中的数据;以及,控制器320在根据外部物理地址访问数据时,可以根据转换得到的外部物理地址,优先访问缓存321中的数据;在缓存321中不存在待访问的数据的情况下,将转换得到的外部物理地址翻译为内存地址,并根据该内存地址访问共享存储空间311中的数据。
作为示例,控制器320可以将共享存储空间311中的数据加载到缓存321中,并记录该数据的外部物理地址与缓存地址的对应关系。当控制器320在执行计算任务时,将虚拟地址转换为外部物理地址后,可以在对应关系中查找该外部物理地址,若对应关系中存在该外部物理地址,则根据该外部物理地址对应的缓存地址访问缓存321中的数据;若对应关系中不存在该外部物理地址,则将该外部物理地址翻译为内存地址,并根据该内存地址访问共享存储空间311中的数据。
在本实施例中,通过设置存储共享存储空间中数据的缓存,并优先访问缓存中的数据,可以缩短控制器访问共享存储空间中数据的耗时,有助于提高CXL模组内部数据访问的效率。
继续参考图3,在本实施例的一些可选的实施方式中,缓存321还被设置为存储第一存储空间312中的数据;以及,控制器320在执行计算任务时,可以根据转换得到的内存地址,优先访问缓存321中的数据;在缓存321中不存在待访问的数据的情况下,根据转换得到的内存地址访问第一存储空间312中的数据。
作为示例,控制器320可以将第一存储空间312中的数据加载到缓存321中,并记录该数据的内存地址与缓存地址的对应关系。当控制器320在执行计算任务时,将虚拟地址转换为内存地址后,可以在对应关系中查找该内存地址。若对应关系中存在该内存地址,则根据该内存地址对应的缓存地址访问缓存321中的数据;若对应关系中不存在该内存地址,则根据该内存地址访问第一存储空间312中的数据。
在本实施方式中,在缓存中存储第一存储空间中的数据,以便优先访问缓存中的数据,可以缩短控制器访问第一存储空间中数据的耗时,有助于进一步提高CXL模组内部数据访问的效率。
在一些实施例中,控制器还被配置为:响应于接收到主机发送的任务结束指令,根据任务结束指令中携带的待结束任务的标识,确定待结束任务对应的第一地址映射表和第二地址映射表;根据待结束任务对应的第一地址映射表中的外部物理地址,释放待结束任务在共享存储空间中占用的存储空间;根据待结束任务对应的第二地址映射表中的内存地址,释放待结束任务在第一存储空间中占用的存储空间;释放待结束任务对应的第一地址映射表和第二地址映射表占用的存储空间。
在本实施例中,控制器可以根据主机发送的任务结束指令终止对应的计算任务,并释放该计算任务占用的资源,例如包括该计算任务在共享存储空间和第一存储空间中存储的数据以及该计算任务对应的第一地址映射表和第二地址映射表占用的存储资源,以此可以提高CXL模组中内存的利用率。
下面参考图4,图4示出了本公开的CXL模组的一个实施例的示意图,如图4所示,内存410包括共享存储空间411、第一存储空间412和仅允许主机访问的第二存储空间413。控制器420还被配置为:接收主机发送的外部访问指令,外部访问指令中携带有待访问的外部物理地址;根据待访问的外部物理地址访问第二存储空间413和共享存储空间411中的任意一个或多个。
在本实施例中,CXL模组的内存空间被划分为共享存储空间、第一存储空间和第二存储空间,每个存储空间的权限和功能均不相同,有助于提高CXL模组的内存利用率。
继续参考图4,CXL模组还包括闪存430;以及,控制器420还被配置为:将内存410中的冷数据置换到闪存430中,并记录冷数据的外部物理地址与闪存地址之间的对应关系。
在本实施例中,冷数据是指访问频率较低的数据,控制器可以将冷数据置换到闪存中以降低内存的存储压力。
图5示出了本公开的控制器的一个实施例的示意图,该控制器,应用于上述任意实施例中的CXL模组,如图5所示,该CXL模组包括与控制器510连接的内存520,内存520设置有允许控制器510和主机访问的共享存储空间521、仅允许控制器访问的第一存储空间522以及仅允许主机访问的第二存储空间523,控制器510包括处理器511和虚拟内存管理器(Memory Manage Unit,MMU)512。其中,虚拟内存管理器512被配置为:根据虚拟地址到共享存储空间521对应的外部物理地址的第一地址映射关系,将数据访问指令中携带的虚拟地址转换为外部物理地址;根据虚拟地址到第一存储空间的内存地址的第二地址映射关系,将数据访问指令中的虚拟地址转换为内存地址。处理器511被配置为:建立第一地址映射关系;在执行计算任务时,根据虚拟内存管理器转换得到的外部物理地址访问对应的数据;建立第二地址映射关系;在执行计算任务时,根据虚拟内存管理器转换得到的内存地址访问对应的数据;接收主机发送的外部访问指令,外部访问指令中携带有待访问的外部物理地址;根据待访问的外部物理地址访问第二存储空间523和共享存储空间521中的任意一个或多个。
作为示例,处理器511作为控制器510的计算资源,可以是一个或多个CPU核(即CPU core)或者数据处理加速器,通过运行应用程序执行对应的计算任务。在执行任务时,处理器511可以根据需求生成数据访问指令,该数据访问指令中携带有待访问数据对应的虚拟地址。处理器511将数据访问指令发送至虚拟内存管理器512,可以由虚拟内存管理
器512根据第一地址映射关系将虚拟地址翻译为外部物理地址,或者根据第二地址映射关系将虚拟地址翻译为内存地址,以便处理器511可以根据该外部物理地址或内存地址访问对应的数据。
在本实施例中,可以将该部分数据存储在第一存储空间522中,后续,控制器510在执行计算任务时,可以根据需求生成携带有虚拟地址的数据访问指令,然后将该虚拟地址翻译成内存地址并以此访问第一存储空间522中的数据,例如可以从第一存储空间522中读取计算任务的原始数据或将任务执行过程中产生的中间数据存储在第一存储空间中。如此一来,控制器可以基于虚拟地址对计算任务涉及的原始数据和中间数据在第一存储空间中的存储进行管理,一方面可以减少计算任务在共享存储空间中占用的存储资源以及第一地址映射关系中记录的地址数量,进而降低了第一地址映射关系在CXL模组内部和主机中占用的存储资源;另一方面,由于第一存储空间仅允许控制器访问,因此第二地址映射关系只需要保存在CXL模组内部,不需要存储在主机中,由此可以进一步降低主机的存储压力。
在本实施例中,控制器510接收主机发送的外部访问指令时,可以根据外部访问指令中携带的待访问的外部物理地址访问第二存储空间523和共享存储空间521中的任意一个或多个。
在本实施例中,CXL模组的内存空间被划分为共享存储空间、第一存储空间和第二存储空间,每个存储空间的权限和功能均不相同,不仅有助于提高CXL模组的内存利用率,而且无需通过主机的操作系统即可实现根据虚拟地址的访存处理,一方面缩短了CXL模组与主机协同处理任务的响应时间,有助于提高CXL模组与主机协同处理任务的效率和可靠性;另一方面,由CXL模组代替主机实现虚拟地址到外部物理地址的转换,可以降低主机的虚拟内存管理器的负载。在控制器中设置虚拟内存管理器,以便在控制器内部完成虚拟地址到外部物理地址或内存地址的转换,缩短了CXL模组与主机协同处理任务的响应时间,有助于提高CXL模组与主机协同处理任务的效率和可靠性。
在一些实施例中,第一地址映射关系包括每个计算任务对应的第一地址映射表;以及,处理器被配置为建立第一地址映射关系,包括:接收主机发送的第一任务分配指令,第一任务分配指令中包括待分配任务的标识、待分配任务对应的第一虚拟地址以及待分配任务所需存储空间的大小;根据第一任务分配指令,在共享存储空间中确定待分配任务对应的存储区域,并确定该存储区域的外部物理地址与第一虚拟地址之间的第一地址映射表;确定第一地址映射表与待分配任务的标识之间的对应关系;将第一地址映射表发送至主机。
在本实施例中,处理器可以处理多个计算任务,并根据主机的第一任务分配指令为每个计算任务生成一个第一地址映射表。在这里,第一任务分配指令用于指示控制器在共享存储空间中为待分配任务划分存储区域,并确定第一地址映射表。CXL模组和主机均存储每个计算任务对应的第一地址映射表,以便后续根据第一地址映射表中记载的虚拟地址和外部物理地址访问共享存储空间。
在一些实施例中,第二地址映射关系包括每个计算任务对应的第二地址映射表;以及,处理器被配置为建立第二地址映射关系,包括:接收主机发送的第二任务分配指令,第二任务分配指令中包括待分配任务的标识、待分配任务对应的第二虚拟地址以及待分配任务所需存储空间的大小;根据第二任务分配指令,在第一存储空间中确定待分配任务对应的存储区域,并确定该存储区域的内存地址与第二虚拟地址之间的第二地址映射表;确定第二地址映射表与待分配任务的标识之间的对应关系。
在本实施例中,处理器可以根据主机的第二任务分配指令为每个计算任务生成一个第
二地址映射表。在这里,第二任务分配指令用于指示处理器在第一存储空间中为待分配任务划分存储区域,并确定第二地址映射表。后续,处理器可以根据每个计算任务对应的第二地址映射表中记载的虚拟地址和内存地址访问第一存储空间。如此一来,每个计算任务可以同时对应一个第一地址映射表和一个第二地址映射表,便于处理器根据虚拟地址分别对计算任务的执行过程和处理结果的数据存储进行管理。
在一些实施例中,处理器还被配置为:接收主机发送的任务执行指令,任务执行指令包括待执行的计算任务的标识;根据待执行的计算任务的标识,在第一地址映射关系中确定待执行的计算任务对应的目标第一地址映射表,以及,在第二地址映射关系中确定待执行的计算任务对应的目标第二地址映射表;虚拟内存管理器被配置为根据虚拟地址到共享存储空间对应的外部物理地址的第一地址映射关系,将数据访问指令中携带的虚拟地址转换为外部物理地址,包括:在目标第一地址映射表中查找数据访问指令中携带的虚拟地址对应的外部物理地址;虚拟内存管理器被配置为根据第二地址映射关系将数据访问指令中携带的虚拟地址转换为内存地址,包括:在目标第二地址映射表中查找数据访问指令中携带的虚拟地址对应的内存地址。
在本实施例中,处理器可以根据待执行的任务的标识确定出待执行的任务对应的目标第一地址映射表和目标第二地址映射表,然后由虚拟内存管理器完成虚拟地址到外部物理地址和内存地址的转换。有助于提高控制器在多任务场景下的处理效率。
如图6所示,控制器包括缓存610、地址翻译器620、处理器630和虚拟内存管理器640、
控制器还设置有缓存610和地址翻译器620,缓存610被设置为存储共享存储空间中的数据;地址翻译器620被配置为将外部物理地址翻译为内存地址;以及,处理器630可以根据虚拟内存管理器640转换得到的外部物理地址优先访问缓存中的数据;在缓存610中不存在待访问的数据的情况下,将转换得到的外部物理地址发送至地址翻译器620,并根据地址翻译器620翻译得到的内存地址访问共享存储空间中的数据。
在本实施例中,地址翻译器620用于将外部物理地址翻译为内存地址。通常,主机基于CXL.mem协议或CXL.cache协议向CXL模组发送的外部访问指令中携带的地址为外部物理地址,控制器可以利用地址翻译器620将外部物理地址翻译为内存地址,以完成主机的访存操作。在这里,地址翻译器620还可以将虚拟内存管理器640输出的外部物理地址翻译为内存地址,以完成处理器630执行计算任务时的访存操作。
在本实施例中,通过设置存储共享存储空间中数据的缓存,并优先访问缓存中的数据,可以缩短处理器访问共享存储空间中数据的耗时,有助于提高CXL模组内部数据访问的效率。
继续参考图6,在本实施例的一些可选的实施方式中,缓存610还被设置为存储第一存储空间中的数据;以及,处理器630可以根据虚拟内存管理器640转换得到的内存地址优先访问缓存中610的数据;在缓存610中不存在待访问的数据的情况下,根据转换得到的内存地址访问第一存储空间中的数据。
在本实施方式中,在缓存中存储第一存储空间中的数据,以便优先访问缓存中的数据,可以缩短处理器访问第一存储空间中数据的耗时,有助于进一步提高CXL模组内部数据访问的效率。
在一些实施例中,处理器还被配置为:响应于接收到主机发送的任务结束指令,根据任务结束指令中携带的待结束任务的标识,确定待结束任务对应的第一地址映射表和第二地址映射表;根据待结束任务对应的第一地址映射表中的外部物理地址,释放待结束任务
在共享存储空间中占用的存储空间;根据待结束任务对应的第二地址映射表中的内存地址,释放待结束任务在第一存储空间中占用的存储空间;释放待结束任务对应的第一地址映射表和第二地址映射表占用的存储空间。
在本实施例中,处理器可以根据主机发送的任务结束指令终止对应的计算任务,并释放该计算任务占用的资源,例如包括该计算任务在共享存储空间和第一存储空间中存储的数据以及该计算任务对应的第一地址映射表和第二地址映射表占用的存储资源。以此提高CXL模组中内存的利用率。
在一些实施例中,CXL模组还包括闪存;以及,处理器还被配置为:将内存中的冷数据置换到闪存中,并记录冷数据的外部物理地址与闪存地址之间的对应关系。
在本实施例中,冷数据是指访问频率较低的数据,例如访问频率低于预设频率阈值的数据,控制器可以将冷数据置换到闪存中以降低内存的存储压力。
本公开实施例还提供了一种任务处理方法,应用于上述任一实施例中的CXL模组,CXL模组包括控制器以及与控制器连接的内存,内存设置有允许控制器和主机访问的共享存储空间、仅允许控制器访问的第一存储空间以及仅允许主机访问的第二存储空间,如图7所示,该方法包括以下步骤710至步骤750。
步骤710、建立虚拟地址到共享存储空间对应的外部物理地址的第一地址映射关系以及虚拟地址到第一存储空间的内存地址的第二地址映射关系。
步骤720、在执行计算任务时,根据第一地址映射关系将数据访问指令中携带的虚拟地址转换为外部物理地址,并根据转换得到的外部物理地址访问对应的数据。
步骤730、根据第二地址映射关系将数据访问指令中携带的虚拟地址转换为内存地址,并根据转换得到的内存地址访问对应的数据。
步骤740、接收主机发送的外部访问指令。
其中,外部访问指令中携带有待访问的外部物理地址。
步骤750、根据待访问的外部物理地址访问第二存储空间和共享存储空间中的任意一个或多个。
在本实施例中,可以建立虚拟地址到共享存储空间对应的外部物理地址的第一地址映射关系以及虚拟地址到第一存储空间的内存地址的第二地址映射关系,以便在执行计算任务时可以根据第一地址映射关系将数据访问指令中携带的虚拟地址转换为外部物理地址,根据第二地址映射关系将数据访问指令中携带的虚拟地址转换为内存地址,并根据转换得到的外部物理地址和内存地址访问对应的数据;还可以根据外部访问指令中携带的待访问的外部物理地址访问第二存储空间和共享存储空间中的任意一个或多个。不仅提高了CXL模组的存储空间的利用率,而且无需通过主机的操作系统即可实现根据虚拟地址的访存处理,一方面缩短了CXL模组与主机协同处理任务的响应时间,有助于提高CXL模组与主机协同处理任务的效率和可靠性;另一方面,由CXL模组代替主机实现虚拟地址到外部物理地址的转换,可以降低主机的虚拟内存管理器的负载。
下面参考图8,图8示出了本公开的任务处理方法的一个实施例中建立第一地址映射关系的流程示意图,如图8所示,该流程包括以下步骤810至步骤840。
步骤810、接收主机发送的第一任务分配指令。
其中,第一任务分配指令中包括待分配任务的标识、待分配任务对应的第一虚拟地址以及待分配任务所需存储空间的大小。
步骤820、根据第一任务分配指令,在共享存储空间中确定待分配任务对应的存储区域,并确定该存储区域的外部物理地址与第一虚拟地址之间的第一地址映射表。
步骤830、确定第一地址映射表与待分配任务的标识之间的对应关系。
步骤840、将第一地址映射表发送至主机。
在本实施例中,CXL模组的控制器可以处理多个计算任务,第一地址映射关系包括每个计算任务对应的第一地址映射表。通过图8所示的流程,可以根据主机的第一任务分配指令为每个计算任务生成一个第一地址映射表。在这里,第一任务分配指令用于指示控制器在共享存储空间中为待分配任务划分存储区域,并确定第一地址映射表。CXL模组和主机均存储每个计算任务对应的第一地址映射表,以便后续根据第一地址映射表中记载的虚拟地址和外部物理地址访问共享存储空间。
下面参考图9,图9示出了本公开的任务处理方法的一个实施例中建立第二地址映射关系的流程示意图,如图9所示,该流程包括以下步骤910至步骤930。
步骤910、接收主机发送的第二任务分配指令。
其中,第二任务分配指令中包括待分配任务的标识、待分配任务对应的第二虚拟地址以及待分配任务所需存储空间的大小。
步骤920、根据第二任务分配指令,在第一存储空间中确定待分配任务对应的存储区域,并确定该存储区域的内存地址与第二虚拟地址之间的第二地址映射表。
步骤930、确定第二地址映射表与待分配任务的标识之间的对应关系。
在本实施例中,第二地址映射关系包括每个计算任务对应的第二地址映射表。通过图9所示的流程,控制器可以根据主机的第二任务分配指令为每个计算任务生成一个第二地址映射表。在这里,第二任务分配指令用于指示控制器在第一存储空间中为待分配任务划分存储区域,并确定第二地址映射表。后续,控制器可以根据每个计算任务对应的第二地址映射表中记载的虚拟地址和内存地址访问第一存储空间。
结合图8所示的流程,每个计算任务可以同时对应一个第一地址映射表和一个第二地址映射表,便于控制器根据虚拟地址分别对计算任务的执行过程和处理结果的数据存储进行管理。
下面参考图10,图10示出了本公开的任务处理方法的又一个实施例的流程示意图,如图10所示,该流程包括以下步骤1010至步骤1050。
步骤1010、接收主机发送的任务执行指令。
任务执行指令包括待执行的计算任务的标识。
步骤1020、根据待执行的计算任务的标识,在第一地址映射关系中确定待执行的计算任务对应的目标第一地址映射表,以及,在第二地址映射关系中确定待执行的计算任务对应的目标第二地址映射表。
步骤1030、在目标第一地址映射表中查找数据访问指令中携带的虚拟地址对应的外部物理地址。
步骤1040、在目标第二地址映射表中查找数据访问指令中携带的虚拟地址对应的内存地址。
步骤1050、根据查找得到的外部物理地址和内存地址访问对应的数据。
在本实施例中,可以根据待执行的任务的标识确定出待执行的任务对应的目标第一地
址映射表和目标第二地址映射表,以便完成虚拟地址到外部物理地址和内存地址的转换。有助于提高控制器在多任务场景下的处理效率。
在一些实施例中,控制器还设置有缓存,被设置为存储共享存储空间中的数据;以及,上述步骤720可以包括:根据转换得到的外部物理地址,优先访问缓存中的数据;在缓存中不存在待访问的数据的情况下,将转换得到的外部物理地址翻译为内存地址,并根据该内存地址访问共享存储空间中的数据。
在本实施例中,通过设置存储共享存储空间中数据的缓存,并优先访问缓存中的数据,可以缩短控制器访问共享存储空间中数据的耗时,有助于提高CXL模组内部数据访问的效率。
在一些实施例中,缓存还被设置为存储第一存储空间中的数据;以及,上述步骤730可以包括:根据转换得到的内存地址,优先访问缓存中的数据;在缓存中不存在待访问的数据的情况下,根据转换得到的内存地址访问第一存储空间中的数据。
在本实施例中,在缓存中存储第一存储空间中的数据,以便优先访问缓存中的数据,可以缩短控制器访问第一存储空间中数据的耗时,有助于进一步提高CXL模组内部数据访问的效率。
下面参考图11,图11示出了本公开的任务处理方法的一个实施例中终止任务的流程示意图,如图11所示,该流程包括以下步骤1110至步骤1140。
步骤1110、响应于接收到主机发送的任务结束指令,根据任务结束指令中携带的待结束任务的标识,确定待结束任务对应的第一地址映射表和第二地址映射表。
步骤1120、根据待结束任务对应的第一地址映射表中的外部物理地址,释放待结束任务在共享存储空间中占用的存储空间。
步骤1130、根据待结束任务对应的第二地址映射表中的内存地址,释放待结束任务在第一存储空间中占用的存储空间。
步骤1140、释放待结束任务对应的第一地址映射表和第二地址映射表占用的存储空间。
在本实施例中,可以根据主机发送的任务结束指令终止对应的计算任务,并释放该计算任务占用的资源,例如包括该计算任务在共享存储空间和第一存储空间中存储的数据以及该计算任务对应的第一地址映射表和第二地址映射表占用的存储资源,以此可以提高CXL模组中内存的利用率。
本公开实施例还提供了一种非瞬态计算机存储介质,计算机存储介质存储有计算机程序,计算机程序被处理器执行时实现上述实施例中的任务处理方法。
本公开实施例还提供一种计算机系统,如图12所示,该计算机系统包括主机1210和上述任一实施例中CXL模组1220,主机1210通过CXL接口与CXL模组1220通信,实现对CXL模组1220的发现、配置和数据传输。
在本实施例中,CXL模组1220可以根据虚拟地址管理计算任务涉及的数据在内存中的存储,在协调主机1210共同执行预算任务时,CXL模组1220可以在内部完成虚拟地址的转换过程,一方面避免了通过主机的操作系统实现虚拟地址的转换,可以缩短任务响应时间;另一方面,基于虚拟地址管理CXL模组中多个任务的数据存储,可以避免多个任务的存储资源的相互践踏。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,
在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (25)
- 一种CXL模组,包括控制器以及与所述控制器连接的内存,所述内存设置有允许所述控制器和主机访问的共享存储空间、仅允许所述控制器访问的第一存储空间以及仅允许主机访问的第二存储空间;所述控制器被配置为:建立虚拟地址到所述共享存储空间对应的外部物理地址的第一地址映射关系;在执行计算任务时,根据所述第一地址映射关系将数据访问指令中携带的虚拟地址转换为外部物理地址,并根据转换得到的外部物理地址访问对应的数据;建立虚拟地址到所述第一存储空间的内存地址的第二地址映射关系;在执行计算任务时,根据所述第二地址映射关系将数据访问指令中携带的虚拟地址转换为内存地址,并根据转换得到的内存地址访问对应的数据;以及,接收所述主机发送的外部访问指令,所述外部访问指令中携带有待访问的外部物理地址;根据所述待访问的外部物理地址访问所述第二存储空间和所述共享存储空间中的任意一个或多个。
- 根据权利要求1所述的CXL模组,其中,所述第一地址映射关系包括每个计算任务对应的第一地址映射表;以及,所述控制器被配置为建立虚拟地址到所述共享存储空间对应的外部物理地址的第一地址映射关系,包括:接收主机发送的第一任务分配指令,所述第一任务分配指令中包括待分配任务的标识、所述待分配任务对应的第一虚拟地址以及所述待分配任务所需存储空间的大小;根据所述第一任务分配指令,在所述共享存储空间中确定所述待分配任务对应的存储区域,并确定该存储区域的外部物理地址与所述第一虚拟地址之间的第一地址映射表;确定所述第一地址映射表与所述待分配任务的标识之间的对应关系;将所述第一地址映射表发送至所述主机。
- 根据权利要求2所述的CXL模组,其中,所述第二地址映射关系包括每个计算任务对应的第二地址映射表;以及,所述控制器被配置为建立虚拟地址到所述第一存储空间的内存地址的第二地址映射关系,包括:接收主机发送的第二任务分配指令,所述第二任务分配指令中包括所述待分配任务的标识、所述待分配任务对应的第二虚拟地址以及所述待分配任务所需存储空间的大小;根据所述第二任务分配指令,在所述第一存储空间中确定所述待分配任务对应的存储区域,并确定该存储区域的内存地址与所述第二虚拟地址之间的第二地址映射表;确定所述第二地址映射表与所述待分配任务的标识之间的对应关系。
- 根据权利要求3所述的CXL模组,其中,所述控制器还被配置为:接收主机发送的任务执行指令,所述任务执行指令包括待执行的计算任务的标识;所述控制器被配置为在执行计算任务时,根据所述第一地址映射关系将数据访问指令中携带的虚拟地址转换为外部物理地址,包括:根据所述待执行的计算任务的标识,在所述第一地址映射关系中确定所述待执行的计算任务对应的目标第一地址映射表;在所述目标第一地址映射表中查找数据访问指令中携带的虚拟地址对应的外部物理地址;所述控制器被配置为在执行计算任务时,根据所述第二地址映射关系将数据访问指令中携带的虚拟地址转换为内存地址,包括:根据所述待执行的计算任务的标识,在所述第二地址映射关系中确定所述待执行的计算任务对应的目标第二地址映射表;在所述目标第二地址映射表中查找数据访问指令中携带的虚拟地址对应的内存地址。
- 根据权利要求4所述的CXL模组,其中,所述控制器还设置有缓存,被设置为存储所述共享存储空间中的数据;以及,所述控制器被配置为根据转换得到的外部物理地址访问对应的数据,包括:所述控制器根据所述转换得到的外部物理地址,优先访问所述缓存中的数据;当所述缓存中不存在待访问的数据时,所述控制器将所述转换得到的外部物理地址翻译为内存地址,并根据该内存地址访问所述共享存储空间中的数据。
- 根据权利要求5所述的CXL模组,其中,所述缓存还被设置为存储所述第一存储空间中的数据;以及,所述控制器被配置为根据转换得到的内存地址访问对应的数据,包括:所述控制器根据所述转换得到的内存地址,优先访问所述缓存中的数据;当所述缓存中不存在待访问的数据时,所述控制器根据所述转换得到的内存地址访问所述第一存储空间中的数据。
- 根据权利要求3所述的CXL模组,其中,所述控制器还被配置为:响应于接收到主机发送的任务结束指令,根据所述任务结束指令中携带的待结束任务的标识,确定所述待结束任务对应的第一地址映射表和第二地址映射表;根据所述待结束任务对应的第一地址映射表中的外部物理地址,释放所述待结束任务在所述共享存储空间中占用的存储空间;根据所述待结束任务对应的第二地址映射表中的内存地址,释放所述待结束任务在所述第一存储空间中占用的存储空间;释放所述待结束任务对应的第一地址映射表和第二地址映射表占用的存储空间。
- 根据权利要求1至7之一所述的CXL模组,所述CXL模组还包括闪存;所述控制器还被配置为:将所述内存中的冷数据置换到所述闪存中,并记录所述冷数据的外部物理地址与闪存地址之间的对应关系。
- 一种控制器,应用于权利要求1至8之一所述的CXL模组,所述CXL模组包括与所述控制器连接的内存,所述内存设置有允许所述控制器和主机访问的共享存储空间、仅允许所述控制器访问的第一存储空间以及仅允许主机访问的第二存储空间,所述控制器包括处理器和虚拟内存管理器;其中,所述虚拟内存管理器被配置为:根据虚拟地址到所述共享存储空间对应的外部物理地址的第一地址映射关系,将数据访问指令中携带的虚拟地址转换为外部物理地址;根据虚拟地址到所述第一存储空间的内存地址的第二地址映射关系,将数据访问指令中的虚拟地址转换为内存地址;所述处理器被配置为:建立所述第一地址映射关系;在执行计算任务时,根据所述虚拟内存管理器转换得到的外部物理地址访问对应的数据;建立所述第二地址映射关系;在执行计算任务时,根据所述虚拟内存管理器转换得到的内存地址访问对应的数据;接收所述主机发送的外部访问指令,所述外部访问指令中携带有待访问的外部物理地址;根据所述待访问的外部物理地址访问所述第二存储空间和所述共享存储空间中的任意一个或多个。
- 根据权利要求9所述的控制器,其中,所述第一地址映射关系包括每个计算任务对应的第一地址映射表;以及,所述处理器被配置为建立所述第一地址映射关系,包括:所述处理器接收主机发送的第一任务分配指令,所述第一任务分配指令中包括待分配任务的标识、所述待分配任务对应的第一虚拟地址以及所述待分配任务所需存储空间的大小;所述处理器根据所述第一任务分配指令,在所述共享存储空间中确定所述待分配任务对应的存储区域,并确定该存储 区域的外部物理地址与所述第一虚拟地址之间的第一地址映射表;确定所述第一地址映射表与所述待分配任务的标识之间的对应关系;将所述第一地址映射表发送至所述主机。
- 根据权利要求10所述的控制器,其中,所述第二地址映射关系包括每个计算任务对应的第二地址映射表;以及,所述处理器被配置为建立所述第二地址映射关系,包括:所述处理器接收主机发送的第二任务分配指令,所述第二任务分配指令中包括所述待分配任务的标识、所述待分配任务对应的第二虚拟地址以及所述待分配任务所需存储空间的大小;所述处理器根据所述第二任务分配指令,在所述第一存储空间中确定所述待分配任务对应的存储区域,并确定该存储区域的内存地址与所述第二虚拟地址之间的第二地址映射表;确定所述第二地址映射表与所述待分配任务的标识之间的对应关系。
- 根据权利要求11所述的控制器,其中,所述处理器还被配置为:接收主机发送的任务执行指令,所述任务执行指令包括待执行的计算任务的标识;根据所述待执行的计算任务的标识,在所述第一地址映射关系中确定所述待执行的计算任务对应的目标第一地址映射表,以及,在所述第二地址映射关系中确定所述待执行的计算任务对应的目标第二地址映射表;所述虚拟内存管理器被配置为根据虚拟地址到所述共享存储空间对应的外部物理地址的第一地址映射关系,将数据访问指令中携带的虚拟地址转换为外部物理地址,包括:在所述目标第一地址映射表中查找数据访问指令中携带的虚拟地址对应的外部物理地址;所述虚拟内存管理器被配置为根据所述第二地址映射关系将数据访问指令中携带的虚拟地址转换为内存地址,包括:在所述目标第二地址映射表中查找数据访问指令中携带的虚拟地址对应的内存地址。
- 根据权利要求12所述的控制器,所述控制器还设置有缓存和地址翻译器,所述缓存被设置为存储所述共享存储空间中的数据;所述地址翻译器被配置为将外部物理地址翻译为内存地址;以及,所述处理器被配置为根据所述虚拟内存管理器转换得到的外部物理地址访问对应的数据,包括:所述处理器根据所述转换得到的外部物理地址,优先访问所述缓存中的数据;当所述缓存中不存在待访问的数据时,所述处理器将所述转换得到的外部物理地址发送至所述地址翻译器,并根据所述地址翻译器翻译得到的内存地址访问所述共享存储空间中的数据。
- 根据权利要求13所述的控制器,其中,所述缓存还被设置为存储所述第一存储空间中的数据;以及,所述处理器被配置为根据所述虚拟内存管理器转换得到的内存地址访问对应的数据,包括:所述处理器根据所述转换得到的内存地址,优先访问所述缓存中的数据;当所述缓存中不存在待访问的数据时,所述处理器根据所述转换得到的内存地址访问所述第一存储空间中的数据。
- 根据权利要求11所述的控制器,其中,所述处理器还被配置为:响应于接收到主机发送的任务结束指令,根据所述任务结束指令中携带的待结束任务的标识,确定所述待结束任务对应的第一地址映射表和第二地址映射表;根据所述待结束任务对应的第一地址映射表中的外部物理地址,释放所述待结束任务在所述共享存储空间中占用的存储空间;根据所述待结束任务对应的第二地址映射表中的内存地址,释放所述待结束任务在所述第一存储空间中占用的存储空间;释放所述待结束任务对应的第一地址映射表和第二地址映 射表占用的存储空间。
- 根据权利要求9至15之一所述的控制器,其中,所述CXL模组还包括闪存;以及,所述处理器还被配置为:将所述内存中的冷数据置换到所述闪存中,并记录所述冷数据的外部物理地址与闪存地址之间的对应关系。
- 一种任务处理方法,应用于权利要求1至8之一所述的CXL模组,所述CXL模组包括控制器以及与所述控制器连接的内存,所述内存设置有允许所述控制器和主机访问的共享存储空间、仅允许所述控制器访问的第一存储空间以及仅允许主机访问的第二存储空间,所述方法包括:建立虚拟地址到所述共享存储空间对应的外部物理地址的第一地址映射关系以及虚拟地址到所述第一存储空间的内存地址的第二地址映射关系;在执行计算任务时,根据所述第一地址映射关系将数据访问指令中携带的虚拟地址转换为外部物理地址,并根据转换得到的外部物理地址访问对应的数据;根据所述第二地址映射关系将数据访问指令中携带的虚拟地址转换为内存地址,并根据转换得到的内存地址访问对应的数据;以及,接收所述主机发送的外部访问指令,所述外部访问指令中携带有待访问的外部物理地址;根据所述待访问的外部物理地址访问所述第二存储空间和所述共享存储空间中的任意一个或多个。
- 根据权利要求17所述的方法,其中,所述第一地址映射关系包括每个计算任务对应的第一地址映射表;以及,所述建立虚拟地址到所述共享存储空间对应的外部物理地址的第一地址映射关系,包括:接收主机发送的第一任务分配指令,所述第一任务分配指令中包括待分配任务的标识、所述待分配任务对应的第一虚拟地址以及所述待分配任务所需存储空间的大小;根据所述第一任务分配指令,在所述共享存储空间中确定所述待分配任务对应的存储区域,并确定该存储区域的外部物理地址与所述第一虚拟地址之间的第一地址映射表;确定所述第一地址映射表与所述待分配任务的标识之间的对应关系;将所述第一地址映射表发送至所述主机。
- 根据权利要求18所述的方法,其中,所述第二地址映射关系包括每个计算任务对应的第二地址映射表;以及,所述建立虚拟地址到所述第一存储空间的内存地址的第二地址映射关系,包括:接收主机发送的第二任务分配指令,所述第二任务分配指令中包括所述待分配任务的标识、所述待分配任务对应的第二虚拟地址以及所述待分配任务所需存储空间的大小;根据所述第二任务分配指令,在所述第一存储空间中确定所述待分配任务对应的存储区域,并确定该存储区域的内存地址与所述第二虚拟地址之间的第二地址映射表;确定所述第二地址映射表与所述待分配任务的标识之间的对应关系。
- 根据权利要求19所述的方法,在执行计算任务前,所述方法还包括:接收主机发送的任务执行指令,所述任务执行指令包括待执行的计算任务的标识;根据所述待执行的计算任务的标识,在所述第一地址映射关系中确定所述待执行的计算任务对应的目标第一地址映射表,以及,在所述第二地址映射关系中确定所述待执行的计算任务对应的目标第二地址映射表;所述在执行计算任务时,根据所述第一地址映射关系将数据访问指令中携带的虚拟地 址转换为外部物理地址,包括:在所述目标第一地址映射表中查找数据访问指令中携带的虚拟地址对应的外部物理地址;所述在执行计算任务时,根据所述第二地址映射关系将数据访问指令中携带的虚拟地址转换为内存地址,包括:在所述目标第二地址映射表中查找数据访问指令中携带的虚拟地址对应的内存地址。
- 根据权利要求20所述的方法,其中,所述控制器还设置有缓存,被设置为存储所述共享存储空间中的数据;以及,所述根据转换得到的外部物理地址访问对应的数据,包括:根据所述转换得到的外部物理地址,优先访问所述缓存中的数据;在所述缓存中不存在待访问的数据的情况下,将所述转换得到的外部物理地址翻译为内存地址,并根据该内存地址访问所述共享存储空间中的数据。
- 根据权利要求21所述的方法,其中,所述缓存还被设置为存储所述第一存储空间中的数据;以及,所述根据转换得到的内存地址访问对应的数据,包括:根据所述转换得到的内存地址,优先访问所述缓存中的数据;在所述缓存中不存在待访问的数据的情况下,根据所述转换得到的内存地址访问所述第一存储空间中的数据。
- 根据权利要求19至22之一所述的方法,所述方法还包括:响应于接收到主机发送的任务结束指令,根据所述任务结束指令中携带的待结束任务的标识,确定所述待结束任务对应的第一地址映射表和第二地址映射表;根据所述待结束任务对应的第一地址映射表中的外部物理地址,释放所述待结束任务在所述共享存储空间中占用的存储空间;根据所述待结束任务对应的第二地址映射表中的内存地址,释放所述待结束任务在所述第一存储空间中占用的存储空间;释放所述待结束任务对应的第一地址映射表和第二地址映射表占用的存储空间。
- 一种非瞬态计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求17至23中任一所述的任务处理方法。
- 一种计算机系统,包括主机和权利要求1-8之一所述的CXL模组,所述主机通过CXL接口与所述CXL模组通信,实现对所述CXL模组的发现、配置和数据传输。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410904395.1 | 2024-07-05 | ||
| CN202410904395.1A CN118760635B (zh) | 2024-07-05 | 2024-07-05 | Cxl模组、控制器、任务处理方法、介质和系统 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2026007261A1 true WO2026007261A1 (zh) | 2026-01-08 |
Family
ID=92939036
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2024/123926 Pending WO2026007261A1 (zh) | 2024-07-05 | 2024-10-10 | Cxl模组、控制器、任务处理方法、介质和系统 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN118760635B (zh) |
| WO (1) | WO2026007261A1 (zh) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119903010B (zh) * | 2024-12-30 | 2025-12-09 | 摩尔线程智能科技(北京)股份有限公司 | 访问控制方法、装置及服务器 |
| CN121029095B (zh) * | 2025-10-27 | 2026-01-23 | 苏州元脑智能科技有限公司 | 并行冗余存储方法及电子设备 |
| CN121210342B (zh) * | 2025-11-28 | 2026-02-24 | 浪潮电子信息产业股份有限公司 | 服务器显示界面的控制方法及装置 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116431530A (zh) * | 2023-02-08 | 2023-07-14 | 北京超弦存储器研究院 | 一种cxl内存模组、内存的处理方法及计算机系统 |
| US20230251989A1 (en) * | 2022-02-10 | 2023-08-10 | SambaNova Systems, Inc. | Direct Access to External Storage from a Reconfigurable Processor |
| CN116628772A (zh) * | 2022-02-14 | 2023-08-22 | 辉达公司 | 使用物理地址访问权限表防止未经授权的存储器访问 |
| CN117632043A (zh) * | 2024-01-25 | 2024-03-01 | 北京超弦存储器研究院 | Cxl内存模组、控制芯片、数据处理方法、介质和系统 |
| CN117785758A (zh) * | 2024-02-27 | 2024-03-29 | 北京超弦存储器研究院 | Cxl模组、控制器、任务处理方法、介质和系统 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109921895A (zh) * | 2019-02-26 | 2019-06-21 | 成都国科微电子有限公司 | 一种数据Hash值的计算方法及系统 |
| CN114385516B (zh) * | 2020-10-21 | 2026-01-27 | 澜起科技股份有限公司 | 计算系统以及用于共享不同计算设备的设备存储器的方法 |
| KR102866045B1 (ko) * | 2020-11-06 | 2025-09-26 | 삼성전자주식회사 | 직접 메모리 억세스 엔진을 포함하는 메모리 장치, 이를 포함하는 시스템 및 메모리 장치의 동작방법 |
| CN115794669A (zh) * | 2021-09-11 | 2023-03-14 | 华为技术有限公司 | 一种扩展内存的方法、装置及相关设备 |
| US11822813B2 (en) * | 2021-12-28 | 2023-11-21 | Samsung Electronics Co., Ltd. | Storage device, operation method of storage device, and storage system using the same |
| CN116304201B (zh) * | 2023-02-03 | 2025-09-19 | 广州国芯微技术有限公司 | 一种链表式数据结构实现方法 |
-
2024
- 2024-07-05 CN CN202410904395.1A patent/CN118760635B/zh active Active
- 2024-10-10 WO PCT/CN2024/123926 patent/WO2026007261A1/zh active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20230251989A1 (en) * | 2022-02-10 | 2023-08-10 | SambaNova Systems, Inc. | Direct Access to External Storage from a Reconfigurable Processor |
| CN116628772A (zh) * | 2022-02-14 | 2023-08-22 | 辉达公司 | 使用物理地址访问权限表防止未经授权的存储器访问 |
| CN116431530A (zh) * | 2023-02-08 | 2023-07-14 | 北京超弦存储器研究院 | 一种cxl内存模组、内存的处理方法及计算机系统 |
| CN117632043A (zh) * | 2024-01-25 | 2024-03-01 | 北京超弦存储器研究院 | Cxl内存模组、控制芯片、数据处理方法、介质和系统 |
| CN117785758A (zh) * | 2024-02-27 | 2024-03-29 | 北京超弦存储器研究院 | Cxl模组、控制器、任务处理方法、介质和系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN118760635B (zh) | 2025-06-06 |
| CN118760635A (zh) | 2024-10-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2026007261A1 (zh) | Cxl模组、控制器、任务处理方法、介质和系统 | |
| US10222993B2 (en) | Storage device access using unprivileged software code | |
| JP7280508B2 (ja) | 情報処理装置、情報処理方法および仮想マシン接続管理プログラム | |
| EP2851807B1 (en) | Method and system for supporting resource isolation under multi-core architecture | |
| US10795599B2 (en) | Data migration method, host and solid state disk | |
| CN101477477B (zh) | 内核空间隔离方法、空间管理实体及系统 | |
| WO2024164465A1 (zh) | 一种cxl内存模组、内存的处理方法及计算机系统 | |
| CN105830059A (zh) | 文件访问方法、装置及存储设备 | |
| CN102110196A (zh) | 并行运行多用户操作系统间的数据安全传输方法及系统 | |
| CN117785758B (zh) | Cxl模组、控制器、任务处理方法、介质和系统 | |
| US20240053998A1 (en) | Method and apparatus for processing inter-core communication, and computer system | |
| CN115576716A (zh) | 一种基于多进程的内存管理方法 | |
| CN115586943A (zh) | 一种智能网卡虚拟机脏页的硬件标记实现方法 | |
| CN120104043A (zh) | 一种数据处理方法、装置和计算设备 | |
| CN113678104B (zh) | 设备内符号数据移动系统 | |
| CN115629882A (zh) | 多进程中的内存的管理方法 | |
| CN115794680A (zh) | 一种基于硬件克隆技术的多核操作系统及其控制方法 | |
| US11875152B2 (en) | Methods and systems for optimizing file system usage | |
| CN108959105B (zh) | 一种实现地址映射的方法及装置 | |
| CN119597491A (zh) | 一种gpu资源隔离方法、系统、介质及产品 | |
| CN116431340A (zh) | 一种物理内存分配方法、装置、设备及存储介质 | |
| CN113688064B (zh) | 一种在存储器中为数据分配存储地址的方法和设备 | |
| CN121144049B (zh) | 用于异构环境的内存管理方法、装置、电子设备和介质 | |
| CN121478690B (zh) | 基于设备端上下文识别的多进程dma访问方法及装置、芯片 | |
| CN120994146B (zh) | 一种内存设备访问控制方法、程序产品、设备及介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24946129 Country of ref document: EP Kind code of ref document: A1 |