WO2024155074A1 - Electronic device, and method for managing memory of electronic device - Google Patents
Electronic device, and method for managing memory of electronic device Download PDFInfo
- Publication number
- WO2024155074A1 WO2024155074A1 PCT/KR2024/000786 KR2024000786W WO2024155074A1 WO 2024155074 A1 WO2024155074 A1 WO 2024155074A1 KR 2024000786 W KR2024000786 W KR 2024000786W WO 2024155074 A1 WO2024155074 A1 WO 2024155074A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- memory
- tier
- latency
- memories
- level
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 358
- 238000000034 method Methods 0.000 title claims description 35
- 230000005012 migration Effects 0.000 claims abstract description 69
- 238000013508 migration Methods 0.000 claims abstract description 69
- 230000004044 response Effects 0.000 claims abstract description 9
- 238000007726 management method Methods 0.000 claims description 16
- 238000004891 communication Methods 0.000 description 46
- 230000008569 process Effects 0.000 description 20
- 230000006870 function Effects 0.000 description 17
- 230000002085 persistent effect Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 238000013528 artificial neural network Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000001934 delay Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 230000000638 stimulation Effects 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003155 kinesthetic effect Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
Definitions
- This document relates to an electronic device that sets a memory balancing policy on a memory tiering system and a memory management method for the electronic device.
- Portable electronic devices such as smart phones can provide user experiences using various applications.
- improvements in data processing speed are required, and accordingly, improvements in hardware performance such as processors and memory are also required.
- improvements in hardware performance such as processors and memory are also required.
- the capacity of memory e.g., RAM (random access memory)
- RAM random access memory
- PMEM persistent memory
- DRAM dynamic random access memory
- Electronics can be used with DRAM to compensate for PMEM's slow access performance.
- Electronic devices can perform an auto-balancing operation that allocates memory pages between PMEM and DRAM to compensate for PMEM's slow access performance.
- the promotion process is a way to overcome the shortcomings of the memory hierarchy system, but the migration technique is complicated, so CPU operation may increase. Due to an increase in CPU operation, auto-balancing operation may actually delay the system. Additionally, page migration operations may be necessary in situations where free memory space is insufficient, and as memory is used to perform migration, it may further delay the system.
- the electronic device establishes a memory balancing policy between memory tiers with different performance on a memory tiering system that uses DRAM, a relatively fast memory, and PMEM, a relatively slow memory, and performs balancing operations efficiently. Methods for adjustment can be provided.
- the electronic device may include a plurality of memories including a first memory and a second memory having lower performance than the first memory, and a processor.
- the processor measures the latency of a plurality of memories, determines a tier to be allocated to at least one memory among the plurality of memories based on the measured latency, and responds to the page migration request.
- page migration may be controlled not to be performed between memories allocated to the same tier among a plurality of memories.
- a memory management method for an electronic device includes measuring the latency of a plurality of memories and determining a tier to be assigned to at least one memory among the plurality of memories based on the measured latency.
- the method may include controlling not to perform page migration between memories allocated to the same tier among a plurality of memories.
- the electronic device sets a tier in consideration of the latency of the memory and sets whether to perform an auto-balancing operation between tiers to efficiently use memory resources. You can utilize it.
- the electronic device sets memories whose latencies do not differ beyond a specified level into one tier and does not perform an auto-balancing operation between memories within the same tier, thereby preventing unnecessary balancing. It can reduce operation and prevent the system from slowing down due to auto-balancing operation.
- FIG. 1 is a block diagram of an electronic device in a network environment, according to various embodiments.
- FIG. 2 is a block diagram illustrating a memory management method of an electronic device according to an embodiment.
- Figure 3 is a block diagram showing the configuration of an electronic device according to an embodiment.
- Figures 4a, 4b, and 4c show the process of classifying tiers based on memory latency.
- Figures 5a and 5b illustrate the process of determining the memory allocation order in a situation where migration between tiers occurs.
- Figure 6 is a flowchart showing a memory management method of an electronic device according to an embodiment.
- FIG. 1 is a block diagram of an electronic device 101 in a network environment 100, according to various embodiments.
- the electronic device 101 communicates with the electronic device 102 through a first network 198 (e.g., a short-range wireless communication network) or a second network 199. It is possible to communicate with at least one of the electronic device 104 or the server 108 through (e.g., a long-distance wireless communication network). According to one embodiment, the electronic device 101 may communicate with the electronic device 104 through the server 108.
- a first network 198 e.g., a short-range wireless communication network
- a second network 199 e.g., a second network 199.
- the electronic device 101 may communicate with the electronic device 104 through the server 108.
- the electronic device 101 includes a processor 120, a memory 130, an input module 150, an audio output module 155, a display module 160, an audio module 170, and a sensor module ( 176), interface 177, connection terminal 178, haptic module 179, camera module 180, power management module 188, battery 189, communication module 190, subscriber identification module 196 , or may include an antenna module 197.
- at least one of these components eg, the connection terminal 178) may be omitted or one or more other components may be added to the electronic device 101.
- some of these components e.g., sensor module 176, camera module 180, or antenna module 197) are integrated into one component (e.g., display module 160). It can be.
- the processor 120 for example, executes software (e.g., program 140) to operate at least one other component (e.g., hardware or software component) of the electronic device 101 connected to the processor 120. It can be controlled and various data processing or calculations can be performed. According to one embodiment, as at least part of data processing or computation, the processor 120 stores commands or data received from another component (e.g., sensor module 176 or communication module 190) in volatile memory 132. The commands or data stored in the volatile memory 132 can be processed, and the resulting data can be stored in the non-volatile memory 134.
- software e.g., program 140
- the processor 120 stores commands or data received from another component (e.g., sensor module 176 or communication module 190) in volatile memory 132.
- the commands or data stored in the volatile memory 132 can be processed, and the resulting data can be stored in the non-volatile memory 134.
- the processor 120 includes the main processor 121 (e.g., a central processing unit or an application processor) or an auxiliary processor 123 that can operate independently or together (e.g., a graphics processing unit, a neural network processing unit ( It may include a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor).
- the main processor 121 e.g., a central processing unit or an application processor
- an auxiliary processor 123 e.g., a graphics processing unit, a neural network processing unit ( It may include a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor.
- the electronic device 101 includes a main processor 121 and a secondary processor 123
- the secondary processor 123 may be set to use lower power than the main processor 121 or be specialized for a designated function. You can.
- the auxiliary processor 123 may be implemented separately from the main processor 121 or as part of it.
- the auxiliary processor 123 may, for example, act on behalf of the main processor 121 while the main processor 121 is in an inactive (e.g., sleep) state, or while the main processor 121 is in an active (e.g., application execution) state. ), together with the main processor 121, at least one of the components of the electronic device 101 (e.g., the display module 160, the sensor module 176, or the communication module 190) At least some of the functions or states related to can be controlled.
- co-processor 123 e.g., image signal processor or communication processor
- may be implemented as part of another functionally related component e.g., camera module 180 or communication module 190. there is.
- the auxiliary processor 123 may include a hardware structure specialized for processing artificial intelligence models.
- Artificial intelligence models can be created through machine learning. For example, such learning may be performed in the electronic device 101 itself on which the artificial intelligence model is performed, or may be performed through a separate server (e.g., server 108).
- Learning algorithms may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but It is not limited.
- An artificial intelligence model may include multiple artificial neural network layers.
- Artificial neural networks include deep neural network (DNN), convolutional neural network (CNN), recurrent neural network (RNN), restricted boltzmann machine (RBM), belief deep network (DBN), bidirectional recurrent deep neural network (BRDNN), It may be one of deep Q-networks or a combination of two or more of the above, but is not limited to the examples described above.
- artificial intelligence models may additionally or alternatively include software structures.
- the memory 130 may store various data used by at least one component (eg, the processor 120 or the sensor module 176) of the electronic device 101. Data may include, for example, input data or output data for software (e.g., program 140) and instructions related thereto.
- Memory 130 may include volatile memory 132 or non-volatile memory 134.
- the program 140 may be stored as software in the memory 130 and may include, for example, an operating system 142, middleware 144, or application 146.
- the input module 150 may receive commands or data to be used in a component of the electronic device 101 (e.g., the processor 120) from outside the electronic device 101 (e.g., a user).
- the input module 150 may include, for example, a microphone, mouse, keyboard, keys (eg, buttons), or digital pen (eg, stylus pen).
- the sound output module 155 may output sound signals to the outside of the electronic device 101.
- the sound output module 155 may include, for example, a speaker or a receiver. Speakers can be used for general purposes such as multimedia playback or recording playback.
- the receiver can be used to receive incoming calls. According to one embodiment, the receiver may be implemented separately from the speaker or as part of it.
- the display module 160 can visually provide information to the outside of the electronic device 101 (eg, a user).
- the display module 160 may include, for example, a display, a hologram device, or a projector, and a control circuit for controlling the device.
- the display module 160 may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of force generated by the touch.
- the audio module 170 can convert sound into an electrical signal or, conversely, convert an electrical signal into sound. According to one embodiment, the audio module 170 acquires sound through the input module 150, the sound output module 155, or an external electronic device (e.g., directly or wirelessly connected to the electronic device 101). Sound may be output through the electronic device 102 (e.g., speaker or headphone).
- the electronic device 102 e.g., speaker or headphone
- the sensor module 176 detects the operating state (e.g., power or temperature) of the electronic device 101 or the external environmental state (e.g., user state) and generates an electrical signal or data value corresponding to the detected state. can do.
- the sensor module 176 includes, for example, a gesture sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, It may include a temperature sensor, humidity sensor, or light sensor.
- the interface 177 may support one or more designated protocols that can be used to connect the electronic device 101 directly or wirelessly with an external electronic device (eg, the electronic device 102).
- the interface 177 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
- HDMI high definition multimedia interface
- USB universal serial bus
- SD card interface Secure Digital Card interface
- audio interface audio interface
- connection terminal 178 may include a connector through which the electronic device 101 can be physically connected to an external electronic device (eg, the electronic device 102).
- the connection terminal 178 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).
- the haptic module 179 can convert electrical signals into mechanical stimulation (e.g., vibration or movement) or electrical stimulation that the user can perceive through tactile or kinesthetic senses.
- the haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
- the camera module 180 can capture still images and moving images.
- the camera module 180 may include one or more lenses, image sensors, image signal processors, or flashes.
- the power management module 188 can manage power supplied to the electronic device 101.
- the power management module 188 may be implemented as at least a part of, for example, a power management integrated circuit (PMIC).
- PMIC power management integrated circuit
- Battery 189 may supply power to at least one component of electronic device 101.
- the battery 189 may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
- Communication module 190 is configured to provide a direct (e.g., wired) communication channel or wireless communication channel between electronic device 101 and an external electronic device (e.g., electronic device 102, electronic device 104, or server 108). It can support establishment and communication through established communication channels. Communication module 190 operates independently of processor 120 (e.g., an application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication.
- processor 120 e.g., an application processor
- the communication module 190 is a wireless communication module 192 (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 194 (e.g., : LAN (local area network) communication module, or power line communication module) may be included.
- a wireless communication module 192 e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module
- GNSS global navigation satellite system
- wired communication module 194 e.g., : LAN (local area network) communication module, or power line communication module
- the corresponding communication module is a first network 198 (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network 199 (e.g., legacy It may communicate with an external electronic device 104 through a telecommunication network such as a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., LAN or WAN).
- a telecommunication network such as a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., LAN or WAN).
- a telecommunication network such as a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., LAN or WAN).
- a telecommunication network such as a cellular network, a 5G network, a next-generation communication network
- the wireless communication module 192 uses subscriber information (e.g., International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 196 within a communication network such as the first network 198 or the second network 199.
- subscriber information e.g., International Mobile Subscriber Identifier (IMSI)
- IMSI International Mobile Subscriber Identifier
- the wireless communication module 192 may support 5G networks after 4G networks and next-generation communication technologies, for example, NR access technology (new radio access technology).
- NR access technology provides high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and access to multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low latency). -latency communications)) can be supported.
- the wireless communication module 192 may support a high frequency band (eg, mmWave band), for example, to achieve a high data rate.
- a high frequency band eg, mmWave band
- the wireless communication module 192 uses various technologies to secure performance in high frequency bands, for example, beamforming, massive array multiple-input and multiple-output (MIMO), and full-dimensional multiplexing. It can support technologies such as input/output (FD-MIMO: full dimensional MIMO), array antenna, analog beam-forming, or large scale antenna.
- the wireless communication module 192 may support various requirements specified in the electronic device 101, an external electronic device (e.g., electronic device 104), or a network system (e.g., second network 199).
- the wireless communication module 192 supports Peak data rate (e.g., 20 Gbps or more) for realizing eMBB, loss coverage (e.g., 164 dB or less) for realizing mmTC, or U-plane latency (e.g., 164 dB or less) for realizing URLLC.
- Peak data rate e.g., 20 Gbps or more
- loss coverage e.g., 164 dB or less
- U-plane latency e.g., 164 dB or less
- the antenna module 197 may transmit or receive signals or power to or from the outside (eg, an external electronic device).
- the antenna module 197 may include an antenna including a radiator made of a conductor or a conductive pattern formed on a substrate (eg, PCB).
- the antenna module 197 may include a plurality of antennas (eg, an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network such as the first network 198 or the second network 199 is connected to the plurality of antennas by, for example, the communication module 190. can be selected. Signals or power may be transmitted or received between the communication module 190 and an external electronic device through the selected at least one antenna.
- other components eg, radio frequency integrated circuit (RFIC) may be additionally formed as part of the antenna module 197.
- RFIC radio frequency integrated circuit
- the antenna module 197 may form a mmWave antenna module.
- a mmWave antenna module includes a printed circuit board, an RFIC disposed on or adjacent to a first side (e.g., bottom side) of the printed circuit board and capable of supporting a designated high frequency band (e.g., mmWave band), And a plurality of antennas (e.g., array antennas) disposed on or adjacent to the second side (e.g., top or side) of the printed circuit board and capable of transmitting or receiving signals in the designated high frequency band. can do.
- a mmWave antenna module includes a printed circuit board, an RFIC disposed on or adjacent to a first side (e.g., bottom side) of the printed circuit board and capable of supporting a designated high frequency band (e.g., mmWave band), And a plurality of antennas (e.g., array antennas) disposed on or adjacent to the second side (e.g., top or side) of the
- peripheral devices e.g., bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)
- signal e.g. commands or data
- commands or data may be transmitted or received between the electronic device 101 and the external electronic device 104 through the server 108 connected to the second network 199.
- Each of the external electronic devices 102 or 104 may be of the same or different type as the electronic device 101.
- all or part of the operations performed in the electronic device 101 may be executed in one or more of the external electronic devices 102, 104, or 108.
- the electronic device 101 may perform the function or service instead of executing the function or service on its own.
- one or more external electronic devices may be requested to perform at least part of the function or service.
- One or more external electronic devices that have received the request may execute at least part of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device 101.
- the electronic device 101 may process the result as is or additionally and provide it as at least part of a response to the request.
- cloud computing distributed computing, mobile edge computing (MEC), or client-server computing technology can be used.
- the electronic device 101 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing.
- the external electronic device 104 may include an Internet of Things (IoT) device.
- Server 108 may be an intelligent server using machine learning and/or neural networks.
- the external electronic device 104 or server 108 may be included in the second network 199.
- the electronic device 101 may be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
- Electronic devices may be of various types.
- Electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances.
- Electronic devices according to embodiments of this document are not limited to the above-described devices.
- first, second, or first or second may be used simply to distinguish one component from another, and to refer to those components in other respects (e.g., importance or order) is not limited.
- One (e.g., first) component is said to be “coupled” or “connected” to another (e.g., second) component, with or without the terms “functionally” or “communicatively.” Where mentioned, it means that any of the components can be connected to the other components directly (e.g. wired), wirelessly, or through a third component.
- module used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and is interchangeable with terms such as logic, logic block, component, or circuit, for example. It can be used as A module may be an integrated part or a minimum unit of the parts or a part thereof that performs one or more functions. For example, according to one embodiment, the module may be implemented in the form of an application-specific integrated circuit (ASIC).
- ASIC application-specific integrated circuit
- Various embodiments of the present document are one or more instructions stored in a storage medium (e.g., built-in memory 136 or external memory 138) that can be read by a machine (e.g., electronic device 101). It may be implemented as software (e.g., program 140) including these.
- a processor e.g., processor 120
- the one or more instructions may include code generated by a compiler or code that can be executed by an interpreter.
- a storage medium that can be read by a device may be provided in the form of a non-transitory storage medium.
- 'non-transitory' only means that the storage medium is a tangible device and does not contain signals (e.g. electromagnetic waves). This term refers to cases where data is stored semi-permanently in the storage medium. There is no distinction between temporary storage cases.
- Computer program products are commodities and can be traded between sellers and buyers.
- the computer program product may be distributed in the form of a machine-readable storage medium (e.g. compact disc read only memory (CD-ROM)) or through an application store (e.g. Play StoreTM) or on two user devices (e.g. It can be distributed (e.g. downloaded or uploaded) directly between smart phones) or online.
- a machine-readable storage medium e.g. compact disc read only memory (CD-ROM)
- an application store e.g. Play StoreTM
- two user devices e.g. It can be distributed (e.g. downloaded or uploaded) directly between smart phones) or online.
- at least a portion of the computer program product may be at least temporarily stored or temporarily created in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.
- each component (e.g., module or program) of the above-described components may include a single or plural entity, and some of the plurality of entities may be separately placed in other components. there is.
- one or more of the components or operations described above may be omitted, or one or more other components or operations may be added.
- multiple components eg, modules or programs
- the integrated component may perform one or more functions of each component of the plurality of components identically or similarly to those performed by the corresponding component of the plurality of components prior to the integration. .
- operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, or omitted. Alternatively, one or more other operations may be added.
- Figure 2 is a block diagram showing a memory management method of the electronic device 101 according to an embodiment of the present disclosure.
- the electronic device 101 may include a user space and a kernel space.
- the program 140 included in the electronic device 101 can freely access the user space, but may not directly access the kernel space.
- user space may refer to all code that program 140 executes outside of kernel space.
- User space may be a memory area where all user mode applications operate.
- Kernel space may be a spare space for executing kernel and kernel extension functions.
- User space and kernel space may be the same as user space and kernel space.
- User space may contain various programs and/or libraries that it uses to interact with kernel space.
- user space may include a virtual address space (virtual address space) 211.
- Kernel space may include a file system (file system, 23).
- the electronic device 101 may enhance security by separating user space and kernel space.
- the electronic device 101 may perform processes involving hardware operations such as reading and/or writing files in kernel space.
- the electronic device 101 can manipulate data included in the kernel space using a system call.
- kernel context switching and user buffers Performance degradation may occur due to memory copying.
- the electronic device 101 can read or write a file mapped to memory.
- the electronic device 101 can map and use files in a virtual address space using the mmap system call.
- the electronic device 101 may read and write data and/or files using load and/or store processor instructions instead of read and/or write system calls.
- the electronic device 101 may include a plurality of nodes 201 and 202.
- Each of the plurality of nodes 201 and 202 may have different access speeds.
- the access speed may be the time it takes for the processor 120 to access a specific address of the memory 130 and obtain data.
- the access speed may be the time it takes for the processor 120 to access a specific address of the memory 130 and obtain data.
- it is not limited to this, and each of the plurality of nodes 201 and 202 may have the same access speed.
- the electronic device 101 may include a first node 201 and a second node 202.
- the first node 201 and the second node 202 may have different access speeds. However, it is not limited to this, and the first node 201 and the second node 202 may have the same access speed.
- differences in access speed between memory nodes may be caused by logical factors such as physical distance and/or access latency between the processor 120 (e.g., CPU, application processor) and the memory 130. You can.
- a node may be a bundle of processors and local memory with the same access speed.
- NUMA two-socket non-uniform memory access
- the processor and memory mounted on each socket may constitute a node.
- a node consisting of only memory may also exist.
- the electronic device 101 may include zones in which the physical memory of the node is divided according to purpose.
- the electronic device 101 may set a target zone when allocating memory.
- the electronic device 101 sets a preferred zone based on a request flag, and if memory allocation fails in the zone, allocation is made while traversing the zone list. You can try .
- the first node 201 may include a first memory 1311 and the second node 202 may include a second memory 1312.
- the first memory 1311 and the second memory 1312 may be different types of memory.
- the first memory 1311 may be a dynamic random access memory (DRAM)
- the second memory 1312 may be a persistent memory (PMEM).
- PMEM can be a memory that can be accessed in byte units like DRAM and includes non-volatility (persistence) of data.
- the first memory 1311 and the second memory 1312 may have different access latencies depending on their physical characteristics.
- the first node 201 may be a node with a faster access speed than the second node 202.
- an anonymous page 210 represents unread memory from a file and may be a page allocated for general purposes required for execution of a program, such as the heap and/or stack of a process. there is.
- file pages 220 and 230 may be data structures representing memory containing file data.
- File pages 220 and 230 may be managed and/or accessed by a page cache.
- File pages 220 and 230 may require relatively slow access speeds compared to the anonymous page 210.
- the anonymous page 210 is mapped directly to the virtual address space 211 and can be accessed according to load and/or store processor instructions. Accordingly, the anonymous page 210 may request an access waiting time faster than the specified access waiting time. The anonymous page 210 may have a faster access latency than the file pages 220 and 230.
- the electronic device 101 under the control of the processor 120, when there is a memory allocation request for the anonymous page 210, the electronic device 101 includes the first node 201, which is a node faster than the specified access speed. 1 An anonymous page 210 can be allocated to memory 1311.
- the electronic device 101 under the control of the processor 120, may determine whether there is a file mapped to the memory when a memory allocation request is made for the file pages 220 and 230.
- the first file page 220 includes a file mapped to memory, and the file can be mapped and used in the virtual address space 211.
- the electronic device 101 under control of the processor 120, transfers the file page (e.g., the first file page 220) to a node faster than the specified access speed.
- a file page (eg, first file page 220) may be allocated to the first memory 1311 included in the first node 201.
- the electronic device 101 under control of the processor 120, transfers the file page (e.g., the second file page 230) to a node slower than the specified access speed.
- a file page (eg, the second file page 230) may be allocated to the second memory 1312 included in the second node 202.
- the electronic device 101 under the control of the processor 120, when a memory allocation request is made, the electronic device 101 selects a node faster than the specified access speed or a node slower than the specified access speed based on the properties and/or type of the page. You can choose.
- the electronic device 101 may select a node faster than a specified access speed or a node slower than the specified access speed based on a user hint.
- the electronic device 101 may select a node faster than a specified access speed or a node slower than the specified access speed based on the file page cache hit rate. .
- the electronic device 101 may allocate pages to the selected node under the control of the processor 120.
- the electronic device 101 may determine whether to allow page migration based on the properties and/or type of the page.
- the electronic device 101 may determine whether to allow page migration based on a user hint.
- the electronic device 101 may determine whether to allow page migration based on whether the file has pages mapped to memory.
- the electronic device 101 may determine whether to allow page migration based on the file page cache hit rate.
- page migration may be an operation to move an address in memory to another location in logic such as memory compaction.
- the electronic device 101 may manage pages based on mobility attributes to prevent memory fragmentation and improve efficiency.
- Movable properties may be movable, non-movable, and/or reclaimable. Pages with non-movable properties may not be migrated.
- Figure 3 is a block diagram showing the configuration of an electronic device according to an embodiment.
- memory management 320 may include a memory checker 322, a migrator 324, and a migration manager 326.
- the memory management 320, memory checker 322, migrator 324, and migration manager 326 may be software modules that include at least one instruction executed on a processor (e.g., processor 120 in FIG. 1). .
- the operations of the memory management 320, the memory checker 322, the migrator 324, and the migration manager 326 can be understood as the operations of the processor 120.
- the memory checker 322 can measure latency at the nodes between each memory. Latency may refer to the time required to send a request to a memory (e.g., memory 130 in FIG. 1) and obtain the requested data.
- the migrator 324 can perform page migration between layers of a plurality of memories.
- a page may refer to a data structure for storing data.
- a page may refer to a space in which a memory area is divided into a certain size.
- a page may contain file data.
- a page may refer to an anonymous page containing data requested by a process through a specific function (e.g. malloc).
- Page migration may refer to the operation of moving a page containing file data to another layer.
- the migrator (324) uses fast memory (e.g., DRAM) (310) with relatively low latency and fast access, and slow memory (e.g., persistent memory) (312) with relatively high latency and slow access. , 314), page migration can be performed.
- fast memory e.g., DRAM
- slow memory e.g., persistent memory
- the migrator 324 may not perform migration if the first slow memory 312 and the second slow memory 314 are of the same tier. When the memory capacity of the first slow memory (312) is full, the migrator (324) does not migrate pages to the second slow memory (314) of the same tier, but swaps them onto the storage (316). (swap) can be performed. For example, the migrator 324 may swap an anonymous page onto the storage 316 without migrating it. The migrator (324) can reflect the dirty page in the file if its contents have been changed while containing file data. If it is not a dirty page, the migrator (324) can determine that no changes have been made and delete the page. Swap may refer to an operation that utilizes some space in the storage 316 to assist work when there is insufficient memory on the system.
- An electronic device (e.g., the electronic device 101 of FIG. 1) can prevent data loss or system errors from occurring due to full memory capacity through swapping on the storage 316. Swapped pages are located on the storage 316, so access speed may be relatively slower than random access memory (RAM).
- the electronic device 101 uses the storage 316 by performing swap when there is insufficient space in the random access memory (RAM), and when the space in the random access memory (RAM) becomes free again, the memory (e.g.
- the electronic device 101 can move files or pages onto the DRAM (310) or persistent memory (312, 314) and swap them onto the storage (316) when RAM (random access memory) space is insufficient. Swap out and a flush operation may be performed to rewrite the content of the page to the storage space (e.g., storage 316).
- the device 101 can read data written through swap on the storage 316 (swap in).
- the migration manager (326) can manage the logical tier (328) and migration policy (330).
- the logical tier 328 may refer to information about a tier classified by a processor (e.g., processor 120 of FIG. 1) based on the latency of the memory.
- the processor 120 measures the latency on each memory node, and if the difference in latency between one node and another node is less than a specified level (e.g., about 40%), the two nodes are placed in the same tier. Can be classified.
- the specified level is only an example, is not fixed, and may vary depending on settings.
- the migration policy 330 may include a policy for path settings when performing page migration.
- the electronic device 101 sets a tier in consideration of the latency of the memory and sets whether to perform an auto-balancing operation between tiers to efficiently Memory resources can be utilized.
- Auto-balancing may include page migration operations.
- a page may refer to a data structure for storing data.
- a page may refer to a space in which a memory area is divided into a certain size.
- a page may contain file data.
- a page may refer to an anonymous page containing data requested by a process through a specific function (e.g. malloc).
- Page migration may refer to the operation of moving a page containing file data to another layer.
- Auto-balancing is a demotion operation that moves pages from fast memory (e.g. DRAM), which is relatively fast to access, to slow memory (e.g.
- persistent memory which is relatively slow to access, in situations where free memory space is insufficient.
- auto-balancing transfers hot pages that are accessed in excess of a specified level from relatively slow access slow memory (e.g. persistent memory) to relatively fast access fast memory (e.g. DRAM) in situations where memory is available. ) can include a promotion action that moves it to the top.
- processor 120 distinguishes tiers based on the latency on each memory node and sets a migration path based on the tiers will be described with reference to FIGS. 4A to 5B. will be.
- Figures 4a, 4b, and 4c show the process of classifying tiers based on memory latency.
- a processor e.g., processor 120 of FIG. 1 measures the latency of a plurality of memories and determines a tier between memories based on the measured latency. can be distinguished.
- the processor 120 processes the first tier 410a and the second tier 420a based on the latency difference between the DRAM 412a and the persistent memory (PMEM) 422a exceeding a specified level.
- the specified level may mean a level at which the latency of the PMEM 422a differs by less than about 40% based on the latency of the DRAM 412a. This is only an example, and the specified level is not limited to 40% and may vary depending on settings.
- the processor 120 may determine that there will be a performance gain when performing migration because there is a clear difference in latency between the DRAM 412a and the PMEM 422a, resulting in a difference in read performance.
- Migration may refer to the operation of moving a page containing file data to another layer. Migration operations are complex and require CPU performance during the page allocation process, which can cause system delays.
- the processor 120 may perform a migration operation when there is insufficient free space in the memory, but overhead may occur to perform the migration operation. The processor 120 may actually cause further system delay due to overhead for performing a migration operation.
- the OS logic to perform a migration operation may occupy the CPU. In this situation, the CPU of the processor 120 may be occupied and the response to the user request may be delayed. Overhead may refer to a situation where the reply to a user request is delayed due to a migration operation.
- the electronic device uses a memory that uses DRAM, a memory with a relatively fast read speed, and PMEM, a memory with a relatively slow read speed. It is possible to establish a memory balancing policy between memory tiers with different performance in a memory tiering system and provide a method for efficiently controlling balancing operations.
- the processor 420 moves pages to memory with relatively long latency. can be controlled to migrate.
- the processor 120 divides the two memories into one tier (e.g., a first tier) based on the latency difference between the DRAM 412b and the persistent memory (PMEM) 414b not exceeding a specified level. It can be classified into tiers (410b)). According to one embodiment, the processor 420 may control pages not to be migrated between memories within the same tier. If the latency difference between a plurality of memories does not exceed a specified level, the processor 120 has a greater possibility of system delay that may occur during migration than the performance gain obtained by performing migration. You can decide it's big.
- one tier e.g., a first tier
- PMEM persistent memory
- the processor 120 classifies the plurality of memories into one tier (e.g., the first tier 410b), and between memories within the same tier, page You can control (page) from migrating.
- one tier e.g., the first tier 410b
- the processor 120 divides the two memories into one tier (e.g., It can be classified into the first tier (410c).
- the processor 120 is classified into the second tier 420c based on the latency difference for the first PMEM 422c and the second PMEM 424c compared to the DRAM 412c exceeding a specified level. can do.
- the processor 120 may control pages not to be migrated between the DRAM 412c classified as the first tier 410c and the third PMEM 414c. Additionally, the processor 120 may control pages not to be migrated between the first PMEM 422c and the second PMEM 424c classified as the second tier 420c. If the free space of the DRAM 412c is less than a specified level, the processor 120 may migrate pages onto the first PMEM 422c and/or the second PMEM 424c. If the free space of the third PMEM 414c is less than a specified level, the processor 120 may migrate pages onto the first PMEM 422c and/or the second PMEM 424c.
- Figures 5a and 5b illustrate the process of determining the memory allocation order in a situation where migration between tiers occurs.
- a processor may migrate a page from memory in the first tier 510a to memories in the second tier 520a.
- an electronic device sets a tier in consideration of the latency of the memory and performs auto-balancing between tiers. You can utilize memory resources efficiently by setting whether to perform an operation.
- Auto-balancing may include page migration operations.
- a page may refer to a data structure for storing data.
- a page may refer to a space in which a memory area is divided into a certain size.
- a page may contain file data.
- a page may refer to an anonymous page containing data requested by a process through a specific function (e.g. malloc).
- Page migration may refer to the operation of moving a page containing file data to another layer.
- Auto-balancing is a demotion operation that moves pages from fast memory (e.g.
- DRAM which is relatively fast to access
- slow memory e.g. persistent memory
- auto-balancing transfers hot pages that are accessed in excess of a specified level from relatively slow access slow memory (e.g. persistent memory) to relatively fast access fast memory (e.g. DRAM) in situations where memory is available.
- the processor 120 may migrate a page on the DRAM 512a in the first tier 510a to either the first PMEM 522a or the second PMEM 524a in the second tier 520a.
- the processor 120 may determine which memory page to migrate first among the first PMEM 522a and the second PMEM 524a based on the fallback list.
- the fallback list may include information about the migration order determined based on latency for a plurality of memories. For example, if the latency of the first PMEM 522a is relatively lower than that of the second PMEM 524a, the rank of the first PMEM 522a is higher than that of the second PMEM 524a on the fallback list. It can be recorded as being ahead of .
- the processor 120 checks the free space of the first PMEM 522a based on the fallback list, and if the free space of the first PMEM 522a exceeds a specified level, the processor 120 moves the page of the DRAM 512a to the first PMEM ( 522a) It can be moved to phase 522a). If the free space of the first PMEM 522a is less than a specified level, the processor 120 may check the free space of the second PMEM 524a as a later priority. If the free space of the second PMEM 524a exceeds a specified level, the processor 120 may move the page of the DRAM 512a onto the second PMEM 524a.
- Figure 5b illustrates a similar situation without the latencies of the first PMEM 522b and the second PMEM 524b exceeding the specified level.
- the fallback list may record the first PMEM 522b and the second PMEM 524b in the same ranking.
- the processor 120 may check the free space of both the first PMEM 522b and the second PMEM 524b. The processor 120 may move the page of the DRAM 512b to a memory of the first PMEM 522b and the second PMEM 524b whose free space exceeds a specified level.
- the processor 120 determines the capacity ( The page of the DRAM 512b can be preferentially moved to a memory with a relatively larger size. In a situation where the free space of the DRAM 512b on the first tier 510b is less than a specified level, the processor 120 blocks other memories on the second tier 520b (e.g., the first PMEM 522b and the second PMEM 524b). )), the page of the DRAM 512b can be migrated. The processor 120 moves pages on the memories on the second tier 520b to another tier when there is insufficient free space in the memories on the second tier 520b or when other pages need to be moved further on the DRAM 512b. It can be moved to memories.
- the processor 120 moves pages on the memories on the second tier 520b to another tier when there is insufficient free space in the memories on the second tier 520b or when other pages need to be moved further on the DRAM 512b. It can be moved to memories.
- the processor 120 may swap pages onto storage (eg, storage 316 in FIG. 3). Swap may refer to an operation that utilizes some space in the storage 316 to assist work when there is insufficient memory on the system.
- storage eg, storage 316 in FIG. 3
- Swap may refer to an operation that utilizes some space in the storage 316 to assist work when there is insufficient memory on the system.
- CPU resources may be consumed.
- the processor 120 may need to control pages to prevent possible migration or swap.
- Memory with a relatively larger capacity (size) has enough free space, so the probability of migrating or swapping a specific page to another tier may be relatively low.
- memory with a relatively smaller capacity may have insufficient free space, so the probability of migrating or swapping a specific page to another tier may be relatively high depending on the situation.
- the processor 120 may preferentially move the page of the DRAM 512a to a memory with a relatively larger capacity among the first PMEM 522b and the second PMEM 524b.
- the processor 120 preferentially moves pages of the DRAM 512a onto memory with a relatively larger capacity among the first PMEM 522b and the second PMEM 524b to migrate specific pages to another tier. This can lower the probability of swapping and reduce CPU resource consumption.
- Figure 6 is a flowchart showing a memory management method of an electronic device according to an embodiment.
- the operations described with reference to FIG. 6 may be implemented based on instructions that can be stored in a computer recording medium or memory (eg, memory 130 in FIG. 1).
- the illustrated method 600 can be executed by the electronic device previously described with reference to FIGS. 1 to 5B (e.g., the electronic device 101 and the processor 120 of FIG. 1), and the technical features described above are described below. Decided to omit it. The order of each operation in FIG. 6 may be changed, some operations may be omitted, and some operations may be performed simultaneously.
- a processor may measure the latency of a plurality of memories.
- the plurality of memories may be, for example, dynamic random access memory (DRAM) and/or persistent memory (PMEM).
- PMEM can be a memory that can be accessed in byte units like DRAM and includes non-volatility (persistence) of data. This is only an example, and the types of plural memories are not limited to this. Latency may refer to the time it takes to send a request to memory and obtain the requested data.
- the processor 120 may measure the latency of a plurality of memories and distinguish tiers between memories based on the measured latency.
- the processor 120 measures the latency on each memory node, and if the difference in latency between one node and another node is less than a specified level (e.g., about 40%), the two nodes are placed in the same tier. Can be classified.
- the specified level is only an example, is not fixed, and may vary depending on settings.
- the electronic device 101 sets a tier in consideration of the latency of the memory and sets whether to perform an auto-balancing operation between tiers to efficiently Memory resources can be utilized.
- Auto-balancing may include page migration operations.
- a page may refer to a data structure for storing data.
- a page may refer to a space in which a memory area is divided into a certain size.
- a page may contain file data.
- a page may refer to an anonymous page containing data requested by a process through a specific function (e.g. malloc).
- Page migration may refer to the operation of moving a page containing file data to another layer.
- Auto-balancing is a demotion operation that moves pages from fast memory (e.g. DRAM), which is relatively fast to access, to slow memory (e.g.
- persistent memory which is relatively slow to access, in situations where free memory space is insufficient.
- auto-balancing transfers hot pages that are accessed in excess of a specified level from relatively slow access slow memory (e.g. persistent memory) to relatively fast access fast memory (e.g. DRAM) in situations where memory is available. ) can include a promotion action that moves it to the top.
- the processor 120 may determine whether the plurality of memories are of the same tier.
- the processor 120 may control not to migrate pages between the plurality of memories.
- Migration may refer to the operation of moving a page containing file data to another layer. Migration operations are complex and require CPU performance during the page allocation process, which can cause system delays.
- the processor 120 may perform a migration operation when there is insufficient free space in the memory, but overhead may occur to perform the migration operation. Overhead may refer to the time and/or memory required to perform a migration operation. The processor 120 may actually cause further system delay due to overhead for performing a migration operation. To prevent such system delays, the electronic device according to this document (e.g., the electronic device 101 of FIG.
- the processor 120 If the latency difference between a plurality of memories does not exceed a specified level, the processor 120 has a greater possibility of system delay that may occur during migration than the performance gain obtained by performing migration. You can decide it's big. For this reason, if the latency difference does not exceed a specified level, the processor 120 classifies the plurality of memories into one tier (e.g., the first tier 410b), and between memories within the same tier, page You can control (page) from migrating.
- one tier e.g., the first tier 410b
- operation 630 when a memory shortage occurs in memory with relatively low latency, a page is transferred to memory with relatively long latency. ) can be controlled to migrate.
- the processor 120 may classify the memory into one tier when the difference in latency between the plurality of memories is less than a specified level.
- the processor 120 may classify the memory into different tiers when the difference in latency between the plurality of memories exceeds a specified level.
- the processor 120 classifies memories whose latency corresponds to a first level (e.g., 10ns) into the first tier, and selects memories whose latency is relatively longer than the first level. Memories corresponding to the second level (e.g., 20ns) can be classified into the second tier.
- a first level e.g. 10ns
- a second level e.g. 20ns
- the processor 120 may classify memory whose latency is within a certain level (e.g., 40%) compared to the first level (e.g., 10 ns) as the first tier.
- the processor 120 may classify memory whose latency is within a certain level (e.g., 40%) compared to the second level (e.g., 20 ns) as the second tier.
- the processor 120 determines that the latency of the memory at the third level (e.g., 30 ns) is not within a certain range compared to the first level (e.g., 10 ns) and the second level (e.g., 20 ns), and , can be classified into the third tier.
- the processor 120 determines whether memory can be allocated to a node belonging to the second tier based on the lack of memory in the node belonging to the first tier, and ensures that migration does not occur between the tiers of the first tier. You can control it so that it does not, and memory can be allocated to nodes belonging to the second tier.
- the processor 120 configures both the first PMEM (e.g., first PMEM 522b in FIG. 5B) and the second PMEM (e.g., second PMEM 524b in FIG. 5B) with free space at a specified level. If it exceeds , the page of the DRAM 512a may be preferentially moved to a memory with a relatively larger capacity among the first PMEM 522b and the second PMEM 524b.
- the processor 120 may differently determine which memory to prioritize migration in response to changes in pressure stall information (PSI) depending on runtime conditions.
- Pressure stall information may refer to an indicator of whether a delay occurs in a task due to a lot of resources being allocated.
- PSI pressure stall information
- PSI pressure stall information
- PSI can indicate 'some' time when a delay occurs due to one or more processes lacking resources in memory or CPU.
- PSI pressure stall information
- PSI pressure stall information
- PSI pressure stall information
- the processor 120 distinguishes tiers between memories based on information about the latency of a plurality of memories, and provides empty space in the order of memories with shorter latency. You can check if it exists.
- the processor 120 controls to allocate pages on memory where free space is confirmed, and when free space is not confirmed, pages can be allocated on memory of another tier.
- the latency of a plurality of memories may be measured at least one of a process stage, an initial booting time of the electronic device, or a hot plugging time of the memory, but there is no limitation.
- the delay time of a plurality of memories may be measured when a specific application is executed, may be measured according to a designated cycle, or may be measured based on the occurrence of an event for measuring the delay time.
- the processor 120 may obtain information about the latency of the memory from product information of the memory.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
This electronic device may comprise: a plurality of memories including a first memory and a second memory having performance lower than that of the first memory; and a processor. The processor can: measure latency of a plurality of memories; determine, on the basis of the measured latency, a tier to be allocated to at least one memory from among the plurality of memories; and, in response to a migration request of a page, control that a page is not migrated between the memories, to which the same tier is allocated, from among the plurality of memories.
Description
본 문서는 메모리 티어링 시스템 상에서 메모리 밸런싱 정책을 설정하는 전자 장치 및 전자 장치의 메모리 관리 방법에 관한 것이다.This document relates to an electronic device that sets a memory balancing policy on a memory tiering system and a memory management method for the electronic device.
스마트 폰과 같은 휴대용 전자 장치(이하 전자 장치)는 다양한 어플리케이션을 이용하여 사용자 경험을 제공할 수 있다. 전자 장치에서 제공하는 기능이 증가함에 따라, 데이터 처리 속도 향상이 요구되고, 그에 따라 프로세서 및 메모리와 같은 하드웨어 성능의 향상도 요구된다. 이에 따라, 메모리(예: RAM (random access memory))의 용량도 증가하고 있으나, 동시에 많은 어플리케이션을 실행하기 위해서는 메모리의 용량을 적절하게 관리하는 동작이 필요할 수 있다.Portable electronic devices (hereinafter referred to as electronic devices) such as smart phones can provide user experiences using various applications. As the functions provided by electronic devices increase, improvements in data processing speed are required, and accordingly, improvements in hardware performance such as processors and memory are also required. Accordingly, the capacity of memory (e.g., RAM (random access memory)) is increasing, but in order to run many applications at the same time, it may be necessary to properly manage the memory capacity.
전자 장치는 제한된 메모리의 용량으로 인하여, 메모리의 상태를 모니터링 하고 시스템 성능을 허용 가능한 수준에서 유지하기 위해, 다양한 메모리 회수 동작 및 프로세스 종료 동작을 수행할 수 있다.Due to limited memory capacity, electronic devices may perform various memory reclaim operations and process termination operations to monitor the state of the memory and maintain system performance at an acceptable level.
PMEM(persistent memory)은 DRAM 보다 접근 성능이 상대적으로 느리지만 비용이 저렴하여 DRAM을 대체할 수 있다. 전자 장치는 PMEM의 느린 접근 성능을 보완하기 위해 DRAM과 함께 사용할 수 있다. 전자 장치는 PMEM의 느린 접근 성능을 보완하기 위해 PMEM과 DRAM 사이에서 memory page를 할당하는 오토 밸런싱(auto-balancing) 동작을 수행할 수 있다.PMEM (persistent memory) has relatively slower access performance than DRAM, but is inexpensive and can replace DRAM. Electronics can be used with DRAM to compensate for PMEM's slow access performance. Electronic devices can perform an auto-balancing operation that allocates memory pages between PMEM and DRAM to compensate for PMEM's slow access performance.
전자 장치는 DRAM 상에 여유 공간이 부족한 경우 여유 공간을 확보하기 위해 상대적으로 느린 memory인 PMEM으로 최근 접근 빈도가 떨어지는 memory page를 이동시킬 수 있다. 이 과정을 demotion 이라고 한다. 또한, 전자 장치는 처리 속도가 상대적으로 느린 PMEM으로의 접근을 최소화 하기 위해 PMEM 상에서 최근 접근 빈도가 높은 memory page들을 hot page로 분류하고 DRAM 상으로 마이그레이션(migration) 시킬 수 있다. 이 과정을 promotion 이라고 한다. 오토 밸런싱(auto-balancing) 동작은 demotion과 promotion을 포함할 수 있다. When there is insufficient free space in DRAM, electronic devices can move memory pages that have been accessed less frequently to PMEM, a relatively slow memory, to secure free space. This process is called demotion. Additionally, in order to minimize access to PMEM, which has a relatively slow processing speed, the electronic device can classify recently accessed memory pages on PMEM as hot pages and migrate them onto DRAM. This process is called promotion. Auto-balancing operations may include demotion and promotion.
promotion 과정은 메모리 계층 시스템의 단점을 극복하기 위한 방안이지만 migration 기법이 복잡해서 CPU 동작이 증가할 수 있다. CPU 동작의 증가로 인해 오토 밸런싱(auto-balancing) 동작은 오히려 시스템을 지연시킬 수 있다. 또한, page migration 동작은 메모리의 여유 공간이 부족한 상황에서 필요할 수 있는데, migration을 수행하기 위해 메모리가 사용되면서 시스템을 더 지연시킬 수 있다.The promotion process is a way to overcome the shortcomings of the memory hierarchy system, but the migration technique is complicated, so CPU operation may increase. Due to an increase in CPU operation, auto-balancing operation may actually delay the system. Additionally, page migration operations may be necessary in situations where free memory space is insufficient, and as memory is used to perform migration, it may further delay the system.
본 문서에 따른 전자 장치는 상대적으로 빠른 메모리인 DRAM과 상대적으로 느린 메모리인 PMEM을 같이 사용하는 메모리 티어링 시스템(memory tiering system) 상에서 성능이 다른 메모리 계층 간 메모리 밸런싱 정책을 수립하고 밸런싱 동작을 효율적으로 조절하기 위한 방법을 제공할 수 있다.The electronic device according to this document establishes a memory balancing policy between memory tiers with different performance on a memory tiering system that uses DRAM, a relatively fast memory, and PMEM, a relatively slow memory, and performs balancing operations efficiently. Methods for adjustment can be provided.
전자 장치는 제 1 메모리 및 제 1 메모리보다 낮은 성능을 갖는 제 2 메모리를 포함하는 복수의 메모리, 및 프로세서를 포함할 수 있다. 프로세서는 복수의 메모리들의 지연 시간(latency)을 측정하고, 측정된 지연 시간(latency)에 기반하여 복수의 메모리들 중 적어도 하나 이상의 메모리에 할당될 티어(tier)를 결정하고, 페이지의 마이그레이션 요청에 대응하여, 복수의 메모리들 중 동일한 티어가 할당된 메모리들 사이에서는 페이지(page) 마이그레이션(migration)을 수행하지 않도록 제어할 수 있다.The electronic device may include a plurality of memories including a first memory and a second memory having lower performance than the first memory, and a processor. The processor measures the latency of a plurality of memories, determines a tier to be allocated to at least one memory among the plurality of memories based on the measured latency, and responds to the page migration request. Correspondingly, page migration may be controlled not to be performed between memories allocated to the same tier among a plurality of memories.
전자 장치의 메모리 관리 방법은 복수의 메모리들의 지연 시간(latency)을 측정하는 동작, 측정된 지연 시간(latency)에 기반하여 복수의 메모리들 중 적어도 하나 이상의 메모리에 할당될 티어(tier)를 결정하는 동작,및 페이지의 마이그레이션 요청에 대응하여, 복수의 메모리들 중 동일한 티어가 할당된 메모리들 사이에서는 페이지(page) 마이그레이션(migration)을 수행하지 않도록 제어하는 동작을 포함할 수 있다.A memory management method for an electronic device includes measuring the latency of a plurality of memories and determining a tier to be assigned to at least one memory among the plurality of memories based on the measured latency. In response to the operation and page migration request, the method may include controlling not to perform page migration between memories allocated to the same tier among a plurality of memories.
일 실시예에 따르면, 전자 장치는 메모리의 레이턴시(latency)를 고려하여 티어(tier) 를 설정하고, 티어(tier) 간 오토 밸런싱(auto-balancing) 동작의 수행 여부를 설정하여 효율적으로 메모리 자원을 활용할 수 있다.According to one embodiment, the electronic device sets a tier in consideration of the latency of the memory and sets whether to perform an auto-balancing operation between tiers to efficiently use memory resources. You can utilize it.
일 실시예에 따르면, 전자 장치는 레이턴시(latency)가 지정된 수준을 넘어 차이나지 않는 메모리들을 하나의 티어로 설정하고, 같은 티어 내 메모리 간에는 오토 밸런싱(auto-balancing) 동작을 수행하지 않도록 설정하여 불필요한 밸런싱 동작을 줄이고, 오토 밸런싱(auto-balancing) 동작으로 인해 오히려 시스템이 느려지는 상황을 방지할 수 있다.According to one embodiment, the electronic device sets memories whose latencies do not differ beyond a specified level into one tier and does not perform an auto-balancing operation between memories within the same tier, thereby preventing unnecessary balancing. It can reduce operation and prevent the system from slowing down due to auto-balancing operation.
도 1은 다양한 실시예들에 따른, 네트워크 환경 내의 전자 장치의 블록도이다.1 is a block diagram of an electronic device in a network environment, according to various embodiments.
도 2는 일 실시예에 따른 전자 장치의 메모리 관리 방법을 나타내는 블록도이다.FIG. 2 is a block diagram illustrating a memory management method of an electronic device according to an embodiment.
도 3은 일 실시예에 따른 전자 장치의 구성을 블록도로 나타낸 것이다.Figure 3 is a block diagram showing the configuration of an electronic device according to an embodiment.
도 4a, 4b 및 4c는 메모리의 지연 속도(latency)에 기반하여 티어(tier)를 분류하는 과정을 나타낸 것이다.Figures 4a, 4b, and 4c show the process of classifying tiers based on memory latency.
도 5a 및 도 5b는 티어 간 마이그레이션(migration)이 일어나는 상황에서 메모리 할당 순서를 결정하는 과정을 도시한 것이다.Figures 5a and 5b illustrate the process of determining the memory allocation order in a situation where migration between tiers occurs.
도 6은 일 실시예에 따른 전자 장치의 메모리 관리 방법을 순서도로 나타낸 것이다.Figure 6 is a flowchart showing a memory management method of an electronic device according to an embodiment.
도 1은, 다양한 실시예들에 따른, 네트워크 환경(100) 내의 전자 장치(101)의 블록도이다. 도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108) 중 적어도 하나와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 모듈(150), 음향 출력 모듈(155), 디스플레이 모듈(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 연결 단자(178), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(178))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(176), 카메라 모듈(180), 또는 안테나 모듈(197))은 하나의 구성요소(예: 디스플레이 모듈(160))로 통합될 수 있다.1 is a block diagram of an electronic device 101 in a network environment 100, according to various embodiments. Referring to FIG. 1, in the network environment 100, the electronic device 101 communicates with the electronic device 102 through a first network 198 (e.g., a short-range wireless communication network) or a second network 199. It is possible to communicate with at least one of the electronic device 104 or the server 108 through (e.g., a long-distance wireless communication network). According to one embodiment, the electronic device 101 may communicate with the electronic device 104 through the server 108. According to one embodiment, the electronic device 101 includes a processor 120, a memory 130, an input module 150, an audio output module 155, a display module 160, an audio module 170, and a sensor module ( 176), interface 177, connection terminal 178, haptic module 179, camera module 180, power management module 188, battery 189, communication module 190, subscriber identification module 196 , or may include an antenna module 197. In some embodiments, at least one of these components (eg, the connection terminal 178) may be omitted or one or more other components may be added to the electronic device 101. In some embodiments, some of these components (e.g., sensor module 176, camera module 180, or antenna module 197) are integrated into one component (e.g., display module 160). It can be.
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 저장하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(101)가 메인 프로세서(121) 및 보조 프로세서(123)를 포함하는 경우, 보조 프로세서(123)는 메인 프로세서(121)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.The processor 120, for example, executes software (e.g., program 140) to operate at least one other component (e.g., hardware or software component) of the electronic device 101 connected to the processor 120. It can be controlled and various data processing or calculations can be performed. According to one embodiment, as at least part of data processing or computation, the processor 120 stores commands or data received from another component (e.g., sensor module 176 or communication module 190) in volatile memory 132. The commands or data stored in the volatile memory 132 can be processed, and the resulting data can be stored in the non-volatile memory 134. According to one embodiment, the processor 120 includes the main processor 121 (e.g., a central processing unit or an application processor) or an auxiliary processor 123 that can operate independently or together (e.g., a graphics processing unit, a neural network processing unit ( It may include a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor). For example, if the electronic device 101 includes a main processor 121 and a secondary processor 123, the secondary processor 123 may be set to use lower power than the main processor 121 or be specialized for a designated function. You can. The auxiliary processor 123 may be implemented separately from the main processor 121 or as part of it.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능 모델이 수행되는 전자 장치(101) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(108))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다. The auxiliary processor 123 may, for example, act on behalf of the main processor 121 while the main processor 121 is in an inactive (e.g., sleep) state, or while the main processor 121 is in an active (e.g., application execution) state. ), together with the main processor 121, at least one of the components of the electronic device 101 (e.g., the display module 160, the sensor module 176, or the communication module 190) At least some of the functions or states related to can be controlled. According to one embodiment, co-processor 123 (e.g., image signal processor or communication processor) may be implemented as part of another functionally related component (e.g., camera module 180 or communication module 190). there is. According to one embodiment, the auxiliary processor 123 (eg, neural network processing unit) may include a hardware structure specialized for processing artificial intelligence models. Artificial intelligence models can be created through machine learning. For example, such learning may be performed in the electronic device 101 itself on which the artificial intelligence model is performed, or may be performed through a separate server (e.g., server 108). Learning algorithms may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but It is not limited. An artificial intelligence model may include multiple artificial neural network layers. Artificial neural networks include deep neural network (DNN), convolutional neural network (CNN), recurrent neural network (RNN), restricted boltzmann machine (RBM), belief deep network (DBN), bidirectional recurrent deep neural network (BRDNN), It may be one of deep Q-networks or a combination of two or more of the above, but is not limited to the examples described above. In addition to hardware structures, artificial intelligence models may additionally or alternatively include software structures.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서 모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.The memory 130 may store various data used by at least one component (eg, the processor 120 or the sensor module 176) of the electronic device 101. Data may include, for example, input data or output data for software (e.g., program 140) and instructions related thereto. Memory 130 may include volatile memory 132 or non-volatile memory 134.
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.The program 140 may be stored as software in the memory 130 and may include, for example, an operating system 142, middleware 144, or application 146.
입력 모듈(150)은, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(150)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.The input module 150 may receive commands or data to be used in a component of the electronic device 101 (e.g., the processor 120) from outside the electronic device 101 (e.g., a user). The input module 150 may include, for example, a microphone, mouse, keyboard, keys (eg, buttons), or digital pen (eg, stylus pen).
음향 출력 모듈(155)은 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 모듈(155)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.The sound output module 155 may output sound signals to the outside of the electronic device 101. The sound output module 155 may include, for example, a speaker or a receiver. Speakers can be used for general purposes such as multimedia playback or recording playback. The receiver can be used to receive incoming calls. According to one embodiment, the receiver may be implemented separately from the speaker or as part of it.
디스플레이 모듈(160)은 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 디스플레이 모듈(160)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다.The display module 160 can visually provide information to the outside of the electronic device 101 (eg, a user). The display module 160 may include, for example, a display, a hologram device, or a projector, and a control circuit for controlling the device. According to one embodiment, the display module 160 may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of force generated by the touch.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(170)은, 입력 모듈(150)을 통해 소리를 획득하거나, 음향 출력 모듈(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.The audio module 170 can convert sound into an electrical signal or, conversely, convert an electrical signal into sound. According to one embodiment, the audio module 170 acquires sound through the input module 150, the sound output module 155, or an external electronic device (e.g., directly or wirelessly connected to the electronic device 101). Sound may be output through the electronic device 102 (e.g., speaker or headphone).
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.The sensor module 176 detects the operating state (e.g., power or temperature) of the electronic device 101 or the external environmental state (e.g., user state) and generates an electrical signal or data value corresponding to the detected state. can do. According to one embodiment, the sensor module 176 includes, for example, a gesture sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, It may include a temperature sensor, humidity sensor, or light sensor.
인터페이스(177)는 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.The interface 177 may support one or more designated protocols that can be used to connect the electronic device 101 directly or wirelessly with an external electronic device (eg, the electronic device 102). According to one embodiment, the interface 177 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일실시예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.The connection terminal 178 may include a connector through which the electronic device 101 can be physically connected to an external electronic device (eg, the electronic device 102). According to one embodiment, the connection terminal 178 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.The haptic module 179 can convert electrical signals into mechanical stimulation (e.g., vibration or movement) or electrical stimulation that the user can perceive through tactile or kinesthetic senses. According to one embodiment, the haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.The camera module 180 can capture still images and moving images. According to one embodiment, the camera module 180 may include one or more lenses, image sensors, image signal processors, or flashes.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.The power management module 188 can manage power supplied to the electronic device 101. According to one embodiment, the power management module 188 may be implemented as at least a part of, for example, a power management integrated circuit (PMIC).
배터리(189)는 전자 장치(101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다. Battery 189 may supply power to at least one component of electronic device 101. According to one embodiment, the battery 189 may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(198)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(104)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 또는 인증할 수 있다. Communication module 190 is configured to provide a direct (e.g., wired) communication channel or wireless communication channel between electronic device 101 and an external electronic device (e.g., electronic device 102, electronic device 104, or server 108). It can support establishment and communication through established communication channels. Communication module 190 operates independently of processor 120 (e.g., an application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module 190 is a wireless communication module 192 (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 194 (e.g., : LAN (local area network) communication module, or power line communication module) may be included. Among these communication modules, the corresponding communication module is a first network 198 (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network 199 (e.g., legacy It may communicate with an external electronic device 104 through a telecommunication network such as a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., LAN or WAN). These various types of communication modules may be integrated into one component (e.g., a single chip) or may be implemented as a plurality of separate components (e.g., multiple chips). The wireless communication module 192 uses subscriber information (e.g., International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 196 within a communication network such as the first network 198 or the second network 199. The electronic device 101 can be confirmed or authenticated.
무선 통신 모듈(192)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(192)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(192)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(192)은 전자 장치(101), 외부 전자 장치(예: 전자 장치(104)) 또는 네트워크 시스템(예: 제 2 네트워크(199))에 규정되는 다양한 요구사항을 지원할 수 있다. 일실시예에 따르면, 무선 통신 모듈(192)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.The wireless communication module 192 may support 5G networks after 4G networks and next-generation communication technologies, for example, NR access technology (new radio access technology). NR access technology provides high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and access to multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low latency). -latency communications)) can be supported. The wireless communication module 192 may support a high frequency band (eg, mmWave band), for example, to achieve a high data rate. The wireless communication module 192 uses various technologies to secure performance in high frequency bands, for example, beamforming, massive array multiple-input and multiple-output (MIMO), and full-dimensional multiplexing. It can support technologies such as input/output (FD-MIMO: full dimensional MIMO), array antenna, analog beam-forming, or large scale antenna. The wireless communication module 192 may support various requirements specified in the electronic device 101, an external electronic device (e.g., electronic device 104), or a network system (e.g., second network 199). According to one embodiment, the wireless communication module 192 supports Peak data rate (e.g., 20 Gbps or more) for realizing eMBB, loss coverage (e.g., 164 dB or less) for realizing mmTC, or U-plane latency (e.g., 164 dB or less) for realizing URLLC. Example: Downlink (DL) and uplink (UL) each of 0.5 ms or less, or round trip 1 ms or less) can be supported.
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일실시예에 따르면, 안테나 모듈(197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일실시예에 따르면, 안테나 모듈(197)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다.The antenna module 197 may transmit or receive signals or power to or from the outside (eg, an external electronic device). According to one embodiment, the antenna module 197 may include an antenna including a radiator made of a conductor or a conductive pattern formed on a substrate (eg, PCB). According to one embodiment, the antenna module 197 may include a plurality of antennas (eg, an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network such as the first network 198 or the second network 199 is connected to the plurality of antennas by, for example, the communication module 190. can be selected. Signals or power may be transmitted or received between the communication module 190 and an external electronic device through the selected at least one antenna. According to some embodiments, in addition to the radiator, other components (eg, radio frequency integrated circuit (RFIC)) may be additionally formed as part of the antenna module 197.
다양한 실시예에 따르면, 안테나 모듈(197)은 mmWave 안테나 모듈을 형성할 수 있다. 일실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제 1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제 2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.According to various embodiments, the antenna module 197 may form a mmWave antenna module. According to one embodiment, a mmWave antenna module includes a printed circuit board, an RFIC disposed on or adjacent to a first side (e.g., bottom side) of the printed circuit board and capable of supporting a designated high frequency band (e.g., mmWave band), And a plurality of antennas (e.g., array antennas) disposed on or adjacent to the second side (e.g., top or side) of the printed circuit board and capable of transmitting or receiving signals in the designated high frequency band. can do.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.At least some of the components are connected to each other through a communication method between peripheral devices (e.g., bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)) and signal ( (e.g. commands or data) can be exchanged with each other.
일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(102, 또는 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(102, 104, 또는 108) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(101)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(104)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(108)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일실시예에 따르면, 외부의 전자 장치(104) 또는 서버(108)는 제 2 네트워크(199) 내에 포함될 수 있다. 전자 장치(101)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다. According to one embodiment, commands or data may be transmitted or received between the electronic device 101 and the external electronic device 104 through the server 108 connected to the second network 199. Each of the external electronic devices 102 or 104 may be of the same or different type as the electronic device 101. According to one embodiment, all or part of the operations performed in the electronic device 101 may be executed in one or more of the external electronic devices 102, 104, or 108. For example, when the electronic device 101 needs to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device 101 may perform the function or service instead of executing the function or service on its own. Alternatively, or additionally, one or more external electronic devices may be requested to perform at least part of the function or service. One or more external electronic devices that have received the request may execute at least part of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device 101. The electronic device 101 may process the result as is or additionally and provide it as at least part of a response to the request. For this purpose, for example, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology can be used. The electronic device 101 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing. In another embodiment, the external electronic device 104 may include an Internet of Things (IoT) device. Server 108 may be an intelligent server using machine learning and/or neural networks. According to one embodiment, the external electronic device 104 or server 108 may be included in the second network 199. The electronic device 101 may be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.Electronic devices according to various embodiments disclosed in this document may be of various types. Electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances. Electronic devices according to embodiments of this document are not limited to the above-described devices.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.The various embodiments of this document and the terms used herein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to include various changes, equivalents, or replacements of the embodiments. In connection with the description of the drawings, similar reference numbers may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the items, unless the relevant context clearly indicates otherwise. As used herein, “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 “A Each of phrases such as “at least one of , B, or C” may include any one of the items listed together in the corresponding phrase, or any possible combination thereof. Terms such as "first", "second", or "first" or "second" may be used simply to distinguish one component from another, and to refer to those components in other respects (e.g., importance or order) is not limited. One (e.g., first) component is said to be “coupled” or “connected” to another (e.g., second) component, with or without the terms “functionally” or “communicatively.” Where mentioned, it means that any of the components can be connected to the other components directly (e.g. wired), wirelessly, or through a third component.
본 문서의 다양한 실시예들에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다. The term “module” used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and is interchangeable with terms such as logic, logic block, component, or circuit, for example. It can be used as A module may be an integrated part or a minimum unit of the parts or a part thereof that performs one or more functions. For example, according to one embodiment, the module may be implemented in the form of an application-specific integrated circuit (ASIC).
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.Various embodiments of the present document are one or more instructions stored in a storage medium (e.g., built-in memory 136 or external memory 138) that can be read by a machine (e.g., electronic device 101). It may be implemented as software (e.g., program 140) including these. For example, a processor (e.g., processor 120) of a device (e.g., electronic device 101) may call at least one command among one or more commands stored from a storage medium and execute it. This allows the device to be operated to perform at least one function according to the at least one instruction called. The one or more instructions may include code generated by a compiler or code that can be executed by an interpreter. A storage medium that can be read by a device may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' only means that the storage medium is a tangible device and does not contain signals (e.g. electromagnetic waves). This term refers to cases where data is stored semi-permanently in the storage medium. There is no distinction between temporary storage cases.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, methods according to various embodiments disclosed in this document may be included and provided in a computer program product. Computer program products are commodities and can be traded between sellers and buyers. The computer program product may be distributed in the form of a machine-readable storage medium (e.g. compact disc read only memory (CD-ROM)) or through an application store (e.g. Play StoreTM) or on two user devices (e.g. It can be distributed (e.g. downloaded or uploaded) directly between smart phones) or online. In the case of online distribution, at least a portion of the computer program product may be at least temporarily stored or temporarily created in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.According to various embodiments, each component (e.g., module or program) of the above-described components may include a single or plural entity, and some of the plurality of entities may be separately placed in other components. there is. According to various embodiments, one or more of the components or operations described above may be omitted, or one or more other components or operations may be added. Alternatively or additionally, multiple components (eg, modules or programs) may be integrated into a single component. In this case, the integrated component may perform one or more functions of each component of the plurality of components identically or similarly to those performed by the corresponding component of the plurality of components prior to the integration. . According to various embodiments, operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, or omitted. Alternatively, one or more other operations may be added.
도 2는 본 개시의 일 실시예에 따른 전자 장치(101)의 메모리 관리 방법을 나타내는 블록도이다. Figure 2 is a block diagram showing a memory management method of the electronic device 101 according to an embodiment of the present disclosure.
일 실시예에서, 전자 장치(101)는 사용자(user) 공간 및 커널(kernel) 공간을 포함할 수 있다. 전자 장치(101)에 포함된 프로그램(140)은 사용자 공간을 자유롭게 접근할 수 있으나, 커널 공간은 직접 접근하지 못할 수 있다.. In one embodiment, the electronic device 101 may include a user space and a kernel space. The program 140 included in the electronic device 101 can freely access the user space, but may not directly access the kernel space.
일 실시예에서, 사용자 공간은 프로그램(140)이 커널 공간의 외부에서 실행되는 모든 코드를 의미할 수 있다. 사용자 공간은 모든 사용자 모드 응용 프로그램들이 동작하는 메모리 영역일 수 있다. 커널 공간은 커널, 커널 확장 기능을 실행하기 위한 예비 공간일 수 있다. 사용자 공간, 커널 공간은 사용자 영역, 커널 영역과 같을 수 있다. 사용자 공간은 커널 공간과 상호 작용하기 위해 사용하는 다양한 프로그램 및/또는 라이브러리를 포함할 수 있다.In one embodiment, user space may refer to all code that program 140 executes outside of kernel space. User space may be a memory area where all user mode applications operate. Kernel space may be a spare space for executing kernel and kernel extension functions. User space and kernel space may be the same as user space and kernel space. User space may contain various programs and/or libraries that it uses to interact with kernel space.
일 실시예에서, 사용자 공간은 가상 주소 공간(virtual address space, 211)를 포함할 수 있다. 커널 공간은 파일 시스템(file system, 23)을 포함할 수 있다. In one embodiment, user space may include a virtual address space (virtual address space) 211. Kernel space may include a file system (file system, 23).
일 실시예에서, 전자 장치(101)는 사용자 공간 및 커널 공간을 분리하여 보안을 강화할 수 있다. 전자 장치(101)는 파일의 읽기 및/또는 쓰기와 같은 하드웨어 작업을 수반하는 프로세스를 커널 공간에서 수행할 수 있다. 전자 장치(101)는 시스템 콜을 이용하여 커널 공간에 포함된 데이터를 조작할 수 있다. In one embodiment, the electronic device 101 may enhance security by separating user space and kernel space. The electronic device 101 may perform processes involving hardware operations such as reading and/or writing files in kernel space. The electronic device 101 can manipulate data included in the kernel space using a system call.
일 실시예에서, 시스템 콜(예, read () 및/또는 write() 와 같은 시스템 콜)을 이용하여 커널 공간으로부터 데이터를 호출하여 데이터를 조작하는 경우, 커널 문맥 전환(context switching)과 사용자 버퍼로의 메모리 복사로 인한 성능 저하가 발생할 수 있다.In one embodiment, when manipulating data by calling it from kernel space using system calls (e.g., system calls such as read() and/or write()), kernel context switching and user buffers Performance degradation may occur due to memory copying.
일 실시예에서, 전자 장치(101)는 메모리에 매핑 된 파일을 읽거나 쓸 수 있다. 전자 장치(101)는 mmap 시스템 콜을 이용하여 파일을 가상 주소 공간에 매핑하고 사용할 수 있다. 전자 장치(101)는 읽기(read) 및/또는 쓰기(write) 시스템 콜 대신 로드(load) 및/또는 스토어(store) 프로세서 명령어를 사용하여 데이터 및/또는 파일을 읽고 쓸 수 있다. In one embodiment, the electronic device 101 can read or write a file mapped to memory. The electronic device 101 can map and use files in a virtual address space using the mmap system call. The electronic device 101 may read and write data and/or files using load and/or store processor instructions instead of read and/or write system calls.
일 실시예에서, 전자 장치(101)는 복수의 노드(201, 202)를 포함할 수 있다. 복수의 노드(201, 202) 각각은 접근 속도가 서로 다를 수 있다. 예를 들어, 접근 속도는 프로세서(120)에서 메모리(130)의 특정 주소로 접근하여 데이터를 얻는데까지 걸리는 시간일 수 있다. 그러나, 이에 한정되는 것은 아니며, 복수의 노드(201, 202) 각각은 접근 속도가 동일할 수 있다.In one embodiment, the electronic device 101 may include a plurality of nodes 201 and 202. Each of the plurality of nodes 201 and 202 may have different access speeds. For example, the access speed may be the time it takes for the processor 120 to access a specific address of the memory 130 and obtain data. However, it is not limited to this, and each of the plurality of nodes 201 and 202 may have the same access speed.
일 실시예에서, 전자 장치(101)는 제 1 노드(201) 및 제 2 노드(202)를 포함할 수 있다. 제 1 노드(201) 및 제 2 노드(202)는 서로 접근 속도가 서로 다를 수 있다. 그러나, 이에 한정되는 것은 아니며, 제 1 노드(201) 및 제 2 노드(202)는 접근 속도가 동일할 수 있다.In one embodiment, the electronic device 101 may include a first node 201 and a second node 202. The first node 201 and the second node 202 may have different access speeds. However, it is not limited to this, and the first node 201 and the second node 202 may have the same access speed.
일 실시예에서, 메모리 노드 간의 접근 속도의 차이는 프로세서(120)(예: CPU, application processor)와 메모리(130) 간의 물리적인 거리 및/또는 접근 대기시간(latency)과 같은 논리적 요소에 의해서 발생할 수 있다.In one embodiment, differences in access speed between memory nodes may be caused by logical factors such as physical distance and/or access latency between the processor 120 (e.g., CPU, application processor) and the memory 130. You can.
일 실시예에서, 노드는 접근 속도가 동일한 프로세서와 로컬 메모리의 묶음일 수 있다. 예를 들어, 2 소켓 불균일 기억 장치 접근(non-uniform memory access, NUMA)에서, 각 소켓에 장착된 프로세서 및 메모리가 노드를 구성할 수 있다. 그러나, 이에 한정되는 것은 아니며, 메모리만으로 구성된 노드도 존재할 수 있다. In one embodiment, a node may be a bundle of processors and local memory with the same access speed. For example, in two-socket non-uniform memory access (NUMA), the processor and memory mounted on each socket may constitute a node. However, it is not limited to this, and a node consisting of only memory may also exist.
일 실시예에서, 전자 장치(101)는 노드의 물리 메모리를 용도에 따라 구분한 존(zone)을 포함할 수 있다. 전자 장치(101)는 메모리를 할당할 때 타겟 존을 설정할 수 있다. 전자 장치(101)는 메모리를 할당할 때 요청 플래그(flag)에 기반하여 선호되는 존(zone)을 설정하며, 해당 존(zone)에서 메모리 할당을 실패하면, 존 리스트(zonelist)를 순회하면서 할당을 시도할 수 있다. In one embodiment, the electronic device 101 may include zones in which the physical memory of the node is divided according to purpose. The electronic device 101 may set a target zone when allocating memory. When allocating memory, the electronic device 101 sets a preferred zone based on a request flag, and if memory allocation fails in the zone, allocation is made while traversing the zone list. You can try .
일 실시예에서, 제 1 노드(201)는 제 1 메모리(1311)를 포함하고, 제 2 노드(202)는 제 2 메모리(1312)를 포함할 수 있다. 제 1 메모리(1311)와 제 2 메모리(1312)는 서로 다른 종류의 메모리일 수 있다. 예를 들어, 제 1 메모리(1311)는 DRAM(dynamic random access memory)이고, 제 2 메모리(1312)는 퍼시스턴트 메모리(persistent memory, PMEM)일 수 있다. PMEM은 DRAM 처럼 바이트 단위 접근이 가능하고, 데이터의 비 휘발성(persistence)를 포함하는 메모리일 수 있다. 제 1 메모리(1311)와 제 2 메모리(1312)는 물리적 특성에 의해서 접근 대기시간(latency)가 서로 다를 수 있다. In one embodiment, the first node 201 may include a first memory 1311 and the second node 202 may include a second memory 1312. The first memory 1311 and the second memory 1312 may be different types of memory. For example, the first memory 1311 may be a dynamic random access memory (DRAM), and the second memory 1312 may be a persistent memory (PMEM). PMEM can be a memory that can be accessed in byte units like DRAM and includes non-volatility (persistence) of data. The first memory 1311 and the second memory 1312 may have different access latencies depending on their physical characteristics.
일 실시예에서, 제 1 노드(201)는 제 2 노드(202)보다 접근 속도가 빠른 노드일 수 있다. In one embodiment, the first node 201 may be a node with a faster access speed than the second node 202.
일 실시예에서, 익명 페이지(anonymous page, 210)는 파일로부터 읽히지 않은 메모리를 나타내며, 프로세스의 힙(heap) 및/또는 스택(stack)과 같은 프로그램의 실행에 필요한 일반적인 용도로 할당된 페이지일 수 있다. In one embodiment, an anonymous page 210 represents unread memory from a file and may be a page allocated for general purposes required for execution of a program, such as the heap and/or stack of a process. there is.
일 실시예에서, 파일 페이지(file page, 220, 230)은 파일 데이터를 담고 있는 메모리를 나타내는 자료 구조일 수 있다. 파일 페이지(220, 230)는 페이지 캐시(Page Cache)에 의해 관리 및/또는 접근될 수 있다. 파일 페이지(220, 230)는 익명 페이지(210)에 비해 상대적으로 느린 접근 속도를 요구할 수 있다. In one embodiment, file pages 220 and 230 may be data structures representing memory containing file data. File pages 220 and 230 may be managed and/or accessed by a page cache. File pages 220 and 230 may require relatively slow access speeds compared to the anonymous page 210.
일 실시예에서, 익명 페이지(210)는 가상 주소 공간(211)에 직접 매핑되어 로드(load) 및/또는 스토어(store) 프로세서 명령어에 따라 접근될 수 있다. 따라서, 익명 페이지(210)는 지정된 접근 대기시간보다 빠른 접근 대기시간을 요구할 수 있다. 익명 페이지(210)는 파일 페이지(220, 230)보다 빠른 접근 대기시간을 가질 수 있다.In one embodiment, the anonymous page 210 is mapped directly to the virtual address space 211 and can be accessed according to load and/or store processor instructions. Accordingly, the anonymous page 210 may request an access waiting time faster than the specified access waiting time. The anonymous page 210 may have a faster access latency than the file pages 220 and 230.
일 실시예에서, 전자 장치(101)는, 프로세서(120)의 제어 하에, 익명 페이지(210)에 대한 메모리 할당 요청이 있으면, 지정된 접근 속도보다 빠른 노드인 제 1 노드(201)에 포함된 제 1 메모리(1311)에 익명 페이지(210)를 할당할 수 있다. In one embodiment, the electronic device 101, under the control of the processor 120, when there is a memory allocation request for the anonymous page 210, the electronic device 101 includes the first node 201, which is a node faster than the specified access speed. 1 An anonymous page 210 can be allocated to memory 1311.
일 실시예에서, 전자 장치(101)는, 프로세서(120)의 제어 하에, 파일 페이지(220, 230)에 대한 메모리 할당 요청이 있으면, 메모리에 매핑 된 파일이 있는지 여부를 판단할 수 있다. 예를 들어, 제 1 파일 페이지(220)는 메모리에 매핑 된 파일을 포함하며, 파일을 가상 주소 공간(211)에 매핑하고 사용할 수 있다. In one embodiment, the electronic device 101, under the control of the processor 120, may determine whether there is a file mapped to the memory when a memory allocation request is made for the file pages 220 and 230. For example, the first file page 220 includes a file mapped to memory, and the file can be mapped and used in the virtual address space 211.
일 실시예에서, 파일에 메모리에 매핑 된 페이지가 있으면, 전자 장치(101)는, 프로세서(120)의 제어 하에, 파일 페이지(예, 제 1 파일 페이지(220))를 지정된 접근 속도보다 빠른 노드인 제 1 노드(201)에 포함된 제 1 메모리(1311)에 파일 페이지(예, 제 1 파일 페이지(220))를 할당할 수 있다. In one embodiment, if the file has pages mapped to memory, the electronic device 101, under control of the processor 120, transfers the file page (e.g., the first file page 220) to a node faster than the specified access speed. A file page (eg, first file page 220) may be allocated to the first memory 1311 included in the first node 201.
일 실시예에서, 파일에 메모리에 매핑 된 페이지가 없으면, 전자 장치(101)는, 프로세서(120)의 제어 하에, 파일 페이지(예, 제 2 파일 페이지(230))를 지정된 접근 속도보다 느린 노드인 제 2 노드(202)에 포함된 제 2 메모리(1312)에 파일 페이지(예, 제 2 파일 페이지(230))를 할당할 수 있다. In one embodiment, if there are no pages mapped to memory in the file, the electronic device 101, under control of the processor 120, transfers the file page (e.g., the second file page 230) to a node slower than the specified access speed. A file page (eg, the second file page 230) may be allocated to the second memory 1312 included in the second node 202.
일 실시예에서, 전자 장치(101)는, 프로세서(120)의 제어 하에, 메모리 할당 요청이 있으면, 페이지의 속성 및/또는 타입에 기반하여 지정된 접근 속도보다 빠른 노드 또는 지정된 접근 속도보다 느린 노드를 선택할 수 있다. In one embodiment, under the control of the processor 120, when a memory allocation request is made, the electronic device 101 selects a node faster than the specified access speed or a node slower than the specified access speed based on the properties and/or type of the page. You can choose.
일 실시예에서, 전자 장치(101)는, 프로세서(120)의 제어 하에, 메모리 할당 요청이 있으면, 사용자 힌트에 기반하여 지정된 접근 속도보다 빠른 노드 또는 지정된 접근 속도보다 느린 노드를 선택할 수 있다.In one embodiment, under the control of the processor 120, when a memory allocation request is made, the electronic device 101 may select a node faster than a specified access speed or a node slower than the specified access speed based on a user hint.
일 실시예에서, 전자 장치(101)는, 프로세서(120)의 제어 하에, 메모리 할당 요청이 있으면, 파일 페이지 캐시 적중률에 기반하여 지정된 접근 속도보다 빠른 노드 또는 지정된 접근 속도보다 느린 노드를 선택할 수 있다.In one embodiment, under the control of the processor 120, when a memory allocation request is made, the electronic device 101 may select a node faster than a specified access speed or a node slower than the specified access speed based on the file page cache hit rate. .
일 실시예에서, 전자 장치(101)는, 프로세서(120)의 제어 하에, 선택된 노드에 페이지를 할당할 수 있다. In one embodiment, the electronic device 101 may allocate pages to the selected node under the control of the processor 120.
일 실시예에서, 전자 장치(101)는, 프로세서(120)의 제어 하에, 페이지 마이그레이션(migration) 요청이 있으면, 페이지의 속성 및/또는 타입에 기반하여 페이지 마이그레이션을 허용할지 여부를 결정할 수 있다. In one embodiment, under the control of the processor 120, when a page migration request is made, the electronic device 101 may determine whether to allow page migration based on the properties and/or type of the page.
일 실시예에서, 전자 장치(101)는, 프로세서(120)의 제어 하에, 페이지 마이그레이션 요청이 있으면, 사용자 힌트에 기반하여 페이지 마이그레이션을 허용할지 여부를 결정할 수 있다. In one embodiment, under the control of the processor 120, when a page migration request is made, the electronic device 101 may determine whether to allow page migration based on a user hint.
일 실시예에서, 전자 장치(101)는, 프로세서(120)의 제어 하에, 페이지 마이그레이션 요청이 있으면, 파일에 메모리에 매핑 된 페이지가 있는지 여부에 기반하여 페이지 마이그레이션을 허용할지 여부를 결정할 수 있다. In one embodiment, under the control of the processor 120, when a page migration request is made, the electronic device 101 may determine whether to allow page migration based on whether the file has pages mapped to memory.
일 실시예에서, 전자 장치(101)는, 프로세서(120)의 제어 하에, 페이지 마이그레이션 요청이 있으면, 파일 페이지 캐시 적중률에 기반하여 페이지 마이그레이션을 허용할지 여부를 결정할 수 있다. In one embodiment, under the control of the processor 120, when a page migration request is made, the electronic device 101 may determine whether to allow page migration based on the file page cache hit rate.
일 실시예에서, 페이지 마이그레이션은 메모리 단편화 제거(compaction)과 같은 로직에서 메모리 상의 주소를 다른 위치로 이동하는 동작일 수 있다. In one embodiment, page migration may be an operation to move an address in memory to another location in logic such as memory compaction.
일 실시예에서, 전자 장치(101)는, 메모리 단편화 방지와 효율성을 위해 이동(mobility) 속성에 기반하여 페이지를 관리할 수 있다. 이동 속성은 이동 가능(movable), 이동 불가능(non-movable) 및/또는 회수 가능(reclaimable) 속성이 있을 수 있다. 이동 불가능(non-movable) 속성을 가지는 페이지는 마이그레이션이 불가능할 수 있다. In one embodiment, the electronic device 101 may manage pages based on mobility attributes to prevent memory fragmentation and improve efficiency. Movable properties may be movable, non-movable, and/or reclaimable. Pages with non-movable properties may not be migrated.
도 3은 일 실시예에 따른 전자 장치의 구성을 블록도로 나타낸 것이다.Figure 3 is a block diagram showing the configuration of an electronic device according to an embodiment.
도 3에 따르면, memory management(320)는 memory checker(322), migrator(324) 및 migration manager(326)를 포함할 수 있다. memory management(320)는 memory checker(322), migrator(324) 및 migration manager(326)은 프로세서(예: 도 1의 프로세서(120))에서 실행되는 적어도 하나의 명령어를 포함하는 소프트웨어 모듈일 수 있다. 이 경우 memory management(320)는 memory checker(322), migrator(324) 및 migration manager(326)의 동작은 프로세서(120)의 동작으로 이해될 수 있다.According to FIG. 3, memory management 320 may include a memory checker 322, a migrator 324, and a migration manager 326. The memory management 320, memory checker 322, migrator 324, and migration manager 326 may be software modules that include at least one instruction executed on a processor (e.g., processor 120 in FIG. 1). . In this case, the operations of the memory management 320, the memory checker 322, the migrator 324, and the migration manager 326 can be understood as the operations of the processor 120.
memory checker(322)는 각 메모리 사이의 노드에서 레이턴시(latency)를 측정할 수 있다. 레이턴시(latency)는 메모리(예: 도 1의 메모리(130))로 요청을 보내고 요청한 data를 획득하는 데 소요되는 시간을 의미할 수 있다.The memory checker 322 can measure latency at the nodes between each memory. Latency may refer to the time required to send a request to a memory (e.g., memory 130 in FIG. 1) and obtain the requested data.
migrator(324)는 복수의 메모리들의 계층 간 페이지(page) 마이그레이션(migration)을 수행할 수 있다. 페이지(page)는 데이터를 저장하기 위한 자료 구조를 의미할 수 있다. 페이지(page)는 메모리 영역을 일정 크기로 구분한 공간을 의미할 수 있다. 페이지(page)는 파일 데이터를 포함할 수 있다. 또는 페이지(page)는 프로세스에서 특정 함수(예: malloc)를 통해 요청한 데이터를 포함하는 익명 페이지(anonymous page)를 의미할 수 있다. . 페이지(page) 마이그레이션(migration)은 파일 데이터를 담고 있는 페이지를 다른 계층으로 이동시키는 동작을 의미할 수 있다. migrator(324)는 상대적으로 레이턴시(latency)가 낮고, 접근이 빠른 fast memory(예: DRAM)(310)과 상대적으로 레이턴시(latency)가 높고, 접근이 느린 slow memory(예: persistent memory)(312, 314) 사이에서 페이지(page)의 마이그레이션(migration)을 수행할 수 있다. migrator(324)는 제 1 slow memory(312) 및 제 2 slow memory(314) 가 같은 티어(tier)인 경우 마이그레이션(migration)을 수행하지 않을 수 있다. migrator(324)는 제 1 slow memory(312)의 메모리 용량이 가득 찬 경우, 같은 티어(tier)인 제 2 slow memory(314)로 페이지를 마이그레이션(migration)하지 않고, 스토리지(316) 상으로 스왑(swap)을 수행할 수 있다. 예를 들어, migrator(324)는 익명 페이지(anonymous page)를 마이그레이션(migration)하지 않고, 스토리지(316) 상으로 스왑시킬 수 있다. migrator(324)는 파일 데이터를 포함하면서 내용이 변경된 dirty page인 경우 파일에 반영할 수 있다. migrator(324)는 dirty page 가 아닌 경우 변경된 내용이 없는 것으로 결정하고 해당 페이지(page)를 삭제할 수 있다. 스왑(swap)은 시스템 상에 메모리가 부족할 경우 스토리지(316)의 일부 공간을 활용하여 작업을 도와주는 동작을 의미할 수 있다. The migrator 324 can perform page migration between layers of a plurality of memories. A page may refer to a data structure for storing data. A page may refer to a space in which a memory area is divided into a certain size. A page may contain file data. Alternatively, a page may refer to an anonymous page containing data requested by a process through a specific function (e.g. malloc). . Page migration may refer to the operation of moving a page containing file data to another layer. The migrator (324) uses fast memory (e.g., DRAM) (310) with relatively low latency and fast access, and slow memory (e.g., persistent memory) (312) with relatively high latency and slow access. , 314), page migration can be performed. The migrator 324 may not perform migration if the first slow memory 312 and the second slow memory 314 are of the same tier. When the memory capacity of the first slow memory (312) is full, the migrator (324) does not migrate pages to the second slow memory (314) of the same tier, but swaps them onto the storage (316). (swap) can be performed. For example, the migrator 324 may swap an anonymous page onto the storage 316 without migrating it. The migrator (324) can reflect the dirty page in the file if its contents have been changed while containing file data. If it is not a dirty page, the migrator (324) can determine that no changes have been made and delete the page. Swap may refer to an operation that utilizes some space in the storage 316 to assist work when there is insufficient memory on the system.
전자 장치(예: 도 1의 전자 장치(101))는 스토리지(316) 상으로 스왑(swap) 을 통해 메모리의 용량이 가득 차서 데이터 손실이 발생하거나 시스템 에러가 발생하는 것을 방지할 수 있다. 스왑(swap)된 페이지들은 스토리지(316) 상에 위치하여, RAM(random access memory) 보다 접근 속도가 상대적으로 느릴 수 있다. 전자 장치(101)는 RAM(random access memory)의 공간이 부족한 경우 스왑(swap)을 수행하여 스토리지(316)를 이용하고, RAM(random access memory)의 공간이 다시 여유가 생기면 메모리((예: DRAM(310), persistent memory(312, 314)) 상으로 파일 또는 페이지를 옮길 수 있다. 전자 장치(101)는 RAM(random access memory)의 공간이 부족한 경우 스토리지(316) 상으로 스왑(swap)을 수행(swap out)하고 플러시(flush) 동작을 수행할 수 있다. 플러시(flush) 동작은 페이지의 내용을 저장 공간(예: 스토리지(316)) 상에 다시 쓰는 동작을 의미할 수 있다. 전자 장치(101)는 스토리지(316) 상에서 스왑(swap)을 통해 쓰여진 데이터를 읽어낼(read) 수 있다(swap in).An electronic device (e.g., the electronic device 101 of FIG. 1) can prevent data loss or system errors from occurring due to full memory capacity through swapping on the storage 316. Swapped pages are located on the storage 316, so access speed may be relatively slower than random access memory (RAM). The electronic device 101 uses the storage 316 by performing swap when there is insufficient space in the random access memory (RAM), and when the space in the random access memory (RAM) becomes free again, the memory (e.g. The electronic device 101 can move files or pages onto the DRAM (310) or persistent memory (312, 314) and swap them onto the storage (316) when RAM (random access memory) space is insufficient. Swap out and a flush operation may be performed to rewrite the content of the page to the storage space (e.g., storage 316). The device 101 can read data written through swap on the storage 316 (swap in).
migration manager(326)는 logical tier(328) 및 migration policy(330)를 관리할 수 있다. logical tier(328)는 프로세서(예: 도 1의 프로세서(120))에 의해 메모리의 레이턴시(latency)에 기반하여 분류된 티어(tier)에 대한 정보를 의미할 수 있다. 프로세서(120)는 각 메모리 노드 상의 레이턴시(latency)를 측정하고, 하나의 노드를 기준으로 다른 노드의 레이턴시(latency)의 차이가 지정된 수준(예: 약 40%) 미만인 경우 두 노드를 같은 티어로 분류할 수 있다. 지정된 수준은 일 예시일 뿐, 고정된 것이 아니며 설정에 따라 달라질 수 있다. migration policy(330)는 페이지(page)의 마이그레이션(migration) 수행 시 경로(path) 설정에 대한 정책을 포함할 수 있다.The migration manager (326) can manage the logical tier (328) and migration policy (330). The logical tier 328 may refer to information about a tier classified by a processor (e.g., processor 120 of FIG. 1) based on the latency of the memory. The processor 120 measures the latency on each memory node, and if the difference in latency between one node and another node is less than a specified level (e.g., about 40%), the two nodes are placed in the same tier. Can be classified. The specified level is only an example, is not fixed, and may vary depending on settings. The migration policy 330 may include a policy for path settings when performing page migration.
일 실시예에 따르면, 전자 장치(101)는 메모리의 레이턴시(latency)를 고려하여 티어(tier) 를 설정하고, 티어(tier) 간 오토 밸런싱(auto-balancing) 동작의 수행 여부를 설정하여 효율적으로 메모리 자원을 활용할 수 있다. 오토 밸런싱(auto-balancing)은 페이지(page)의 마이그레이션(migration) 동작을 포함할 수 있다. 페이지(page)는 데이터를 저장하기 위한 자료 구조를 의미할 수 있다. 페이지(page)는 메모리 영역을 일정 크기로 구분한 공간을 의미할 수 있다. 페이지(page)는 파일 데이터를 포함할 수 있다. 또는 페이지(page)는 프로세스에서 특정 함수(예: malloc)를 통해 요청한 데이터를 포함하는 익명 페이지(anonymous page)를 의미할 수 있다. 페이지(page) 마이그레이션(migration)은 파일 데이터를 담고 있는 페이지를 다른 계층으로 이동시키는 동작을 의미할 수 있다. 오토 밸런싱(auto-balancing)은 메모리의 여유 공간이 부족한 상황에서 상대적으로 접근이 빠른 fast memory(예: DRAM)의 페이지를 상대적으로 접근이 느린 slow memory(예: persistent memory) 상으로 이동시키는 demotion 동작을 포함할 수 있다. 또한, 오토 밸런싱(auto-balancing)은 메모리가 여유로운 상황에서 상대적으로 접근이 느린 slow memory(예: persistent memory) 상에서 지정된 수준을 초과하여 접근되는 hot page를 상대적으로 접근이 빠른 fast memory(예: DRAM) 상으로 이동시키는 promotion 동작을 포함할 수 있다.According to one embodiment, the electronic device 101 sets a tier in consideration of the latency of the memory and sets whether to perform an auto-balancing operation between tiers to efficiently Memory resources can be utilized. Auto-balancing may include page migration operations. A page may refer to a data structure for storing data. A page may refer to a space in which a memory area is divided into a certain size. A page may contain file data. Alternatively, a page may refer to an anonymous page containing data requested by a process through a specific function (e.g. malloc). Page migration may refer to the operation of moving a page containing file data to another layer. Auto-balancing is a demotion operation that moves pages from fast memory (e.g. DRAM), which is relatively fast to access, to slow memory (e.g. persistent memory), which is relatively slow to access, in situations where free memory space is insufficient. may include. In addition, auto-balancing transfers hot pages that are accessed in excess of a specified level from relatively slow access slow memory (e.g. persistent memory) to relatively fast access fast memory (e.g. DRAM) in situations where memory is available. ) can include a promotion action that moves it to the top.
프로세서(120)가 각 메모리 노드 상의 레이턴시(latency)에 기반하여 티어를 구분하고, 티어에 기반하여 마이그레이션(migration) 수행 경로(path)를 설정하는 실시예에 대해서는 도 4a 내지 도 5b를 통해 설명될 것이다.An embodiment in which the processor 120 distinguishes tiers based on the latency on each memory node and sets a migration path based on the tiers will be described with reference to FIGS. 4A to 5B. will be.
도 4a, 4b 및 4c는 메모리의 지연 속도(latency)에 기반하여 티어(tier)를 분류하는 과정을 나타낸 것이다.Figures 4a, 4b, and 4c show the process of classifying tiers based on memory latency.
일 실시예에 따르면, 프로세서(예: 도 1의 프로세서(120))는 복수의 메모리들의 지연 시간(latency)을 측정하고, 측정된 지연 시간(latency)에 기반하여 메모리들 간 티어(tier)를 구분할 수 있다.According to one embodiment, a processor (e.g., processor 120 of FIG. 1) measures the latency of a plurality of memories and determines a tier between memories based on the measured latency. can be distinguished.
도 4a에 따르면, 프로세서(120)는 DRAM(412a)과 PMEM(persistent memory)(422a)의 레이턴시(latency) 차이가 지정된 수준을 초과함에 기반하여 제 1 티어(410a) 및 제 2 티어(420a)로 구분할 수 있다. 지정된 수준은 예를 들어, DRAM(412a)의 레이턴시를 기준으로 PMEM(422a)의 레이턴시가 약 40% 미만의 차이가 나는 수준을 의미할 수 있다. 이는 일 예시일 뿐, 지정된 수준은 40%로 한정되는 것은 아니며 설정에 따라 달라질 수 있다.According to FIG. 4A, the processor 120 processes the first tier 410a and the second tier 420a based on the latency difference between the DRAM 412a and the persistent memory (PMEM) 422a exceeding a specified level. It can be divided into: For example, the specified level may mean a level at which the latency of the PMEM 422a differs by less than about 40% based on the latency of the DRAM 412a. This is only an example, and the specified level is not limited to 40% and may vary depending on settings.
프로세서(120)는 DRAM(412a) 과 PMEM(422a)의 레이턴시의 차이가 확실하여 읽기 성능이 차이나므로 마이그레이션(migration) 수행 시 성능 이득이 있을 것으로 결정할 수 있다. 마이그레이션(migration)은 파일 데이터를 담고 있는 페이지를 다른 계층으로 이동시키는 동작을 의미할 수 있다. 마이그레이션(migration)동작은 복잡하고, 페이지 할당 과정에서 CPU의 성능을 필요로 하므로 오히려 시스템 지연을 발생시킬 수 있다. 또한, 프로세서(120)는 메모리의 여유 공간이 부족할 때 마이그레이션(migration)동작을 수행할 수 있는데, 마이그레이션(migration)동작을 수행하기 위해 오버헤드(overhead)가 발생할 수 있다. 프로세서(120)는 마이그레이션(migration)동작을 수행하기 위한 오버헤드로 인해 오히려 시스템 지연을 더 발생시킬 수도 있다. 마이그레이션(migration) 동작을 수행하기 위한 OS의 로직(logic)은 CPU를 점유할 수 있다. 이 상황에서 프로세서(120)는 CPU가 점유되어 사용자 요청에 대한 회신이 늦어질 수 있다. 오버헤드(overhead)는 마이그레이션(migration) 동작으로 인해 사용자 요청에 대한 회신이 지연되는 상황을 의미할 수 있다..The processor 120 may determine that there will be a performance gain when performing migration because there is a clear difference in latency between the DRAM 412a and the PMEM 422a, resulting in a difference in read performance. Migration may refer to the operation of moving a page containing file data to another layer. Migration operations are complex and require CPU performance during the page allocation process, which can cause system delays. Additionally, the processor 120 may perform a migration operation when there is insufficient free space in the memory, but overhead may occur to perform the migration operation. The processor 120 may actually cause further system delay due to overhead for performing a migration operation. The OS logic to perform a migration operation may occupy the CPU. In this situation, the CPU of the processor 120 may be occupied and the response to the user request may be delayed. Overhead may refer to a situation where the reply to a user request is delayed due to a migration operation.
이러한 시스템 지연을 방지하기 위해 본 문서에 따른 전자 장치(예: 도 1의 전자 장치(101))는 상대적으로 읽기 속도가 빠른 메모리인 DRAM과 상대적으로 읽기 속도가 느린 메모리인 PMEM을 같이 사용하는 메모리 티어링 시스템(memory tiering system) 상에서 성능이 다른 메모리 계층 간 메모리 밸런싱 정책을 수립하고 밸런싱 동작을 효율적으로 조절하기 위한 방법을 제공할 수 있다.To prevent such system delays, the electronic device according to this document (e.g., the electronic device 101 in FIG. 1) uses a memory that uses DRAM, a memory with a relatively fast read speed, and PMEM, a memory with a relatively slow read speed. It is possible to establish a memory balancing policy between memory tiers with different performance in a memory tiering system and provide a method for efficiently controlling balancing operations.
일 실시예에 따르면, 프로세서(420)는 다른 티어 간 메모리들 사이에서 상대적으로 지연 시간(latency)이 짧은 메모리 상에서 메모리 부족 상황 발생 시 상대적으로 지연 시간(latency)이 긴 메모리 상으로 페이지(page)를 마이그레이션(migration)하도록 제어할 수 있다.According to one embodiment, when a memory shortage situation occurs in memory with relatively short latency between memories between different tiers, the processor 420 moves pages to memory with relatively long latency. can be controlled to migrate.
도 4b에 따르면, 프로세서(120)는 DRAM(412b)과 PMEM(persistent memory)(414b)의 레이턴시(latency) 차이가 지정된 수준을 초과하지 않음에 기반하여 두 메모리를 하나의 티어(예: 제 1 티어(410b))로 분류할 수 있다. 일 실시예에 따르면, 프로세서(420)는 같은 티어 내 메모리들 사이에서는 페이지(page)를 마이그레이션(migration)시키지 않도록 제어할 수 있다. 프로세서(120)는 복수의 메모리들 간 레이턴시(latency) 차이가 지정된 수준을 초과하지 않는 경우, 마이그레이션(migration)을 수행하여 얻는 성능 이득보다 마이그레이션(migration)을 수행하면서 발생할 수 있는 시스템 지연 가능성이 더 크다고 결정할 수 있다. 프로세서(120)는 이러한 이유로 레이턴시(latency) 차이가 지정된 수준을 초과하지 않는 경우, 복수의 메모리들을 하나의 티어(예: 제 1 티어(410b))로 분류하고, 같은 티어 내 메모리들 사이에서는 페이지(page)를 마이그레이션(migration)시키지 않도록 제어할 수 있다.According to FIG. 4B, the processor 120 divides the two memories into one tier (e.g., a first tier) based on the latency difference between the DRAM 412b and the persistent memory (PMEM) 414b not exceeding a specified level. It can be classified into tiers (410b)). According to one embodiment, the processor 420 may control pages not to be migrated between memories within the same tier. If the latency difference between a plurality of memories does not exceed a specified level, the processor 120 has a greater possibility of system delay that may occur during migration than the performance gain obtained by performing migration. You can decide it's big. For this reason, if the latency difference does not exceed a specified level, the processor 120 classifies the plurality of memories into one tier (e.g., the first tier 410b), and between memories within the same tier, page You can control (page) from migrating.
도 4c에 따르면, 프로세서(120)는 DRAM(412c)과 제 3 PMEM(persistent memory)(414c)의 레이턴시(latency) 차이가 지정된 수준을 초과하지 않음에 기반하여 두 메모리를 하나의 티어(예: 제 1 티어(410c))로 분류할 수 있다. 반면, 프로세서(120)는 제 1 PMEM(422c) 및 제 2 PMEM(424c)에 대해 DRAM(412c)과 비교하여 레이턴시(latency) 차이가 지정된 수준을 초과함에 기반하여 제 2 티어(420c)로 분류할 수 있다.According to FIG. 4C, the processor 120 divides the two memories into one tier (e.g., It can be classified into the first tier (410c). On the other hand, the processor 120 is classified into the second tier 420c based on the latency difference for the first PMEM 422c and the second PMEM 424c compared to the DRAM 412c exceeding a specified level. can do.
프로세서(120)는 제 1 티어(410c)로 분류되는 DRAM(412c)과 제 3 PMEM(414c) 사이에서는 페이지(page)를 마이그레이션(migration)시키지 않도록 제어할 수 있다. 또한, 프로세서(120)는 제 2 티어(420c)로 분류되는 제 1 PMEM(422c) 및 제 2 PMEM(424c) 사이에서는 페이지(page)를 마이그레이션(migration)시키지 않도록 제어할 수 있다. 프로세서(120)는 DRAM(412c)의 여유 공간이 지정된 수준 미만인 경우, 제 1 PMEM(422c) 및/또는 제 2 PMEM(424c) 상으로 페이지(page)를 마이그레이션(migration)시킬 수 있다. 프로세서(120)는 제 3 PMEM(414c)의 여유 공간이 지정된 수준 미만인 경우, 제 1 PMEM(422c) 및/또는 제 2 PMEM(424c) 상으로 페이지(page)를 마이그레이션(migration)시킬 수 있다.The processor 120 may control pages not to be migrated between the DRAM 412c classified as the first tier 410c and the third PMEM 414c. Additionally, the processor 120 may control pages not to be migrated between the first PMEM 422c and the second PMEM 424c classified as the second tier 420c. If the free space of the DRAM 412c is less than a specified level, the processor 120 may migrate pages onto the first PMEM 422c and/or the second PMEM 424c. If the free space of the third PMEM 414c is less than a specified level, the processor 120 may migrate pages onto the first PMEM 422c and/or the second PMEM 424c.
도 5a 및 도 5b는 티어 간 마이그레이션(migration)이 일어나는 상황에서 메모리 할당 순서를 결정하는 과정을 도시한 것이다.Figures 5a and 5b illustrate the process of determining the memory allocation order in a situation where migration between tiers occurs.
도 5a에 따르면, 프로세서(예: 도 1의 프로세서(120))는 제 1 티어(510a) 내의 메모리 상에서 제 2 티어(520a) 내 메모리들로 페이지(page)를 마이그레이션(migration)시킬 수 있다. According to FIG. 5A, a processor (eg, processor 120 of FIG. 1) may migrate a page from memory in the first tier 510a to memories in the second tier 520a.
일 실시예에 따르면, 전자 장치(예: 도 1의 전자 장치(101))는 메모리의 레이턴시(latency)를 고려하여 티어(tier) 를 설정하고, 티어(tier) 간 오토 밸런싱(auto-balancing) 동작의 수행 여부를 설정하여 효율적으로 메모리 자원을 활용할 수 있다. 오토 밸런싱(auto-balancing)은 페이지(page)의 마이그레이션(migration) 동작을 포함할 수 있다. 페이지(page)는 데이터를 저장하기 위한 자료 구조를 의미할 수 있다. 페이지(page)는 메모리 영역을 일정 크기로 구분한 공간을 의미할 수 있다. 페이지(page)는 파일 데이터를 포함할 수 있다. 또는 페이지(page)는 프로세스에서 특정 함수(예: malloc)를 통해 요청한 데이터를 포함하는 익명 페이지(anonymous page)를 의미할 수 있다. 페이지(page) 마이그레이션(migration)은 파일 데이터를 담고 있는 페이지를 다른 계층으로 이동시키는 동작을 의미할 수 있다. 오토 밸런싱(auto-balancing)은 메모리의 여유 공간이 부족한 상황에서 상대적으로 접근이 빠른 fast memory(예: DRAM)의 페이지를 상대적으로 접근이 느린 slow memory(예: persistent memory) 상으로 이동시키는 demotion 동작을 포함할 수 있다. 또한, 오토 밸런싱(auto-balancing)은 메모리가 여유로운 상황에서 상대적으로 접근이 느린 slow memory(예: persistent memory) 상에서 지정된 수준을 초과하여 접근되는 hot page를 상대적으로 접근이 빠른 fast memory(예: DRAM) 상으로 이동시키는 promotion 동작을 포함할 수 있다.According to one embodiment, an electronic device (e.g., the electronic device 101 in FIG. 1) sets a tier in consideration of the latency of the memory and performs auto-balancing between tiers. You can utilize memory resources efficiently by setting whether to perform an operation. Auto-balancing may include page migration operations. A page may refer to a data structure for storing data. A page may refer to a space in which a memory area is divided into a certain size. A page may contain file data. Alternatively, a page may refer to an anonymous page containing data requested by a process through a specific function (e.g. malloc). Page migration may refer to the operation of moving a page containing file data to another layer. Auto-balancing is a demotion operation that moves pages from fast memory (e.g. DRAM), which is relatively fast to access, to slow memory (e.g. persistent memory), which is relatively slow to access, in situations where free memory space is insufficient. may include. In addition, auto-balancing transfers hot pages that are accessed in excess of a specified level from relatively slow access slow memory (e.g. persistent memory) to relatively fast access fast memory (e.g. DRAM) in situations where memory is available. ) can include a promotion action that moves it to the top.
프로세서(120)는 제 1 티어(510a) 내의 DRAM(512a) 상의 페이지를 제 2 티어(520a) 내 제 1 PMEM(522a) 또는 제 2 PMEM(524a) 중 어느 하나로 마이그레이션(migration) 시킬 수 있다. 프로세서(120)는 fallback list에 기반하여 제 1 PMEM(522a) 및 제 2 PMEM(524a) 중에서 어떤 메모리 상에 페이지를 먼저 마이그레이션(migration)시킬 지 결정할 수 있다. fallback list는 복수의 메모리들에 대해 레이턴시를 기반으로 결정된 마이그레이션(migration) 순서에 대한 정보를 포함할 수 있다. 예를 들어, 제 1 PMEM(522a)의 레이턴시가 제 2 PMEM(524a)의 레이턴시와 비교하여 상대적으로 더 낮은 경우, fallback list 상에는 제 1 PMEM(522a)의 순위가 제 2 PMEM(524a)보다 상대적으로 앞서는 것으로 기록될 수 있다. 프로세서(120)는 fallback list에 기반하여 제 1 PMEM(522a)의 여유 공간을 확인하고, 제 1 PMEM(522a)의 여유 공간이 지정된 수준을 초과하면, DRAM(512a)의 페이지를 제 1 PMEM(522a) 상으로 이동시킬 수 있다. 만약 프로세서(120)는 제 1 PMEM(522a)의 여유 공간이 지정된 수준 미만인 경우, 제 2 PMEM(524a)의 여유 공간을 후 순위로 확인할 수 있다. 프로세서(120)는 제 2 PMEM(524a)의 여유 공간이 지정된 수준을 초과하는 경우 DRAM(512a)의 페이지를 제 2 PMEM(524a) 상으로 이동시킬 수 있다.The processor 120 may migrate a page on the DRAM 512a in the first tier 510a to either the first PMEM 522a or the second PMEM 524a in the second tier 520a. The processor 120 may determine which memory page to migrate first among the first PMEM 522a and the second PMEM 524a based on the fallback list. The fallback list may include information about the migration order determined based on latency for a plurality of memories. For example, if the latency of the first PMEM 522a is relatively lower than that of the second PMEM 524a, the rank of the first PMEM 522a is higher than that of the second PMEM 524a on the fallback list. It can be recorded as being ahead of . The processor 120 checks the free space of the first PMEM 522a based on the fallback list, and if the free space of the first PMEM 522a exceeds a specified level, the processor 120 moves the page of the DRAM 512a to the first PMEM ( 522a) It can be moved to phase 522a). If the free space of the first PMEM 522a is less than a specified level, the processor 120 may check the free space of the second PMEM 524a as a later priority. If the free space of the second PMEM 524a exceeds a specified level, the processor 120 may move the page of the DRAM 512a onto the second PMEM 524a.
도 5b는 제 1 PMEM(522b) 및 제 2 PMEM(524b)의 레이턴시가 지정된 수준을 초과하지 않고 유사한 상황을 나타낸 것이다. 이 경우 fallback list는 제 1 PMEM(522b) 및 제 2 PMEM(524b)를 같은 순위로 기록할 수 있다. 프로세서(120)는 DRAM(512b)의 여유 공간이 지정된 수준 미만인 상황에서, 제 1 PMEM(522b) 및 제 2 PMEM(524b)의 여유 공간을 모두 확인할 수 있다. 프로세서(120)는 제 1 PMEM(522b) 및 제 2 PMEM(524b) 중에서 여유 공간이 지정된 수준을 초과하는 메모리 상으로 DRAM(512b)의 페이지를 이동시킬 수 있다. Figure 5b illustrates a similar situation without the latencies of the first PMEM 522b and the second PMEM 524b exceeding the specified level. In this case, the fallback list may record the first PMEM 522b and the second PMEM 524b in the same ranking. In a situation where the free space of the DRAM 512b is less than a specified level, the processor 120 may check the free space of both the first PMEM 522b and the second PMEM 524b. The processor 120 may move the page of the DRAM 512b to a memory of the first PMEM 522b and the second PMEM 524b whose free space exceeds a specified level.
일 실시예에 따르면, 프로세서(120)는 제 1 PMEM(522b) 및 제 2 PMEM(524b) 모두 여유 공간이 지정된 수준을 초과하는 경우 제 1 PMEM(522b) 및 제 2 PMEM(524b) 중 용량(size)이 상대적으로 더 큰 메모리 상에 우선적으로 DRAM(512b)의 페이지를 이동시킬 수 있다. 프로세서(120)는 제 1 티어(510b) 상의 DRAM(512b)의 여유 공간이 지정된 수준 미만인 상황에서 제 2 티어(520b) 상의 다른 메모리들(예: 제 1 PMEM(522b) 및 제 2 PMEM(524b))로 DRAM(512b)의 페이지를 마이그레이션(migration)시킬 수 있다. 프로세서(120)는 제 2 티어(520b) 상의 메모리들의 여유 공간이 부족하거나, DRAM(512b) 상에서 다른 페이지들이 더 이동해야 하는 경우 제 2 티어(520b) 상의 메모리들 상의 페이지(page)를 다른 티어의 메모리들로 이동시킬 수 있다. 그러나 프로세서(120)는 다른 티어가 존재하지 않는 경우, 스토리지(예: 도 3의 스토리지(316)) 상으로 페이지를 스왑(swap)시킬 수 있다. 스왑(swap)은 시스템 상에 메모리가 부족할 경우 스토리지(316)의 일부 공간을 활용하여 작업을 도와주는 동작을 의미할 수 있다. 다른 티어로 페이지를 이동시키거나, 스왑시키는 경우 CPU의 자원이 소모될 수 있다. CPU의 자원 소모를 줄이기 위해 프로세서(120)는 가능한 마이그레이션 또는 스왑이 일어나지 않도록 페이지를 제어할 필요가 있을 수 있다. 용량(size)이 상대적으로 더 큰 메모리는 여유 공간이 충분하여 특정 페이지를 다른 티어로 마이그레이션시키거나 스왑 시키는 확률이 상대적으로 낮을 수 있다. 반면 용량(size)이 상대적으로 더 작은 메모리는 여유 공간이 부족하여 상황에 따라 특정 페이지를 다른 티어로 마이그레이션시키거나 스왑 시키는 확률이 상대적으로 높을 수 있다. 이러한 이유로 프로세서(120)는 제 1 PMEM(522b) 및 제 2 PMEM(524b) 중 용량(size)이 상대적으로 더 큰 메모리 상에 우선적으로 DRAM(512a)의 페이지를 이동시킬 수 있다. 프로세서(120)는 제 1 PMEM(522b) 및 제 2 PMEM(524b) 중 용량(size)이 상대적으로 더 큰 메모리 상에 우선적으로 DRAM(512a)의 페이지를 이동시켜 특정 페이지를 다른 티어로 마이그레이션시키거나 스왑 시키는 확률을 낮추고, CPU의 자원 소모를 줄일 수 있다.According to one embodiment, the processor 120 determines the capacity ( The page of the DRAM 512b can be preferentially moved to a memory with a relatively larger size. In a situation where the free space of the DRAM 512b on the first tier 510b is less than a specified level, the processor 120 blocks other memories on the second tier 520b (e.g., the first PMEM 522b and the second PMEM 524b). )), the page of the DRAM 512b can be migrated. The processor 120 moves pages on the memories on the second tier 520b to another tier when there is insufficient free space in the memories on the second tier 520b or when other pages need to be moved further on the DRAM 512b. It can be moved to memories. However, if no other tier exists, the processor 120 may swap pages onto storage (eg, storage 316 in FIG. 3). Swap may refer to an operation that utilizes some space in the storage 316 to assist work when there is insufficient memory on the system. When moving or swapping pages to another tier, CPU resources may be consumed. In order to reduce CPU resource consumption, the processor 120 may need to control pages to prevent possible migration or swap. Memory with a relatively larger capacity (size) has enough free space, so the probability of migrating or swapping a specific page to another tier may be relatively low. On the other hand, memory with a relatively smaller capacity may have insufficient free space, so the probability of migrating or swapping a specific page to another tier may be relatively high depending on the situation. For this reason, the processor 120 may preferentially move the page of the DRAM 512a to a memory with a relatively larger capacity among the first PMEM 522b and the second PMEM 524b. The processor 120 preferentially moves pages of the DRAM 512a onto memory with a relatively larger capacity among the first PMEM 522b and the second PMEM 524b to migrate specific pages to another tier. This can lower the probability of swapping and reduce CPU resource consumption.
도 6은 일 실시예에 따른 전자 장치의 메모리 관리 방법을 순서도로 나타낸 것이다.Figure 6 is a flowchart showing a memory management method of an electronic device according to an embodiment.
도 6을 통하여 설명되는 동작들은 컴퓨터 기록 매체 또는 메모리(예: 도 1의 메모리(130))에 저장될 수 있는 인스트럭션들 을 기반으로 구현될 수 있다. 도시된 방법(600)은 앞서 도 1 내지 도 5b를 통해 설명한 전자 장치(예: 도 1의 전자 장치(101), 프로세서(120))에 의해 실행될 수 있으며, 앞서 설명한 바 있는 기술적 특징은 이하에서 생략하기로 한다. 도 6의 각 동작의 순서가 변경될 수 있으며, 일부 동작이 생략될 수도 있고, 일부 동작들이 동시에 수행될 수도 있다.The operations described with reference to FIG. 6 may be implemented based on instructions that can be stored in a computer recording medium or memory (eg, memory 130 in FIG. 1). The illustrated method 600 can be executed by the electronic device previously described with reference to FIGS. 1 to 5B (e.g., the electronic device 101 and the processor 120 of FIG. 1), and the technical features described above are described below. Decided to omit it. The order of each operation in FIG. 6 may be changed, some operations may be omitted, and some operations may be performed simultaneously.
동작 610에서, 프로세서(예: 도 1의 프로세서(120))는 복수의 메모리들의 지연 시간(latency)을 측정할 수 있다. 복수의 메모리들은 예를 들어, DRAM(dynamic random access memory) 및/또는 퍼시스턴트 메모리(persistent memory, PMEM)일 수 있다. PMEM은 DRAM 처럼 바이트 단위 접근이 가능하고, 데이터의 비 휘발성(persistence)를 포함하는 메모리일 수 있다. 이는 일 예시일 뿐, 복수의 메모리들의 종류는 이것으로 한정되는 것은 아니다. 지연 시간(latency)은 메모리로 요청을 보내고 요청한 data를 획득하는 데 소요되는 시간을 의미할 수 있다.In operation 610, a processor (eg, processor 120 of FIG. 1) may measure the latency of a plurality of memories. The plurality of memories may be, for example, dynamic random access memory (DRAM) and/or persistent memory (PMEM). PMEM can be a memory that can be accessed in byte units like DRAM and includes non-volatility (persistence) of data. This is only an example, and the types of plural memories are not limited to this. Latency may refer to the time it takes to send a request to memory and obtain the requested data.
동작 615에서, 프로세서(120)는 복수의 메모리들의 지연 시간(latency)을 측정하고, 측정된 지연 시간(latency)에 기반하여 메모리들 간 티어(tier)를 구분할 수 있다. 프로세서(120)는 각 메모리 노드 상의 레이턴시(latency)를 측정하고, 하나의 노드를 기준으로 다른 노드의 레이턴시(latency)의 차이가 지정된 수준(예: 약 40%) 미만인 경우 두 노드를 같은 티어로 분류할 수 있다. 지정된 수준은 일 예시일 뿐, 고정된 것이 아니며 설정에 따라 달라질 수 있다.In operation 615, the processor 120 may measure the latency of a plurality of memories and distinguish tiers between memories based on the measured latency. The processor 120 measures the latency on each memory node, and if the difference in latency between one node and another node is less than a specified level (e.g., about 40%), the two nodes are placed in the same tier. Can be classified. The specified level is only an example, is not fixed, and may vary depending on settings.
일 실시예에 따르면, 전자 장치(101)는 메모리의 레이턴시(latency)를 고려하여 티어(tier) 를 설정하고, 티어(tier) 간 오토 밸런싱(auto-balancing) 동작의 수행 여부를 설정하여 효율적으로 메모리 자원을 활용할 수 있다. 오토 밸런싱(auto-balancing)은 페이지(page)의 마이그레이션(migration) 동작을 포함할 수 있다. 페이지(page)는 데이터를 저장하기 위한 자료 구조를 의미할 수 있다. 페이지(page)는 메모리 영역을 일정 크기로 구분한 공간을 의미할 수 있다. 페이지(page)는 파일 데이터를 포함할 수 있다. 또는 페이지(page)는 프로세스에서 특정 함수(예: malloc)를 통해 요청한 데이터를 포함하는 익명 페이지(anonymous page)를 의미할 수 있다. 페이지(page) 마이그레이션(migration)은 파일 데이터를 담고 있는 페이지를 다른 계층으로 이동시키는 동작을 의미할 수 있다. 오토 밸런싱(auto-balancing)은 메모리의 여유 공간이 부족한 상황에서 상대적으로 접근이 빠른 fast memory(예: DRAM)의 페이지를 상대적으로 접근이 느린 slow memory(예: persistent memory) 상으로 이동시키는 demotion 동작을 포함할 수 있다. 또한, 오토 밸런싱(auto-balancing)은 메모리가 여유로운 상황에서 상대적으로 접근이 느린 slow memory(예: persistent memory) 상에서 지정된 수준을 초과하여 접근되는 hot page를 상대적으로 접근이 빠른 fast memory(예: DRAM) 상으로 이동시키는 promotion 동작을 포함할 수 있다.According to one embodiment, the electronic device 101 sets a tier in consideration of the latency of the memory and sets whether to perform an auto-balancing operation between tiers to efficiently Memory resources can be utilized. Auto-balancing may include page migration operations. A page may refer to a data structure for storing data. A page may refer to a space in which a memory area is divided into a certain size. A page may contain file data. Alternatively, a page may refer to an anonymous page containing data requested by a process through a specific function (e.g. malloc). Page migration may refer to the operation of moving a page containing file data to another layer. Auto-balancing is a demotion operation that moves pages from fast memory (e.g. DRAM), which is relatively fast to access, to slow memory (e.g. persistent memory), which is relatively slow to access, in situations where free memory space is insufficient. may include. In addition, auto-balancing transfers hot pages that are accessed in excess of a specified level from relatively slow access slow memory (e.g. persistent memory) to relatively fast access fast memory (e.g. DRAM) in situations where memory is available. ) can include a promotion action that moves it to the top.
동작 620에서, 프로세서(120)는 복수의 메모리들이 같은 티어인지 결정할 수 있다. At operation 620, the processor 120 may determine whether the plurality of memories are of the same tier.
복수의 메모리들이 같은 티어인 경우(동작 620-Yes), 동작 625에서, 프로세서(120)는 복수의 메모리들 간 페이지(page)를 마이그레이션(migration)시키지 않도록 제어할 수 있다. 마이그레이션(migration)은 파일 데이터를 담고 있는 페이지를 다른 계층으로 이동시키는 동작을 의미할 수 있다. 마이그레이션(migration)동작은 복잡하고, 페이지 할당 과정에서 CPU의 성능을 필요로 하므로 오히려 시스템 지연을 발생시킬 수 있다. 또한, 프로세서(120)는 메모리의 여유 공간이 부족할 때 마이그레이션(migration)동작을 수행할 수 있는데, 마이그레이션(migration)동작을 수행하기 위해 오버헤드(overhead)가 발생할 수 있다. 오버헤드(overhead)는 마이그레이션(migration)동작을 수행하기 위해 필요한 시간 및/또는 메모리를 의미할 수 있다. 프로세서(120)는 마이그레이션(migration)동작을 수행하기 위한 오버헤드로 인해 오히려 시스템 지연을 더 발생시킬 수도 있다. 이러한 시스템 지연을 방지하기 위해 본 문서에 따른 전자 장치(예: 도 1의 전자 장치(101)는 상대적으로 읽기 속도가 빠른 메모리인 DRAM과 상대적으로 읽기 속도가 느린 메모리인 PMEM을 같이 사용하는 메모리 티어링 시스템(memory tiering system) 상에서 성능이 다른 메모리 계층 간 메모리 밸런싱 정책을 수립하고 밸런싱 동작을 효율적으로 조절하기 위한 방법을 제공할 수 있다.If the plurality of memories are of the same tier (operation 620 - Yes), in operation 625, the processor 120 may control not to migrate pages between the plurality of memories. Migration may refer to the operation of moving a page containing file data to another layer. Migration operations are complex and require CPU performance during the page allocation process, which can cause system delays. Additionally, the processor 120 may perform a migration operation when there is insufficient free space in the memory, but overhead may occur to perform the migration operation. Overhead may refer to the time and/or memory required to perform a migration operation. The processor 120 may actually cause further system delay due to overhead for performing a migration operation. To prevent such system delays, the electronic device according to this document (e.g., the electronic device 101 of FIG. 1) uses memory tiering that uses DRAM, a memory with a relatively fast read speed, and PMEM, a memory with a relatively slow read speed. It is possible to establish a memory balancing policy between memory tiers with different performance in a memory tiering system and provide a method for efficiently controlling balancing operations.
프로세서(120)는 복수의 메모리들 간 레이턴시(latency) 차이가 지정된 수준을 초과하지 않는 경우, 마이그레이션(migration)을 수행하여 얻는 성능 이득보다 마이그레이션(migration)을 수행하면서 발생할 수 있는 시스템 지연 가능성이 더 크다고 결정할 수 있다. 프로세서(120)는 이러한 이유로 레이턴시(latency) 차이가 지정된 수준을 초과하지 않는 경우, 복수의 메모리들을 하나의 티어(예: 제 1 티어(410b))로 분류하고, 같은 티어 내 메모리들 사이에서는 페이지(page)를 마이그레이션(migration)시키지 않도록 제어할 수 있다.If the latency difference between a plurality of memories does not exceed a specified level, the processor 120 has a greater possibility of system delay that may occur during migration than the performance gain obtained by performing migration. You can decide it's big. For this reason, if the latency difference does not exceed a specified level, the processor 120 classifies the plurality of memories into one tier (e.g., the first tier 410b), and between memories within the same tier, page You can control (page) from migrating.
복수의 메모리들이 다른 티어인 경우(동작 620-No), 동작 630에서, 상대적으로 지연 시간(latency)이 짧은 메모리 상에서 메모리 부족 상황 발생 시 상대적으로 지연 시간(latency)이 긴 메모리 상으로 페이지(page)를 마이그레이션(migration)하도록 제어할 수 있다.If a plurality of memories are of different tiers (operation 620-No), in operation 630, when a memory shortage occurs in memory with relatively low latency, a page is transferred to memory with relatively long latency. ) can be controlled to migrate.
일 실시예에 따르면, 프로세서(120)는 복수의 메모리들의 지연 시간(latency)의 차이가 지정된 수준 미만인 경우 하나의 티어로 분류할 수 있다. 프로세서(120)는 복수의 메모리들의 지연 시간(latency)의 차이가 지정된 수준을 초과하는 경우 서로 다른 티어로 분류할 수 있다.According to one embodiment, the processor 120 may classify the memory into one tier when the difference in latency between the plurality of memories is less than a specified level. The processor 120 may classify the memory into different tiers when the difference in latency between the plurality of memories exceeds a specified level.
일 실시예에 따르면, 프로세서(120)는 지연 시간(latency)이 제 1 수준(예: 10ns) 에 대응하는 메모리들을 제 1 티어로 분류하고, 지연 시간(latency)이 제 1 수준보다는 상대적으로 긴 제 2 수준(예: 20ns)에 대응하는 메모리들을 제 2 티어로 분류할 수 있다.According to one embodiment, the processor 120 classifies memories whose latency corresponds to a first level (e.g., 10ns) into the first tier, and selects memories whose latency is relatively longer than the first level. Memories corresponding to the second level (e.g., 20ns) can be classified into the second tier.
일 실시예에 따르면, 프로세서(120)는 지연 시간(latency)이 제 1 수준(예: 10ns)과 비교하여 일정 수준(예: 40%) 이내인 메모리를 제 1 티어로 분류할 수 있다. 프로세서(120)는 지연 시간(latency)이 제 2 수준(예: 20ns)과 비교하여 일정 수준(예: 40%) 이내인 메모리를 제 2 티어로 분류할 수 있다. 프로세서(120)는 지연 시간(latency)이 제 3 수준(예: 30ns)인 메모리에 대해 제 1 수준(예: 10ns) 및 제 2 수준(예: 20ns)과 비교하여 일정 범위가 아닌 것으로 결정하고, 제 3 티어로 분류할 수 있다.According to one embodiment, the processor 120 may classify memory whose latency is within a certain level (e.g., 40%) compared to the first level (e.g., 10 ns) as the first tier. The processor 120 may classify memory whose latency is within a certain level (e.g., 40%) compared to the second level (e.g., 20 ns) as the second tier. The processor 120 determines that the latency of the memory at the third level (e.g., 30 ns) is not within a certain range compared to the first level (e.g., 10 ns) and the second level (e.g., 20 ns), and , can be classified into the third tier.
일 실시예에 따르면, 프로세서(120)는 제 1 티어에 속하는 노드의 메모리가 부족함에 기반하여 제 2 티어에 속하는 노드로 메모리 할당이 가능한지 확인하고, 제 1 티어의 계층 간에는 마이그레이션(migration)이 일어나지 않도록 제어하고, 제 2 티어에 속하는 노드로 메모리를 할당시킬 수 있다.According to one embodiment, the processor 120 determines whether memory can be allocated to a node belonging to the second tier based on the lack of memory in the node belonging to the first tier, and ensures that migration does not occur between the tiers of the first tier. You can control it so that it does not, and memory can be allocated to nodes belonging to the second tier.
일 실시예에 따르면, 프로세서(120)는 제 1 PMEM(예: 도 5b의 제 1 PMEM (522b)) 및 제 2 PMEM(예: 도 5b의 제 2 PMEM (524b)) 모두 여유 공간이 지정된 수준을 초과하는 경우 제 1 PMEM(522b) 및 제 2 PMEM(524b) 중 용량(size)이 상대적으로 더 큰 메모리 상에 우선적으로 DRAM(512a)의 페이지를 이동시킬 수 있다.According to one embodiment, the processor 120 configures both the first PMEM (e.g., first PMEM 522b in FIG. 5B) and the second PMEM (e.g., second PMEM 524b in FIG. 5B) with free space at a specified level. If it exceeds , the page of the DRAM 512a may be preferentially moved to a memory with a relatively larger capacity among the first PMEM 522b and the second PMEM 524b.
프로세서(120)는 런타임(runtime) 상황에 따른 PSI(pressure stall information)의 변화에 대응하여 마이그레이션(migration)을 우선적으로 수행할 메모리를 다르게 결정할 수 있다. PSI(pressure stall information)는 자원이 많이 할당되어 태스크에 지연이 발생되는지 여부에 대한 지표를 의미할 수 있다. PSI(pressure stall information)는 메모리 또는 CPU에 대해 하나 또는 그 이상의 프로세스가 자원이 부족해서 딜레이가 발생한 시간을 'some'으로 표기할 수 있다. PSI(pressure stall information)는 메모리에 대해 모든 태스크가 자원부족으로 딜레이가 발생한 시간을 'full'로 표기할 수 있다. full 값이 높다면 자원부족으로 전체 처리량에 손실이 발생하고 있다는 것을 의미한다.The processor 120 may differently determine which memory to prioritize migration in response to changes in pressure stall information (PSI) depending on runtime conditions. Pressure stall information (PSI) may refer to an indicator of whether a delay occurs in a task due to a lot of resources being allocated. PSI (pressure stall information) can indicate 'some' time when a delay occurs due to one or more processes lacking resources in memory or CPU. PSI (pressure stall information) can indicate the time when all tasks are delayed due to lack of resources in memory as 'full'. If the full value is high, it means that there is a loss in overall throughput due to a lack of resources.
일 실시예에 따르면, 프로세서(120)는 복수의 메모리들의 지연 시간(latency)에 대한 정보를 기반으로 메모리들 간 티어(tier)를 구분하고, 지연 시간(latency)이 짧은 메모리 순서대로 빈 공간이 있는지 확인할 수 있다. 프로세서(120)는 빈 공간이 확인된 메모리 상에 페이지를 할당하도록 제어하며, 빈 공간이 확인되지 않는 경우 다른 티어의 메모리 상으로 페이지를 할당시킬 수 있다.According to one embodiment, the processor 120 distinguishes tiers between memories based on information about the latency of a plurality of memories, and provides empty space in the order of memories with shorter latency. You can check if it exists. The processor 120 controls to allocate pages on memory where free space is confirmed, and when free space is not confirmed, pages can be allocated on memory of another tier.
일 실시예에 따르면, 복수의 메모리들의 지연 시간(latency)은 공정 단계, 상기 전자 장치의 최초 부팅 시점 또는 메모리의 hot plugging 시점 중 적어도 어느 하나에서 측정될 수 있으나 제한은 없다. 예를 들어, 복수의 메모리들의 지연 시간은 특정 어플리케이션의 실행 시에 측정되거나, 지정된 주기에 따라 측정되거나 또는 지연 시간 측정을 위한 이벤트가 발생함에 기반하여 측정될 수 있다.According to one embodiment, the latency of a plurality of memories may be measured at least one of a process stage, an initial booting time of the electronic device, or a hot plugging time of the memory, but there is no limitation. For example, the delay time of a plurality of memories may be measured when a specific application is executed, may be measured according to a designated cycle, or may be measured based on the occurrence of an event for measuring the delay time.
일 실시예에 따르면, 프로세서(120)는 메모리의 제품 정보로부터 메모리의 지연 시간(latency)에 대한 정보를 획득할 수 있다.According to one embodiment, the processor 120 may obtain information about the latency of the memory from product information of the memory.
본 명세서와 도면에 개시된 본 문서의 실시예는 본 문서의 실시예에 따른 기술 내용을 쉽게 설명하고 본 문서의 실시예의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 문서의 실시예의 범위를 한정하고자 하는 것은 아니다. 따라서 본 문서의 일 실시예의 범위는 여기에 개시된 실시예 이외에도 본 문서의 일 실시예의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 문서의 일 실시예의 범위에 포함되는 것으로 해석되어야 한다.The embodiments of this document disclosed in the specification and drawings are merely presented as specific examples to easily explain the technical content according to the embodiments of this document and to aid understanding of the embodiments of this document, and limit the scope of the embodiments of this document. That's not what I want to do. Therefore, the scope of an embodiment of this document should be interpreted as including all changes or modified forms derived based on the technical idea of an embodiment of this document in addition to the embodiments disclosed herein.
Claims (15)
- 전자 장치에 있어서,In electronic devices,제 1 메모리 및 상기 제 1 메모리보다 낮은 성능을 갖는 제 2 메모리를 포함하는 복수의 메모리; 및a plurality of memories including a first memory and a second memory having lower performance than the first memory; and프로세서를 포함하며,Contains a processor,상기 프로세서는The processor is복수의 메모리들의 지연 시간(latency)을 측정하고,Measure the latency of a plurality of memories,측정된 지연 시간(latency)에 기반하여 상기 복수의 메모리들 중 적어도 하나 이상의 메모리에 할당될 티어(tier)를 결정하고,Determine a tier to be allocated to at least one memory among the plurality of memories based on the measured latency,페이지의 마이그레이션 요청에 대응하여, In response to a page's migration request,상기 복수의 메모리들 중 동일한 티어가 할당된 메모리들 사이에서는 페이지(page) 마이그레이션(migration)을 수행하지 않도록 제어하는 전자 장치.An electronic device that controls not to perform page migration between memories allocated to the same tier among the plurality of memories.
- 제 1 항에 있어서,According to claim 1,상기 프로세서는The processor is상기 제 1 메모리 및 상기 제 2 메모리의 지연 시간(latency)의 차이가 지정된 수준 미만인 경우, 동일한 티어를 상기 제 1 메모리 및 상기 제 2 메모리에 할당하고,If the difference in latency between the first memory and the second memory is less than a specified level, assigning the same tier to the first memory and the second memory,상기 제 1 메모리 및 상기 제 2 메모리의 지연 시간(latency)의 차이가 지정된 수준을 초과하는 경우, 상기 제 1 메모리에 할당되는 티어와 상기 제 2 메모리에 할당되는 티어를 서로 다르게 결정하며,When the difference in latency between the first memory and the second memory exceeds a specified level, the tier allocated to the first memory and the tier allocated to the second memory are determined differently,상기 복수의 메모리들 중 서로 다른 티어가 할당된 메모리들 사이에서는 페이지(page) 마이그레이션(migration)을 수행하도록 제어하고,Controlling page migration between memories allocated to different tiers among the plurality of memories,상기 페이지는The above page is상대적으로 낮은 지연시간에 대응하는 티어를 가진 메모리로부터 상대적으로 높은 지연시간에 대응하는 티어를 가진 메모리 상으로 마이그레이션 되는 전자 장치.An electronic device that migrates from a memory with a tier corresponding to a relatively low latency to a memory with a tier corresponding to a relatively high latency.
- 제 1 항에 있어서,According to claim 1,상기 프로세서는The processor is상기 복수의 메모리들 중 지연 시간(latency)이 제 1 수준에 대응하는 메모리들에 제 1 티어를 할당하고,Allocating a first tier to memories whose latency corresponds to a first level among the plurality of memories,상기 복수의 메모리들 중 지연 시간(latency)이 상기 제 1 수준보다 큰 제 2 수준에 대응하는 메모리들에 제 2 티어를 할당하고,Allocating a second tier to memories corresponding to a second level among the plurality of memories whose latency is greater than the first level,제 1 메모리의 지연 시간(latency)이 상기 제 1 수준으로 측정됨에 기반하여 상기 제 1 메모리를 상기 제 1 티어로 분류하고,Classifying the first memory into the first tier based on the latency of the first memory being measured at the first level,제 2 메모리의 지연 시간(latency)이 상기 제 2 수준으로 측정됨에 기반하여 상기 제 2 메모리를 상기 제 2 티어로 분류하는 전자 장치.An electronic device that classifies the second memory into the second tier based on the latency of the second memory being measured at the second level.
- 제 3항에 있어서,According to clause 3,상기 프로세서는The processor is제 3 메모리의 지연 시간(latency)이 제 3 수준으로 측정됨에 기반하여Based on the latency of the third memory being measured at the third level상기 제 3 수준이 상기 제 1 수준과 일정 범위 이내인 경우 상기 제 3 메모리를 상기 제 1 티어로 분류하고,If the third level is within a certain range from the first level, classify the third memory into the first tier,상기 제 3 수준이 상기 제 2 수준과 일정 범위 이내인 경우 상기 제 3 메모리를 상기 제 2 티어로 분류하고,If the third level is within a certain range from the second level, classify the third memory into the second tier,상기 제 3 수준이 상기 제 1 수준 및 상기 제 2 수준과 일정 범위 이내가 아니면 상기 제 3 수준에 대응하는 제 3 티어를 새로 생성하고, 상기 제 3 메모리를 상기 제 3 티어로 분류하는 전자 장치.An electronic device that, if the third level is not within a certain range of the first level and the second level, creates a new third tier corresponding to the third level, and classifies the third memory into the third tier.
- 제 3항에 있어서,According to clause 3,상기 프로세서는The processor is상기 제 1 티어가 할당된 메모리의 잔여 용량이 부족함에 기반하여, 상기 제 1 티어가 할당된 메모리에 저장된 페이지를, 상기 제 2 티어가 할당된 메모리로 마이그레이션이 가능한지 여부를 확인하고,Based on the remaining capacity of the memory allocated to the first tier, check whether it is possible to migrate the page stored in the memory allocated to the first tier to the memory allocated to the second tier,상기 제 1 티어의 계층 간에는 마이그레이션(migration)이 일어나지 않도록 제어하고,Controlling so that migration does not occur between layers of the first tier,상기 제 2 티어가 할당된 메모리로, 상기 페이지를 마이그레이션하는 전자 장치.An electronic device that migrates the page to memory allocated to the second tier.
- 제 5항에 있어서,According to clause 5,상기 프로세서는The processor is지연 시간(latency) 또는 메모리의 용량(size) 중 적어도 어느 하나에 기반하여 상기 제 2 티어가 할당된 메모리들 중 마이그레이션(migration)을 수행할 메모리를 선택하는 전자 장치.An electronic device that selects a memory to perform migration among the memories allocated to the second tier based on at least one of latency or memory size.
- 제 6항에 있어서,According to clause 6,상기 프로세서는The processor is런타임(runtime) 상황에 따른 PSI(pressure stall information)의 변화에 대응하여 상기 제 2 티어가 할당된 메모리들 중 마이그레이션(migration)을 수행할 메모리를 결정하는 전자 장치.An electronic device that determines which memory to perform migration among the memories allocated to the second tier in response to changes in pressure stall information (PSI) according to runtime situations.
- 제 1항에 있어서,According to clause 1,상기 프로세서는The processor is지연 시간(latency)에 기반하여 결정된 순서에 따라 상기 복수의 메모리들 각각의 잔여 용량을 확인하고, Check the remaining capacity of each of the plurality of memories in an order determined based on latency,지정된 크기 이상인 잔여 용량을 갖는 메모리 상에 페이지를 할당하도록 제어하는 전자 장치.An electronic device that controls the allocation of pages on memory with a remaining capacity greater than or equal to a specified size.
- 제 1 항에 있어서,According to claim 1,복수의 메모리들의 지연 시간(latency)은The latency of multiple memories is공정 단계, 상기 전자 장치의 최초 부팅 시점 또는 메모리의 hot plugging 시점 중 적어도 어느 하나에서 측정되는 전자 장치.An electronic device measured at least one of a process step, an initial booting time of the electronic device, or a hot plugging time of a memory.
- 제 1 항에 있어서,According to claim 1,상기 프로세서는The processor is메모리의 제품 정보로부터 메모리의 지연 시간(latency)에 대한 정보를 획득하고,Obtain information about the latency of the memory from the product information of the memory,지연 시간(latency)이 짧은 메모리 순서대로 빈 공간이 있는지 확인하고, 빈 공간이 확인된 메모리 상에 리소스를 할당하도록 제어하는 전자 장치.An electronic device that checks whether there is free space in a memory sequence with low latency and controls the allocation of resources to the memory for which free space is confirmed.
- 전자 장치의 메모리 관리 방법에 있어서,In a memory management method of an electronic device,복수의 메모리들의 지연 시간(latency)을 측정하는 동작;An operation of measuring latency of a plurality of memories;측정된 지연 시간(latency)에 기반하여 상기 복수의 메모리들 중 적어도 하나 이상의 메모리에 할당될 티어(tier)를 결정하는 동작;및An operation of determining a tier to be allocated to at least one memory among the plurality of memories based on measured latency; And페이지의 마이그레이션 요청에 대응하여,In response to a page's migration request,상기 복수의 메모리들 중 동일한 티어가 할당된 메모리들 사이에서는 페이지(page) 마이그레이션(migration)을 수행하지 않도록 제어하는 동작을 포함하는 방법.A method comprising controlling not to perform page migration between memories allocated to the same tier among the plurality of memories.
- 제 11항에 있어서,According to claim 11,상기 전자 장치의 메모리 관리 방법은The memory management method of the electronic device is상기 복수의 메모리들 중 서로 다른 티어가 할당된 메모리들 사이에서는 페이지(page) 마이그레이션(migration)을 수행하도록 제어하는 동작을 더 포함하며, Further comprising controlling to perform page migration between memories allocated to different tiers among the plurality of memories,측정된 지연 시간(latency)에 기반하여 상기 복수의 메모리들 중 적어도 하나 이상의 메모리에 할당될 티어(tier)를 결정하는 동작은The operation of determining a tier to be allocated to at least one memory among the plurality of memories based on the measured latency제 1 메모리 및 제 2 메모리의 지연 시간(latency)의 차이가 지정된 수준 미만인 경우 동일한 티어를 상기 제 1 메모리 및 상기 제 2 메모리에 할당하고,If the difference in latency between the first memory and the second memory is less than a specified level, assigning the same tier to the first memory and the second memory,상기 제 1 메모리 및 상기 제 2 메모리의 지연 시간(latency)의 차이가 지정된 수준을 초과하는 경우, 상기 제 1 메모리에 할당되는 티어와 상기 제 2 메모리에 할당되는 티어를 서로 다르게 결정하는 동작을 더 포함하고,When the difference in latency between the first memory and the second memory exceeds a specified level, an operation of determining a tier allocated to the first memory and a tier allocated to the second memory to be different from each other is further performed. Contains,상기 페이지는The above page is상대적으로 낮은 지연시간에 대응하는 티어를 가진 메모리로부터 상대적으로 높은 지연시간에 대응하는 티어를 가진 메모리 상으로 마이그레이션 되는 방법.A method of migrating from memory with a tier corresponding to relatively low latency to memory with a tier corresponding to relatively high latency.
- 제 11항에 있어서,According to claim 11,측정된 지연 시간(latency)에 기반하여 상기 복수의 메모리들 중 적어도 하나 이상의 메모리에 할당될 티어(tier)를 결정하는 동작은The operation of determining a tier to be allocated to at least one memory among the plurality of memories based on the measured latency상기 복수의 메모리들 중 지연 시간(latency)이 제 1 수준에 대응하는 메모리들에 제 1 티어를 할당하고,Allocating a first tier to memories whose latency corresponds to a first level among the plurality of memories,상기 복수의 메모리들 중 지연 시간(latency)이 상기 제 1 수준보다 큰 제 2 수준에 대응하는 메모리들에 제 2 티어를 할당하고,Allocating a second tier to memories corresponding to a second level among the plurality of memories whose latency is greater than the first level,제 1 메모리의 지연 시간(latency)이 상기 제 1 수준으로 측정됨에 기반하여 상기 제 1 메모리를 상기 제 1 티어로 분류하고,Classifying the first memory into the first tier based on the latency of the first memory being measured at the first level,제 2 메모리의 지연 시간(latency)이 상기 제 2 수준으로 측정됨에 기반하여 상기 제 2 메모리를 상기 제 2 티어로 분류하는 동작을 더 포함하는 방법.The method further includes classifying the second memory into the second tier based on the latency of the second memory being measured at the second level.
- 제 13항에 있어서,According to clause 13,측정된 지연 시간(latency)에 기반하여 상기 복수의 메모리들 중 적어도 하나 이상의 메모리에 할당될 티어(tier)를 결정하는 동작은The operation of determining a tier to be allocated to at least one memory among the plurality of memories based on the measured latency제 3 메모리의 지연 시간(latency)이 제 3 수준으로 측정됨에 기반하여Based on the latency of the third memory being measured at the third level상기 제 3 수준이 상기 제 1 수준과 일정 범위 이내인 경우 상기 제 3 메모리를 상기 제 1 티어로 분류하거나 또는If the third level is within a certain range from the first level, the third memory is classified into the first tier, or상기 제 3 수준이 상기 제 2 수준과 일정 범위 이내인 경우 상기 제 3 메모리를 상기 제 2 티어로 분류하거나 또는If the third level is within a certain range from the second level, the third memory is classified into the second tier, or상기 제 3 수준이 상기 제 1 수준 및 상기 제 2 수준과 일정 범위 이내가 아니면 상기 제 3 수준에 대응하는 제 3 티어를 새로 생성하고, 상기 제 3 메모리를 상기 제 3 티어로 분류하는 동작을 더 포함하는 방법.If the third level is not within a certain range of the first level and the second level, a new third tier corresponding to the third level is created and the third tier is classified into the third tier. How to include it.
- 제 13항에 있어서,According to clause 13,상기 전자 장치의 메모리 관리 방법은The memory management method of the electronic device is상기 제 1 티어가 할당된 메모리의 잔여 용량이 부족함에 기반하여, 상기 제 1 티어가 할당된 메모리에 저장된 페이지를, 상기 제 2 티어가 할당된 메모리로 마이그레이션이 가능한지 여부를 확인하는 동작;및An operation of checking whether pages stored in the memory allocated to the first tier can be migrated to the memory allocated to the second tier based on insufficient remaining capacity of the memory allocated to the first tier; and상기 제 1 티어의 계층 간에는 마이그레이션(migration)이 일어나지 않도록 제어하고, 상기 제 2 티어가 할당된 메모리로, 상기 페이지를 마이그레이션하는 동작을 더 포함하는 방법.The method further includes controlling migration to not occur between layers of the first tier and migrating the page to memory allocated to the second tier.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2023-0008038 | 2023-01-19 | ||
KR20230008038 | 2023-01-19 | ||
KR1020230024334A KR20240115686A (en) | 2023-01-19 | 2023-02-23 | Electronic device and method for managing memory thereof |
KR10-2023-0024334 | 2023-02-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024155074A1 true WO2024155074A1 (en) | 2024-07-25 |
Family
ID=91956222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2024/000786 WO2024155074A1 (en) | 2023-01-19 | 2024-01-16 | Electronic device, and method for managing memory of electronic device |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2024155074A1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070283090A1 (en) * | 2006-06-06 | 2007-12-06 | Tomoyuki Kaji | Storage system and volume management method for the same |
US20120278569A1 (en) * | 2011-04-26 | 2012-11-01 | Hitachi, Ltd. | Storage apparatus and control method therefor |
KR20160037987A (en) * | 2013-09-27 | 2016-04-06 | 인텔 코포레이션 | Techniques to compose memory resources across devices |
US20210216234A1 (en) * | 2020-01-14 | 2021-07-15 | Vmware, Inc. | Automated tiering of file system objects in a computing system |
US20220179588A1 (en) * | 2019-08-28 | 2022-06-09 | Huawei Technologies Co., Ltd. | Data storage method and apparatus |
-
2024
- 2024-01-16 WO PCT/KR2024/000786 patent/WO2024155074A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070283090A1 (en) * | 2006-06-06 | 2007-12-06 | Tomoyuki Kaji | Storage system and volume management method for the same |
US20120278569A1 (en) * | 2011-04-26 | 2012-11-01 | Hitachi, Ltd. | Storage apparatus and control method therefor |
KR20160037987A (en) * | 2013-09-27 | 2016-04-06 | 인텔 코포레이션 | Techniques to compose memory resources across devices |
US20220179588A1 (en) * | 2019-08-28 | 2022-06-09 | Huawei Technologies Co., Ltd. | Data storage method and apparatus |
US20210216234A1 (en) * | 2020-01-14 | 2021-07-15 | Vmware, Inc. | Automated tiering of file system objects in a computing system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022154414A1 (en) | Electronic device and method for operation of storage of electronic device | |
WO2024155074A1 (en) | Electronic device, and method for managing memory of electronic device | |
WO2020116750A1 (en) | Method and electronic device for initializing storage | |
WO2022196918A1 (en) | Electronic device including non-volatile memory, and non-volatile memory management method thereof | |
WO2022097973A1 (en) | Electronic device and storage management method using same | |
WO2022173121A1 (en) | Electronic device comprising heterogeneous memories and method for transferring compression data between heterogeneous memories thereof | |
WO2022154380A1 (en) | Electronic device and method for managing memory of electronic device | |
WO2022149771A1 (en) | Electronic device and memory management method using same | |
WO2021162388A1 (en) | Electronic device including storage, and method for transmitting discard command of file system to storage by using same | |
WO2024112034A1 (en) | Electronic device, and file system operating method of electronic device | |
WO2023101294A1 (en) | Electronic device for managing storage space, and method for operating electronic device | |
WO2022030964A1 (en) | Method for allocating virtual memory and electronic device supporting same | |
WO2023027371A1 (en) | Electronic device and method for operating file system of electronic device | |
KR20240115686A (en) | Electronic device and method for managing memory thereof | |
WO2022154262A1 (en) | Method and device for updating database on basis of reserved space | |
WO2024128825A1 (en) | Electronic device and memory management method | |
WO2022119085A1 (en) | Method for performing integrity check, and electronic device using same | |
WO2022196889A1 (en) | Electronic device including multiprocessor and operation method thereof | |
WO2024058615A1 (en) | Electronic device comprising neural processing unit, and operating method therefor | |
WO2021256717A1 (en) | Data swapping method and electronic device supporting same | |
WO2022191455A1 (en) | Electronic device for performing file redaction, and operation method thereof | |
WO2023106636A1 (en) | Electronic apparatus and heating control method based on background process control in electronic apparatus | |
WO2022244961A1 (en) | Control method and device using same method | |
WO2022191408A1 (en) | Device for process scheduling, and scheduling method | |
WO2024205185A1 (en) | Electronic device, method, and computer-readable storage medium for executing each of plurality of threads through at least one cluster |
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: 24744854 Country of ref document: EP Kind code of ref document: A1 |