Method and device for managing memory in memory decomposition environment
By prioritizing the processing of required subblocks and required pages in a memory decomposition environment, the problem of low remote memory access performance is solved, and lower latency and higher system performance is achieved.
Patent Information
- Application Number
- CN202411234706.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-03-20
- Filing Date
- 2024-09-04
- Publication Date
- 2025-03-07
AI Technical Summary
In memory decomposition environments, the performance of remote memory access is low, resulting in increased latency, especially when virtual machines require a lot of memory and frequently access remote memory.
By prioritizing the processing of required subblocks and required pages, subblock priority (CSF) and key page priority (CPF) methods are utilized to reduce the delay caused by communicating with remote memory. Specific measures include prioritizing the processing of required sub-blocks in the block when a page error occurs, and processing page errors for blocks in which the required sub-blocks are prioritized.
It improves the performance of communicating with remote memory in a memory decomposition environment, reduces the delay caused by communicating with remote memory, and improves the overall performance of the system.
Smart Images

Figure CN119576216A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the benefit of Korean Patent Application No. 10-2023-0117386, filed on September 5, 2023, and No. 10-2024-0038643, filed on March 20, 2024, which are hereby incorporated by reference in their entirety into this application. Technical Field
[0003] The present disclosure relates to techniques for efficiently communicating with remote memory in a memory disaggregation environment.
[0004] More specifically, the present disclosure relates to a technique for prioritizing processing of required data while increasing communication I / O units during communication with a remote memory. Background Art
[0005] A disaggregated memory system is a technology that aims to efficiently utilize resources by sharing memory resources of different computers, and it can provide a large amount of memory by utilizing not only the memory of the host where the user's virtual machine runs, but also the remote memory of other nodes.
[0006] In a disaggregated memory system, the performance of remote memory access affects the performance of the entire system. This is because the corresponding process must wait until the required page is ready in the local memory of the host. This is mainly handled based on page faults. When the page required by the process does not exist in the local memory, a page fault occurs. Only after the required page is read from the remote memory to the local memory and mapped into the disaggregated memory system, the page fault handling can be completed and the process can resume operation. Therefore, when the virtual machine requires a large amount of memory and frequently accesses the remote memory, a large delay is generated. With the advancement of network technology, technologies such as remote direct memory access (RDMA) can be used, and high-speed interconnect hardware continues to develop, but accessing remote memory still takes a considerable amount of time compared to accessing the local memory of the host.
[0007] In order to improve the performance of such remote memory access, conventional technologies have introduced prefetching technology. This is a technology that pre-reads the data required by the virtual machine to the host memory. The more data is pre-fetched, the greater the chance of reducing access to remote memory. Here, if the prediction is successful, access to remote memory can be reduced, but if the prediction fails, additional access to remote memory is required, which may increase latency and network bandwidth consumption. In addition, the required data and pre-fetched data are usually transmitted together, in which case the required data may be delayed due to the pre-fetched data.
[0008] [Related technical literature]
[0009] (Patent Document 1) Korean Patent No. 2472330, entitled “Method of operating distributed memory system for context-based prefetch and memory system performing the same”. Summary of the invention
[0010] One object of the present disclosure is to improve the performance of communicating with remote memory in a memory disaggregation environment.
[0011] Another object of the present disclosure is to reduce the latency due to communication with remote memory by prioritizing processing of required sub-blocks.
[0012] Yet another object of the present disclosure is to reduce latency due to communication with remote memory by prioritizing processing of required pages.
[0013] To achieve the above objectives, a method for managing memory in a memory decomposition environment according to an embodiment of the present disclosure includes: when a page fault occurs, processing a required sub-block within a block in priority to an additional sub-block; and processing the page fault for the block in which the required sub-block is processed first.
[0014] Here, a sub-block may be configured with multiple consecutive memory pages.
[0015] Here, processing the required sub-block within the block in preference to the additional sub-block may include: inserting the required sub-block into a first queue; and inserting the additional sub-block into a second queue.
[0016] Here, processing the required sub-block within the block in priority to the additional sub-blocks may include setting a sub-block priority flag on the block after processing the input / output of the required sub-block.
[0017] Here, processing a page fault for a block where the required sub-block is preferentially processed may include checking whether a sub-block priority flag is set on the block where the required sub-block is preferentially processed.
[0018] Here, processing a page fault for a block where a desired sub-block is preferentially processed may include processing a sub-block within the block and releasing the sub-block priority flag when a sub-block priority flag is set.
[0019] Here, processing the desired sub-block within the block in preference to the additional sub-block may include processing the desired page within the desired sub-block and performing address space mapping.
[0020] Here, processing the required sub-block within the block in preference to the additional sub-blocks may include: performing a signature at a last word address of the required page; and using the value of the signature of the last word address to check whether the required page has been processed.
[0021] In addition, in order to achieve the above-mentioned purpose, the device for managing memory in a memory decomposition environment according to an embodiment of the present disclosure includes: a memory management unit for controlling input / output of remote memory and local memory; and a communication unit for performing communication with remote memory. When a page fault occurs, the memory management unit processes a required sub-block within a block in priority to an additional sub-block, and processes the page fault for the block in which the required sub-block is processed in priority.
[0022] Here, a sub-block may be configured with multiple consecutive memory pages.
[0023] Here, the memory management unit may insert the required sub-blocks into a first queue and insert the additional sub-blocks into a second queue.
[0024] Here, the memory management unit may set a sub-block priority flag on the block after processing the input / output of the required sub-block.
[0025] Here, the memory management unit may check whether a sub-block priority flag is set on the block where the desired sub-block is to be processed preferentially.
[0026] Here, when the sub-block priority flag is set, the memory management unit may process the sub-block within the block and release the sub-block priority flag.
[0027] Here, the memory management unit may process the required pages within the required sub-blocks and perform address space mapping.
[0028] Here, the memory management unit may perform a signature at the last word address of the required page and use the value of the signature of the last word address to check whether the required page has been processed. BRIEF DESCRIPTION OF THE DRAWINGS
[0029] The above and other objects, features and advantages of the present disclosure will be more clearly understood from the following detailed description in conjunction with the accompanying drawings, in which:
[0030] Figure 1 is a flow chart illustrating a method for managing memory in a memory disaggregation environment according to an embodiment of the present disclosure;
[0031] Figure 2 is a graph showing average read latency depending on I / O transfer size;
[0032] Figure 3 A method for allocating and managing sub-blocks and using them for I / O is shown;
[0033] Figure 4 conceptually illustrates the latency when using a critical sub-block first (CSF) method and a critical page first (CPF) method;
[0034] Figure 5 is a flowchart illustrating a process of handling a page fault in a method according to an embodiment of the present disclosure;
[0035] Figure 6 is a flowchart illustrating a process of processing a page fault of a block when a sub-block in the block is preferentially processed in a method according to an embodiment of the present disclosure;
[0036] Figure 7 is a flow chart showing a critical page first (CPF) method in a method according to an embodiment of the present disclosure;
[0037] Figure 8 is a diagram showing the communication performance improvement effect of the method according to an embodiment of the present disclosure;
[0038] Fig. 9 is a block diagram showing an apparatus for managing memory in a memory disaggregation environment according to an embodiment of the present disclosure; and
[0039] Fig.10 is a diagram showing a configuration of a computer system according to an embodiment. DETAILED DESCRIPTION
[0040] The advantages and features of the present disclosure and methods for achieving them will be apparent from the exemplary embodiments that will be described in more detail below with reference to the accompanying drawings. However, it should be noted that the present disclosure is not limited to the following exemplary embodiments and can be implemented in various forms. Therefore, exemplary embodiments are provided only to disclose the present disclosure and to let those skilled in the art understand the categories of the present disclosure, and the present disclosure is defined only based on the claims. The same reference numerals or the same reference indicators represent the same elements throughout the specification.
[0041] It should be understood that although the terms "first", "second", etc. may be used herein to describe various elements, these elements are not intended to be limited by these terms. These terms are only used to distinguish one element from another element. For example, the first element discussed below may be referred to as the second element without departing from the technical spirit of the present disclosure.
[0042] The terms used herein are only used to describe specific embodiments and are not intended to limit the present disclosure. As used herein, unless the context clearly indicates otherwise, the singular form is also intended to include the plural form. It should be further understood that the terms "include", "comprise", "include" and / or "comprises" specify the presence of the features, integers, steps, operations, elements and / or components when used herein, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components and / or their groups.
[0043] In the present specification, each of expressions such as "A or B", "at least one of A and B", "at least one of A or B", "A, B or C", "at least one of A, B and C" and "at least one of A, B or C" may include any one of the items listed in the expression or all possible combinations thereof.
[0044] Unless otherwise defined, all terms (including technical or scientific terms) used herein have the same meaning as those commonly understood by those skilled in the art to which the present disclosure belongs. Terms that are the same as those defined in commonly used dictionaries should be interpreted as having the same meaning as the contextual meaning of the relevant field, and should not be interpreted as having an ideal or overly formal meaning unless explicitly defined in this specification.
[0045] Embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings. In the following description of the present disclosure, the same reference numerals are used to represent the same or similar elements throughout the drawings, and repeated description of the same components will be omitted.
[0046] Figure 1 is a flowchart illustrating a method for managing memory in a memory disaggregation environment according to an embodiment of the present disclosure.
[0047] The method for managing memory in a memory decomposition environment according to an embodiment of the present disclosure may be executed by a memory management apparatus (eg, a computing device).
[0048] See also Figure 1 According to an embodiment of the present disclosure, a method for managing memory in a memory decomposition environment includes: in step S110, when a page fault occurs, processing a required sub-block within a block in priority to an additional sub-block; and in step S120, processing the page fault for the block in which the required sub-block is processed in priority.
[0049] Here, a sub-block may be configured with multiple consecutive memory pages.
[0050] Here, processing the required sub-block within the block in priority to the additional sub-block at step S110 may include: inserting the required sub-block into a first queue; and inserting the additional sub-block into a second queue.
[0051] Here, processing the required sub-block within the block in priority to the additional sub-blocks at step S110 may include setting a sub-block priority flag on the block after processing an input / output (I / O) of the required sub-block.
[0052] Here, processing a page fault for a block where the required sub-block is preferentially processed at step S120 may include checking whether a priority flag is set on the block where the required sub-block is preferentially processed.
[0053] Here, processing the page fault for the block where the required sub-block is preferentially processed at step S120 may include: when the sub-block priority flag is set, processing the sub-block within the block and releasing the sub-block priority flag.
[0054] Here, processing the required sub-block within the block in priority to the additional sub-block at step S110 may include: processing the required pages within the required sub-block and performing address space mapping.
[0055] Here, processing the desired sub-block within the block in priority to the additional sub-blocks at step S110 may include: performing a signature at the last word address of the desired page; and checking whether the desired page has been processed using the value of the signature of the last word address.
[0056] The present disclosure relates to techniques for improving performance of communicating with remote memory in a memory disaggregation environment.
[0057] Prefetching techniques can be used to reduce the number of accesses to remote memory in a memory decomposition environment. Since a page that is predicted to be needed later is brought in advance along with the required page, the advantage of the prefetching technique is that if the prediction is successful, there is no need to perform remote memory access when the page is accessed later. In the case of prefetching, the greater the number of pages read, the higher the probability of successful prediction. Therefore, a large number of pages need to be read.
[0058] However, data transfer time increases due to prefetching pages, and the reading of actually needed pages may be delayed. In addition, when the prediction fails, prefetching is far from effective or may degrade performance because reading unneeded pages may lead to bandwidth consumption and local memory waste.
[0059] The present disclosure can improve the performance of communicating with remote memory in a memory decomposition environment by quickly processing pages actually needed while quickly reading a large number of pages.
[0060] First, according to an embodiment of the present disclosure, a method of increasing the unit of I / O to quickly read a large number of pages can be used. At the existing OS level, the decomposed memory system usually performs I / O in units of pages (4KiB). This is because it is easy to manage I / O in units of pages at the OS level. However, when the size of the I / O transfer unit increases to be larger than the page size, the total time required to read data will decrease.
[0061] Figure 2 is a graph showing average read latency depending on I / O transfer size.
[0062] Figure 2 This is the result of measuring the latency that depends on the size of data transferred via RDMA, and was measured using a tool called InfiniBand Read Latency (ib_read_lat) of Perftest. For example, it can be assumed that a total of 128KiB of data (including necessary pages and prefetched data) is read. Here, if I / O is performed in units of existing 4KiB pages, 32 DMA transfers must be performed, and since each DMA transfer takes 3 microseconds, it is possible that a total of 96 microseconds are required to perform I / O. However, if data is read in units of 32KiB, since 4 DMA transfers are performed, each transfer takes 4.7 microseconds, it takes 18.8 microseconds to perform I / O, and the latency difference is about five times. Therefore, when a large amount of data is prefetched, performance can be further improved as the I / O unit increases.
[0063] In order to manage pages and perform I / O in larger units using spatial locality, a unit called a sub-block is used in the present disclosure.
[0064] Figure 3 A method of allocating and managing sub-blocks and using them for I / O is shown.
[0065] See also Figure 3 In the method according to the embodiment of the present disclosure, multiple physically continuous pages (compound pages) are allocated as a single sub-block, and the decomposed memory system can be managed in units of sub-blocks. Here, a single I / O transfer can be performed in units of sub-blocks. Multiple sub-blocks constitute a single block, which represents a data block with a large size, in which spatial locality is taken into account. Therefore, assuming 32KiB sub-blocks, when 256KiB blocks are sent and received via RDMA, communication can be performed through 8 RDMA transfers.
[0066] In addition, sub-blocks can facilitate memory management. In this case, the additional information of the header page of the compound page can be managed by the Linux kernel-based compound page technology, instead of managing all pages individually, to manage memory in larger units.
[0067] Using a method of accessing remote memory in units of sub-blocks can improve performance when reading pre-fetched data and required data with large sizes. However, when processing the required data is delayed due to processing of the pre-fetched data, or when the required data needs to be processed together with the pre-fetched data, performance cannot be improved. To solve this problem, the present disclosure proposes critical sub-block priority (CSF) and critical page priority (CPF) technologies, which prioritize required data by performing pre-fetching in larger units while considering spatial locality.
[0068] Although memory management and I / O processing are performed in sub-block units, when a page fault of a required page is synchronously processed in units of a single large block in the system, the page fault is processed only after all prefetched sub-blocks and the required sub-block are read, so the processing of the required sub-block is delayed.
[0069] When the CSF scheme is used, the I / O of the required sub-block is first inserted into the I / O queue for the required sub-block only, and then the sub-block for pre-fetching is inserted into the I / O queue for the pre-fetched sub-block. Therefore, the situation where the required data is delayed due to pre-fetching can be prevented. In addition, when the I / O of the required sub-block is completed, the page fault of the corresponding required page can be processed. Therefore, even if the I / O of the pre-fetched data has not been completed, the page fault can be processed asynchronously, and then the I / O of the pre-fetched sub-block can be processed. Therefore, the situation where the processing of the required data is delayed due to pre-fetching can be prevented.
[0070] Figure 4 The latency when using the critical block first (CSF) method and the critical page first (CPF) method is conceptually illustrated.
[0071] Specifically, Figure 4 is a diagram for explaining the effect of I / O time improvement when handling page faults using the CSF and CPF methods. When the existing sub-block-based management is performed, the time taken to read the entire block to the local memory is reduced, but the time taken to handle the page fault is affected by the time taken to handle the I / O of a large amount of prefetched data.
[0072] However, when the Critical Subblock First (CSF) method is used, the I / O of the required subblock is issued first, and then the prefetched subblock is issued to another queue. Therefore, the I / O of the required subblock is not affected by the prefetched data, and since the page fault can be processed immediately after the I / O of the required subblock is completed, the time taken to process the page fault is significantly reduced. Figure 4 In the example, it is assumed that the size of a block is 128KiB and the size of a sub-block is 16KiB. Here, if sub-block '6' is a desired sub-block in a block, when processing of sub-block '6' is completed, mapping of the desired page within the desired sub-block can be completed and a page fault can be processed.
[0073] Figure 5 Detailed description is a flowchart illustrating a process of handling a page fault in a method according to an embodiment of the present disclosure.
[0074] Figure 6 Detailed description is a flowchart illustrating a process of processing a page fault of a block when a sub-block in the block is preferentially processed in a method according to an embodiment of the present disclosure.
[0075] See also Figure 5 , when a page fault occurs, it is determined whether the sub-block is a required sub-block in step S510. When the sub-block is a required sub-block, the required sub-block is inserted into the key sub-block I / O queue in step S520. After checking that the I / O processing of the required sub-block is completed in step S530, the CSF flag of the block containing the required sub-block is set to true in step S540. Subsequently, address space mapping of the required sub-block is performed in step S550. When the sub-block is not a required sub-block but a general sub-block, the sub-block is inserted into the pre-fetch sub-block I / O queue in step S560.
[0076] When a page fault occurs, the I / O of the prefetched sub-block processed asynchronously is processed in the background. When a page fault occurs due to the following access to the corresponding block, it is checked in step S610 whether the corresponding block is a block where the required sub-block is processed first. When the corresponding block is a block where the required sub-block is processed first, the I / O processing for the corresponding prefetched sub-block is checked in step S620, mapping is performed in step S630, the CSF flag of the corresponding block is set to false in step S640, and the page fault of the corresponding block is processed in step S650.
[0077] When the block containing the prefetched sub-block is evicted to remote memory or the mapping is disconnected, even if the I / O of the prefetched sub-block has not been completed, the corresponding task should be executed after all I / Os are processed.
[0078] The CSF method helps to read the required sub-blocks containing the required pages and speed up page fault handling, but it incurs overhead compared to the cost of performing page fault handling by only fetching the pages actually required. To solve this problem, the present disclosure proposes a critical page first (CPF) method to further speed up page fault handling while exploiting spatial locality.
[0079] Figure 7 is a flow chart illustrating a critical page first (CPF) method in a method according to an embodiment of the present disclosure.
[0080] When performing data communication between a host and a remote memory, RDMA technology is generally used. When performing I / O through DMA using a trusted protocol, data is transferred sequentially from a low address space to a high address space. Therefore, if the last word of the I / O data changes after an I / O read request, this indicates that the data has been transferred. Using this technology, the present disclosure checks whether the I / O of the required page in the corresponding sub-block is completed when performing I / O in units of large sub-blocks in a memory decomposition environment.
[0081] refer to Figure 7 , in order to check the completion of the page I / O processing, in step S720, before processing the I / O read request, a specific signature is placed on the last word of the required page, and after the I / O request, a check is performed until the last word of the required page is not the specific signature, so that the transfer completion of the required page can be confirmed in steps S740 and S750. Even if the signature value matches the value of the actual data with an extremely small probability, the I / O request can be processed using the I / O request processing method of the existing CSF method.
[0082] After completing the I / O processing of the required page, Figure 6 The page fault is handled in a similar manner to the page fault handling performed after completing the I / O processing of the required sub-block in the . However, after completing the page fault handling by mapping only the required pages, when a subsequent page fault of the corresponding block occurs, I / O processing and mapping are performed on all pages instead of only the required pages, and the page fault for the block can be handled.
[0083] Figure 8 is a graph showing the communication performance improvement effect of the method according to an embodiment of the present disclosure.
[0084] Figure 8 The chart shows the throughput when executing the STREAM benchmark test, and shows the comparison results with KVM / QEMU-based virtualization technology (KVM), FastSwap, and DCM. DCM is divided into DCM 4K using 4KiB blocks and DCM 128K using 128KiB blocks. DEHype is a technology proposed in the present disclosure, using 128KiB blocks and 32KiB sub-blocks. The performance measured when applying sub-block configuration (+sub-block), critical sub-block priority (+CSF) method, and critical page priority (+CPF) method is shown. The x-axis represents the results obtained when the amount of local memory of the host in a memory decomposition environment is set to 30%, 50%, and 70% of the total memory used by the benchmark.
[0085] It can be seen that in an environment where the amount of local memory is set to 30% of the total amount of memory, the application of the sub-block proposed in the present disclosure improves performance by 91.5% compared to DCM 128K. Here, the DMA overhead is reduced by increasing the size of the I / O unit, and the memory is managed in units larger than the page, thereby achieving performance improvement. In addition, the use of the CSF method and the CPF method can quickly handle page errors of the required sub-blocks / pages, and compared with not applying the CSF / CPF method, in an environment where the amount of local memory is set to 30% of the total amount of memory, the performance is improved by 9.1%.
[0086] Therefore, the present disclosure designs a method for quickly processing page faults, while obtaining a prefetch effect for reading a large amount of data by utilizing spatial locality, thereby further improving performance compared to conventional technologies.
[0087] Fig. 9 is a block diagram illustrating an apparatus for managing memory in a memory decomposition environment according to an embodiment of the present disclosure.
[0088] See also Fig. 9 , the apparatus for managing memory in a memory decomposition environment according to an embodiment of the present disclosure includes: a memory management unit 910 for controlling I / O of a remote memory and a local memory and a communication unit 920 for performing communication with a remote memory. When a page fault occurs, the memory management unit 910 processes a required sub-block within a block in priority to an additional sub-block, and then processes the page fault for the block in which the required sub-block is processed in priority.
[0089] Here, a sub-block may be configured to consist of multiple consecutive memory pages.
[0090] Here, the memory management unit 910 may insert the required sub-blocks into the first queue and insert the additional sub-blocks into the second queue.
[0091] Here, the memory management unit 910 may set a sub-block priority flag on the block after processing the I / O of the required sub-block.
[0092] Here, the memory management unit 910 may check whether a sub-block priority flag is set on a block where a desired sub-block is preferentially processed.
[0093] Here, when the sub-block priority flag is set, the memory management unit 910 may process the sub-blocks within the block and release the sub-block priority flag.
[0094] Here, the memory management unit 910 may process a desired page within a desired sub-block and perform address space mapping.
[0095] Here, the memory management unit 910 may perform a signature at the last word address of the required page and check whether the required page has been processed using the value of the signature of the last word address.
[0096] Fig.10 is a diagram showing a configuration of a computer system according to an embodiment.
[0097] The apparatus for managing memory in a memory decomposition environment according to an embodiment may be implemented in a computer system 1000 including a computer-readable recording medium.
[0098] The computer system 1000 may include one or more processors 1010, memory 1030, user interface input device 1040, user interface output device 1050 and storage device 1060, which communicate with each other via bus 1020. In addition, the computer system 1000 may also include a network interface 1070 connected to a network 1080. The processor 1010 may be a central processing unit or a semiconductor device for executing a program or processing instruction stored in the memory 1030 or the storage device 1060. The memory 1030 and the storage device 1060 may be storage media, including at least one of a volatile medium, a non-volatile medium, a removable medium, a non-removable medium, a communication medium or an information transfer medium, or a combination thereof. For example, the memory 1030 may include a ROM 1031 or a RAM 1032.
[0099] According to the present disclosure, the performance of communicating with remote memory can be improved in a memory disaggregation environment.
[0100] In addition, the present disclosure can reduce the latency caused by communicating with remote memory by prioritizing processing of required sub-blocks.
[0101] Furthermore, the present disclosure can reduce latency due to communication with remote memory by prioritizing processing of required pages.
[0102] The specific implementations described in the present disclosure are embodiments and are not intended to limit the scope of the present disclosure. For the sake of brevity of the specification, descriptions of conventional electronic components, control systems, software and other functional aspects thereof may be omitted. In addition, the lines of the connecting components or connecting members shown in the figures represent functional connections and / or physical or circuit connections, and may be represented as various functional connections, physical connections or circuit connections that can be replaced or added to actual devices. In addition, unless specific terms such as "essential", "important", etc. are used, the corresponding components may not be absolutely necessary.
[0103] Therefore, the spirit of the present disclosure should not be interpreted as being limited to the above-described embodiments, and the appended claims and the full scope of their equivalents should be construed as defining the scope and spirit of the present disclosure.
Claims
1. A method for managing memory in a memory decomposition environment, in which memory input / output is performed in units of sub-blocks, the sub-blocks being configured with a plurality of pages, the method comprising: When a page fault occurs, required sub-blocks within a block are processed in preference to additional sub-blocks; as well as Page faults are processed for the blocks for which the required sub-blocks are processed preferentially.
2. The method according to claim 1, wherein: The sub-block is configured with a plurality of consecutive memory pages.
3. The method according to claim 1, wherein: Processing the required sub-block within the block in preference to the additional sub-block includes: inserting the required sub-block into a first queue; and inserting the additional sub-block into a second queue.
4. The method according to claim 3, wherein: Processing the required sub-block within the block in priority to the additional sub-blocks includes setting a sub-block priority flag on the block after processing the input / output of the required sub-block.
5. The method according to claim 4, wherein: Processing the page fault for the block where the required sub-block is preferentially processed includes checking whether the sub-block priority flag is set on the block where the required sub-block is preferentially processed.
6. The method according to claim 5, wherein: Processing the page fault for the block in which the desired sub-block is preferentially processed includes processing the sub-block within the block and releasing the sub-block priority flag when the sub-block priority flag is set.
7. The method according to claim 3, wherein: Processing the desired sub-block within the block in preference to the additional sub-block includes processing the desired pages within the desired sub-block and performing address space mapping.
8. The method according to claim 7, wherein: Processing the desired sub-block within the block in preference to the additional sub-blocks includes: performing a signature at a last word address of the desired page; and using a value of the signature at the last word address to check whether the desired page has been processed.
9. An apparatus for managing memory in a memory decomposition environment, in which memory input / output is performed in units of sub-blocks, the sub-blocks being configured with a plurality of pages, the apparatus comprising: Memory management unit, which controls input / output of remote memory and local memory; as well as a communication unit, configured to perform communication with the remote memory, in, When a page fault occurs, the memory management unit processes a required sub-block within a block in priority to an additional sub-block, and processes the page fault with respect to the block in which the required sub-block is preferentially processed.
10. The device according to claim 9, wherein: The sub-block is configured with a plurality of consecutive memory pages.
11. The device according to claim 9, wherein: The memory management unit inserts the required sub-block into a first queue and inserts the additional sub-block into a second queue.
12. The device according to claim 11, wherein The memory management unit sets a sub-block priority flag on the block after processing the input / output of the required sub-block.
13. The device according to claim 12, wherein: The memory management unit checks whether the sub-block priority flag is set on the block where the desired sub-block is preferentially processed.
14. The device according to claim 13, wherein: When the sub-block priority flag is set, the memory management unit processes the sub-block within the block and releases the sub-block priority flag.
15. The device according to claim 11, wherein The memory management unit processes the required pages within the required sub-block and performs address space mapping.
16. The device according to claim 15, wherein: The memory management unit performs a signature at a last word address of the required page, and uses a value of the signature of the last word address to check whether the required page has been processed.
Citation Information
Patent Citations
Systems and methods for wireless surround sound
KR1020230117386A
Lipopeptide fusion inhibitors as antiviral agents against SARS-COV-2
KR1020240038643A
Method of operating disaggregated memory system for context-aware prefetch and disaggregated memory system performing the same
KR102472330B1