Method and apparatus for managing memory in memory disaggregation environment
Patent Information
- Application Number
- KR1020240038643
- Authority / Receiving Office
- KR · KR
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2023-09-05
- Filing Date
- 2024-03-20
- Publication Date
- 2026-09-02
- Estimated Expiration
- 2044-03-20
Smart Images

Figure 112024031424712-PAT00001_ABST
Abstract
Description
Technology Field
[0001] The present invention relates to a technology for effectively communicating with a remote memory in a separated memory environment.
[0002] Specifically, the present invention relates to a technology that prioritizes the processing of necessary data while increasing the communication I / O unit when communicating with a remote memory. Background Technology
[0003] A disaggregated memory system is a technology designed to utilize resources efficiently by sharing memory resources from different computers. 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.
[0004] In a disassembled memory system, the overall performance of the system depends on the performance of remote memory access. This is because the process must remain paused until the required page is ready in the host's local memory. This is primarily handled based on page faults; when a page desired by a process is not found in local memory, a page fault occurs. The disassembled memory system must retrieve the page from remote memory to local memory and map it before the page fault processing is complete and the process can resume operation. Therefore, if a virtual machine requires a large amount of memory and frequently accesses remote memory, it experiences significant latency. Although network technology has advanced to the point where technologies like Remote Direct Memory Access (RDMA) are used and high-speed interconnect hardware has developed, it still takes considerably longer than accessing the host's local memory.
[0005] Conventional technologies have introduced prefetching techniques to improve remote memory access performance. This technique involves fetching data required by a virtual machine into host memory in advance; the more data prefetched, the higher the chance of reducing remote memory access. However, while successful predictions can reduce remote memory access, failures necessitate additional remote memory access, leading to increased latency and network bandwidth consumption. Furthermore, since required data and prefetched data are typically transmitted together, there are cases where the required data is delayed due to the prefetched data. Prior art literature
[0006] Korean Registered Patent Publication No. 2472330 (Title of Invention: Method for Operating a Distributed Memory System Performing Context-Based Prefetching and a Memory System Performing the Same) The problem to be solved
[0007] The objective of the present invention is to improve communication performance with remote memory in a separated memory environment.
[0008] In addition, the objective of the present invention is to reduce the latency caused by communication with remote memory by prioritizing the processing of necessary sub-blocks.
[0009] In addition, the objective of the present invention is to reduce latency caused by communication with remote memory by prioritizing the processing of necessary pages. means of solving the problem
[0010] A memory management method for a separated memory environment according to an embodiment of the present invention for achieving the above-mentioned purpose includes: a step of processing a necessary sub-block within a block with priority over other sub-blocks when a page fault occurs; and a step of processing a page fault for the block in which the necessary sub-block was processed with priority.
[0011] At this time, the above sub-block may be composed of a plurality of consecutive memory pages.
[0012] At this time, the step of processing the necessary sub-block with priority over other sub-blocks may involve inserting the necessary sub-block into a first queue and inserting the other sub-block into a second queue.
[0013] At this time, the step of processing the necessary sub-block with priority over other sub-blocks may set a sub-block priority processing flag on the block after the input / output processing of the necessary sub-block.
[0014] At this time, the step of handling page faults for the block in which the necessary sub-block is processed first can check whether the priority processing flag of the block in which the necessary sub-block is processed first is set.
[0015] At this time, the step of handling page faults for the block in which the necessary sub-block is processed first may process the sub-block within the block if the sub-block priority processing flag is set, and then release the sub-block priority processing flag.
[0016] At this time, the step of processing the necessary sub-block with priority over other sub-blocks can process the necessary pages within the necessary sub-block and perform address space mapping.
[0017] At this time, the step of processing the necessary sub-block in priority over other sub-blocks may involve signing the last word address of the necessary page and using the signature value of the last word address to check whether the necessary page has been processed.
[0019] In addition, a memory management device for a separated memory environment according to an embodiment of the present invention for achieving the above-mentioned purpose includes a memory management unit that controls the input / output of a remote memory and a local memory; and a communication unit that performs communication with the remote memory, wherein the memory management unit processes a necessary sub-block within a block with priority over other sub-blocks when a page fault occurs, and processes the page fault for the block in which the necessary sub-block was processed with priority.
[0020] At this time, the above sub-block may be composed of a plurality of consecutive memory pages.
[0021] At this time, the memory management unit can insert the necessary sub-block into the first queue and insert the other sub-block into the second queue.
[0022] At this time, the memory management unit may set a sub-block priority processing flag on the block after processing the input / output of the necessary sub-block.
[0023] At this time, the memory management unit can check whether the priority processing flag of the block that has been processed first is set for the necessary sub-block.
[0024] At this time, the memory management unit processes a sub-block within the block when the sub-block priority processing flag is set, and can release the sub-block priority processing flag.
[0025] At this time, the memory management unit can process the necessary pages within the necessary sub-block and perform address space mapping.
[0026] At this time, the memory management unit may perform a signature on the last word address of the required page and check whether the required page has been processed using the signature value of the last word address. Effects of the invention
[0027] According to the present invention, communication performance with remote memory in a separated memory environment can be improved.
[0028] In addition, the present invention can reduce latency caused by communication with remote memory by prioritizing the processing of necessary sub-blocks.
[0029] In addition, the present invention can reduce latency caused by communication with remote memory by prioritizing the processing of necessary pages. Brief explanation of the drawing
[0030] FIG. 1 is a flowchart illustrating a memory management method for a separated memory environment according to one embodiment of the present invention. Figure 2 is a graph showing the average read delay time according to the transmission I / O size. Figure 3 illustrates a method for allocating sub-blocks and using them for management and I / O. Figure 4 conceptually illustrates the waiting time when using the necessary sub-block priority processing method and the necessary page priority processing method. FIG. 5 is a flowchart illustrating a page fault processing process in a method according to one embodiment of the present invention. FIG. 6 is a flowchart illustrating the process of handling page faults of a block when processing sub-blocks first in a method according to one embodiment of the present invention. FIG. 7 is a flowchart illustrating a method for processing necessary pages first in a method according to an embodiment of the present invention. FIG. 8 is a graph showing the communication performance improvement effect of a method according to one embodiment of the present invention. FIG. 9 is a block diagram showing a memory management device in a separated memory environment according to one embodiment of the present invention. FIG. 10 is a diagram showing the configuration of a computer system according to an embodiment. Specific details for implementing the invention
[0031] The advantages and features of the present invention and the methods for achieving them will become clear by referring to the embodiments described below in detail together with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below but may be implemented in various different forms. These embodiments are provided merely to ensure that the disclosure of the present invention is complete and to fully inform those skilled in the art of the scope of the invention, and the present invention is defined only by the scope of the claims. Throughout the specification, the same reference numerals refer to the same components.
[0032] Although terms such as "first" or "second" are used to describe various components, these components are not limited by such terms. Such terms may be used merely to distinguish one component from another. Accordingly, the first component mentioned below may be the second component within the technical scope of the present invention.
[0033] The terms used herein are for describing embodiments and are not intended to limit the invention. In this specification, the singular form includes the plural form unless specifically stated otherwise in the text. As used in this specification, "comprises" or "comprising" implies that the mentioned component or step does not exclude the presence or addition of one or more other components or steps.
[0034] In this specification, each of the phrases 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 together in the corresponding phrase, or all possible combinations thereof.
[0035] Unless otherwise defined, all terms used in this specification may be interpreted in a sense that is commonly understood by those skilled in the art to which the present invention pertains. Additionally, terms defined in commonly used dictionaries are not to be interpreted ideally or excessively unless explicitly and specifically defined otherwise.
[0036] Hereinafter, embodiments of the present invention will be described in detail with reference to the attached drawings. When describing with reference to the drawings, identical or corresponding components are given the same reference numerals, and redundant descriptions thereof will be omitted.
[0037] FIG. 1 is a flowchart illustrating a memory management method for a separated memory environment according to one embodiment of the present invention.
[0038] A memory management method for a separated memory environment according to one embodiment of the present invention can be performed by a memory management device such as a computing device.
[0039] Referring to FIG. 1, a memory management method for a separated memory environment according to one embodiment of the present invention includes the step of processing a necessary sub-block within a block in priority over other sub-blocks when a page fault occurs (S110), and the step of processing a page fault for the block in which the necessary sub-block was processed in priority (S120).
[0040] At this time, the above sub-block may be composed of a plurality of consecutive memory pages.
[0041] At this time, the step (S110) of processing the necessary sub-block with priority over other sub-blocks may insert the necessary sub-block into a first queue and insert the other sub-block into a second queue.
[0042] At this time, the step (S110) of processing the necessary sub-block with priority over other sub-blocks may set a sub-block priority processing flag on the block after the input / output processing of the necessary sub-block.
[0043] At this time, the step (S120) of handling a page fault for a block in which the necessary sub-block is processed first can check whether the priority processing flag of the block in which the necessary sub-block is processed first is set.
[0044] At this time, the step (S120) of handling a page fault for a block in which the necessary sub-block is processed first may process the sub-block within the block when the sub-block priority processing flag is set, and release the sub-block priority processing flag.
[0045] At this time, the step (S110) of processing the necessary sub-block with priority over other sub-blocks can process the necessary pages within the necessary sub-block and perform address space mapping.
[0046] At this time, the step (S110) of processing the necessary sub-block in priority over other sub-blocks may perform a signature on the last word address of the necessary page and check whether the necessary page has been processed using the signature value of the last word address.
[0047] The present invention relates to a technology for improving communication performance to remote memory in a separated memory environment.
[0048] Prefetching technology can be used to reduce the number of remote memory accesses in a separated memory environment. This technology has the advantage of fetching pages expected to be needed later along with the pages currently required, thereby avoiding remote memory access on subsequent attempts upon a prediction hit. Since the probability of a prediction hit increases as more pages are fetched, it is necessary to fetch a large volume of pages for prefetching.
[0049] However, prefetching pages increases data transmission time, and the retrieval of actually needed pages may be delayed. Additionally, if predictions are inaccurate, retrieving unnecessary pages can lead to bandwidth consumption and wasted local memory. Consequently, the benefits of prefetching may not be realized, or performance may even suffer.
[0050] In this invention, communication performance from a separated memory environment to a remote memory can be improved through a method that quickly processes the pages actually needed, in addition to the effect of quickly fetching a large amount of pages.
[0051] First, according to one embodiment of the present invention, a method can be used to quickly retrieve a large amount of pages by increasing the I / O unit. In the case of memory separation systems at the existing OS level, I / O is typically performed in page units (4 KiB). This is because it is easy to manage on a page-by-page basis at the OS level. However, if the size of the I / O transfer unit is increased beyond the page size, the total time required to retrieve the data becomes faster.
[0052] Figure 2 is a graph showing the average read delay time according to the transmission I / O size.
[0053] Figure 2 shows the results of measuring the latency according to the size of data transmitted via RDMA using the ib_read_lat tool from perftest. For example, it can be assumed that a total of 128 KiB is fetched by adding the data for prefetching along with the necessary pages. In this case, if I / O is performed in units of 4 KiB pages, 32 DMA operations must be performed, and since each DMA operation takes 3 usec, the total could take 96 usec. On the other hand, if data is fetched in a size of 32 KiB, 4 DMA operations requiring 4.7 usec are performed, resulting in a total of 18.8 usec, which creates a latency difference of nearly five times. When prefetching such a large amount of data, performance improves as the I / O unit size increases.
[0054] In order to manage pages in large units and perform I / O by utilizing spatial locality, the present invention uses a unit called a sub-block.
[0055] Figure 3 illustrates a method for allocating sub-blocks and using them for management and I / O.
[0056] Referring to FIG. 3, a method according to one embodiment of the present invention can allocate multiple physically contiguous pages into a single sub-block and manage a separated memory system in sub-block units. In this case, one I / O can be performed in sub-block units. Multiple sub-blocks are composed of a single block, which refers to a large data block that takes spatial locality into account. Therefore, assuming a 32 KiB sub-block, when exchanging a 256 KiB block via RDMA, communication becomes possible through 8 RDMA operations.
[0057] Furthermore, these sub-blocks can facilitate memory management; based on the Linux kernel's compound page technology, memory can be managed in large units by managing the additional information of the page serving as the compound page header, rather than managing every page separately.
[0058] While using a method to access remote memory in sub-block units improves performance in large-scale prefetching and retrieving necessary data, it fails to improve performance in cases where the processing of necessary data is delayed or must be processed concurrently due to the processing of prefetched data. Therefore, the present invention proposes Critical Subblock First (CSF) and Critical Page First (CPF) techniques, which utilize large-scale prefetching to process necessary data first while preserving spatial locality.
[0059] Even if memory management and I / O processing are performed using sub-blocks, if the system performs synchronous processing in units of one large block when handling page faults for required pages, the processing of required sub-blocks is delayed because the page fault is processed only after waiting for all sub-blocks for prefetch along with the required sub-blocks.
[0060] By using the required sub-block priority processing technique, I / O for required sub-blocks is first inserted into the I / O queue dedicated solely to required sub-blocks, while sub-blocks for prefetching are inserted into the I / O queue for prefetching sub-blocks only after the required sub-blocks have been inserted. This eliminates the phenomenon where required data is pushed back due to prefetching. Additionally, since page faults for the required pages can be handled once the I / O for the required sub-blocks is complete, page faults can be processed asynchronously even if the I / O for the prefetched data is not finished, allowing for subsequent I / O processing for the corresponding prefetched sub-blocks. This effectively prevents the processing of required data from being delayed due to prefetching.
[0061] Figure 4 conceptually illustrates the waiting time when using the necessary sub-block priority processing method and the necessary page priority processing method.
[0062] Specifically, Figure 4 illustrates the effect of improving I / O time during page-fault processing when using the necessary sub-block priority processing method and the necessary page priority processing method. Even when managing with existing sub-blocks, the time to bring the entire block into local memory is shortened, but the page-fault processing time is determined by the time to process the I / O of a large amount of prefetch data.
[0063] However, when using the Required Sub-Block First Processing (CSF) method, I / O for the required sub-block is issued first, and the prefetched sub-block is issued to a different queue next. Therefore, not only is the prefetched data not affected, but page fault processing can be performed immediately once the I / O for the required sub-block is completed, which significantly reduces the page fault processing time. Figure 4 assumes an environment of 128 KiB blocks and 16 KiB sub-blocks. If sub-block number 6 in a block is the required sub-block, page fault processing is possible because the mapping of the required pages within the required sub-block can be completed once the processing for sub-block number 6 is finished.
[0064] FIG. 5 is a flowchart illustrating a page fault processing process in a method according to one embodiment of the present invention.
[0065] FIG. 6 is a flowchart illustrating the process of handling page faults of a block when processing sub-blocks first in a method according to one embodiment of the present invention.
[0066] Referring to FIG. 5, when a page fault occurs, it is determined whether a necessary sub-block is required (S510), and if it is a necessary sub-block, the necessary sub-block is inserted into the necessary sub-block I / O queue (S520). After confirming that the I / O processing of the necessary sub-block is complete (S530), the CSF flag of the block containing the necessary sub-block is set (=true) (S540). Next, address space mapping of the necessary sub-block is performed (S550). If it is a general sub-block that is not a necessary sub-block, the sub-block is inserted into the prefetch sub-block I / O queue (S560).
[0067] When a page fault occurs, the I / O of the prefetch sub-block processed asynchronously is processed in the background, and when a page fault occurs due to the next access to the block, it is checked whether the block is a block for which the necessary sub-block has been processed first (S610), and if it is a block for which the I / O processing for the prefetch sub-block has been checked, mapping is performed (S620, S630), the CSF flag of the block is set to false (S640), and page fault processing for the block is performed (S650).
[0068] If a block containing prefetched sub-blocks is extracted to remote memory or its mapping is broken before the I / O for those sub-blocks is finished, the corresponding operation is performed after all I / O is processed.
[0069] While the necessary sub-block first processing method helps accelerate page fault processing by retrieving necessary sub-blocks containing necessary pages, it incurs overhead compared to the cost of retrieving only the actual necessary pages to perform page fault processing. Therefore, the present invention proposes a necessary page first processing (CPF) method to further accelerate page fault processing while preserving spatial locality.
[0070] FIG. 7 is a flowchart illustrating a method for processing necessary pages first in a method according to an embodiment of the present invention.
[0071] RDMA technology is primarily used for data communication between a host and remote memory. When I / O is performed via a trusted protocol through DMA, data is transmitted in order from the lower address range to the higher address range. Therefore, if the last word of the I / O data changes after the I / O read request, it means that the data has been transmitted. In the present invention, this technology is utilized in a separated memory environment to perform I / O in units of large sub-blocks, while verifying whether the I / O of the necessary pages within the corresponding sub-block has been completed.
[0072] Referring to Fig. 7, to confirm the completion of page I / O processing, a specific signature is placed on the last word of the required page before the I / O read request (S720), and after the I / O request, it is confirmed that the transmission of the required page is complete by checking until the last word of the required page is not the specific signature (S740, S750). Even if a very small probability occurs where the signature value and the actual data value match, the I / O request can be processed using the existing I / O request handling technique of the required sub-block priority processing method.
[0073] After the completion of necessary page I / O processing, the page fault is similar to the page fault processing after the completion of necessary sub-block I / O processing in Fig. 6, but if a page fault occurs in the next corresponding block after only the necessary pages are mapped and the page fault is completed, the page fault of the block can be handled after performing I / O processing completion and mapping for all pages that are not necessary pages.
[0074] FIG. 8 is a graph showing the communication performance improvement effect of a method according to one embodiment of the present invention.
[0075] The graph in Figure 8 shows the throughput when performing the STREAM benchmark and represents the comparison results with KVM / QEMU-based virtualization technology (KVM), FastSwap, and DCM. DCM is divided into DCM 4K using 4 KiB blocks and DCM 128K using 128 KiB blocks, and DEHype is the technology proposed in this invention that uses 128 KiB blocks and 32 KiB sub-blocks. It shows the performance when applying sub-block configuration (+Subblock), necessary sub-block priority processing method (+CSF), and necessary page priority processing method (+CPF). The x-axis represents the results when the amount of host local memory in a separated memory environment is configured to 30%, 50%, and 70% of the total memory amount used by the benchmark.
[0076] It can be confirmed that applying the sub-block proposed in this invention results in a significant performance improvement of 91.5% compared to DCM 128K in a 30% local memory environment. This improvement was achieved by increasing the size of the I / O unit to reduce DMA overhead and by managing memory in units larger than pages. In addition, by using a required sub-block priority processing method and a required page priority processing method to quickly perform page-fault processing for required sub-blocks / pages, performance was improved by 9.1% compared to the performance without CSF / CPF application in a 30% local memory environment.
[0077] Therefore, the present invention devises a method for rapidly processing page faults along with the effect of prefetching a large amount of data by utilizing spatial locality, thereby enabling significant performance improvements compared to conventional technologies.
[0079] FIG. 9 is a block diagram showing a memory management device in a separated memory environment according to one embodiment of the present invention.
[0080] Referring to FIG. 9, a memory management device for a separated memory environment according to one embodiment of the present invention includes a memory management unit (910) that controls the input and output of a remote memory and a local memory, and a communication unit (920) that communicates with the remote memory. When a page fault occurs, the memory management unit (910) processes a necessary sub-block within a block with priority over other sub-blocks, and processes the page fault for the block in which the necessary sub-block was processed with priority.
[0081] At this time, the above sub-block may be composed of a plurality of consecutive memory pages.
[0082] At this time, the memory management unit (910) can insert the required sub-block into the first queue and insert the other sub-block into the second queue.
[0083] At this time, the memory management unit (910) can set a sub-block priority processing flag on the block after processing the input / output of the required sub-block.
[0084] At this time, the memory management unit (910) can check whether the priority processing flag of the block that has been prioritized for processing the required sub-block is set.
[0085] At this time, the memory management unit (910) can process the sub-block within the block when the sub-block priority processing flag is set, and can release the sub-block priority processing flag.
[0086] At this time, the memory management unit (910) can process the necessary pages within the necessary sub-block and perform address space mapping.
[0087] At this time, the memory management unit (910) can perform a signature on the last word address of the required page and check whether the required page is processed using the signature value of the last word address.
[0088] FIG. 10 is a diagram showing the configuration of a computer system according to an embodiment.
[0089] A memory management device for a separated memory environment according to an embodiment can be implemented in a computer system (1000), such as a computer-readable recording medium.
[0090] A computer system (1000) may include one or more processors (1010), memory (1030), user interface input device (1040), user interface output device (1050), and storage (1060) that communicate with each other via a bus (1020). Additionally, the computer system (1000) may further include a network interface (1070) connected to a network (1080). The processor (1010) may be a semiconductor device that executes programs or processing instructions stored in a central processing unit, memory (1030), or storage (1060). The memory (1030) and storage (1060) may be storage media comprising 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. For example, the memory (1030) may include a ROM (1031) or a RAM (1032).
[0091] The specific embodiments described in this invention are examples and do not limit the scope of the invention in any way. For the sake of brevity of the specification, descriptions of prior electronic configurations, control systems, software, and other functional aspects of said systems may be omitted. Additionally, the connections of lines or connecting members between components shown in the drawings are illustrative of functional connections and / or physical or circuit connections, and may be replaced or additionally represented as various functional connections, physical connections, or circuit connections in actual devices. Furthermore, unless specifically stated as “essential,” “importantly,” etc., a component may not be strictly necessary for the application of the invention.
[0092] Accordingly, the scope of the present invention should not be limited to the embodiments described above, and all scopes equivalent to or equivalently modified from the claims set forth below, as well as the claims set forth below, shall be considered to fall within the scope of the concept of the present invention. Explanation of the symbols
[0093] 910: Memory Management Unit 920: Communications Department 1000: Computer System 1010: Processor 1020: Bus 1030: Memory 1031: ROM 1032: RAM 1040: User interface input device 1050: User interface output device 1060: Storage 1070: Network Interface 1080: Network
Claims
Claim 1 A memory management method for a separated memory environment that performs memory input / output in units of sub-blocks composed of multiple pages, comprising: a step of processing a necessary sub-block within a block in priority over other sub-blocks when a page fault occurs; and a step of processing a page fault for a block in which the necessary sub-block was processed in priority; wherein the step of processing the necessary sub-block in priority over other sub-blocks comprises: a step of inserting the necessary sub-block into a first queue and inserting the other sub-block into a second queue; a step of performing address space mapping for a necessary page within the necessary sub-block; a step of performing a signature on the last word address of the necessary page to detect whether the input / output of the necessary page is completed in a word unit smaller than a page unit; and a step of verifying whether the input / output of the necessary page is completed by using a change in the signature value of the last word address after the input / output is performed. Claim 2 A memory management method for a separated memory environment according to claim 1, wherein the sub-block is composed of a plurality of consecutive memory pages. Claim 3 delete Claim 4 A memory management method for a separated memory environment according to claim 1, wherein the step of processing the necessary sub-block in priority over other sub-blocks is characterized by setting a sub-block priority processing flag on the block after the input / output processing of the necessary sub-block. Claim 5 A memory management method for a separated memory environment according to claim 4, wherein the step of processing a page fault for a block in which the necessary sub-block is prioritized involves checking whether the priority processing flag of the block in which the necessary sub-block is prioritized is set. Claim 6 A memory management method for a separated memory environment according to claim 5, wherein the step of processing a page fault for a block in which the necessary sub-block is processed first is characterized by processing a sub-block within the block when a sub-block priority processing flag is set, and releasing the sub-block priority processing flag. Claim 7 delete Claim 8 delete Claim 9 A memory management device in a separated memory environment that performs memory input / output in units of sub-blocks composed of multiple pages, comprising: a memory management unit that controls input / output of remote memory and local memory; and a communication unit that performs communication with remote memory; wherein the memory management unit processes a necessary sub-block within a block with priority over other sub-blocks when a page fault occurs, and processes a page fault for the block in which the necessary sub-block was processed with priority; wherein the memory management unit inserts the necessary sub-block into a first queue and inserts the other sub-block into a second queue, performs address space mapping for a necessary page within the necessary sub-block, performs a signature on the last word address of the necessary page to detect whether the input / output of the necessary page is completed in a word unit smaller than a page unit, and checks whether the input / output of the necessary page is completed using a change in the signature value of the last word address after the input / output is performed. Claim 10 A memory management device for a separated memory environment according to claim 9, wherein the sub-block is composed of a plurality of consecutive memory pages. Claim 11 delete Claim 12 A memory management device for a separated memory environment according to claim 9, wherein the memory management unit sets a sub-block priority processing flag on the block after processing the input / output of the necessary sub-block. Claim 13 A memory management device for a separated memory environment according to claim 12, wherein the memory management unit checks whether the priority processing flag of the block in which the necessary sub-block is prioritized is set. Claim 14 A memory management device for a separated memory environment according to claim 13, wherein the memory management unit processes a sub-block within the block when a sub-block priority processing flag is set and releases the sub-block priority processing flag. Claim 15 delete Claim 16 delete
Citation Information
Patent Citations
Method and apparatus of maintaining data for online analytical processing in a database system
KR1020160097362A
Computing Device and Method for Analysis of Prefetch Accuracy on GPU Unified Virtual Memory
KR1020230001933A
Flash management techniques
US20070300008A1
Computer Memory Expansion Device and Method of Operation
US20210374080A1