WO2024143656A1 - Electronic device for performing prefetcher algorithm appropriate for neural network model by using phase change memory, and operation method thereof - Google Patents
Electronic device for performing prefetcher algorithm appropriate for neural network model by using phase change memory, and operation method thereof Download PDFInfo
- Publication number
- WO2024143656A1 WO2024143656A1 PCT/KR2023/000841 KR2023000841W WO2024143656A1 WO 2024143656 A1 WO2024143656 A1 WO 2024143656A1 KR 2023000841 W KR2023000841 W KR 2023000841W WO 2024143656 A1 WO2024143656 A1 WO 2024143656A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- delta
- delta value
- value
- access address
- item
- Prior art date
Links
- 238000003062 neural network model Methods 0.000 title claims abstract description 13
- 238000000034 method Methods 0.000 title claims description 50
- 230000003247 decreasing effect Effects 0.000 claims description 4
- 238000013527 convolutional neural network Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 230000014509 gene expression Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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
-
- 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
Definitions
- a phase change memory (PCM) that stores a first instruction that causes the processor to perform an operation
- DRAM dynamic random memory
- Access Memory wherein the at least one operation includes a first delta value corresponding to the difference between a current access address and a previous access address of the memory and a second delta value corresponding to a previous delta value of the first delta value.
- the delta score corresponding to the first delta value is If it is greater than the offset threshold (OT), it may include performing a third process of prefetching a second prediction address by applying the first delta value to the current access address.
- OT offset threshold
- a method of operating an electronic device that performs a prefetcher algorithm suitable for a neural network model using a phase change memory includes a first access address corresponding to the difference between the current access address and the previous access address of the memory of the electronic device.
- the present invention can be universally applied to CNN models, enabling power savings while maintaining high performance, providing an effect that can be used in various artificial intelligence industry fields.
- FIG. 2 is a diagram illustrating an operation in which an electronic device updates records of tables used in a prefetch algorithm in a PCM system, according to various embodiments.
- FIG. 3 is a diagram illustrating an example in which an electronic device updates a record of an OST, according to various embodiments.
- FIG. 4 is a diagram illustrating a first embodiment in which an electronic device updates records of RHB and PST, according to various embodiments.
- FIG. 5 is a diagram illustrating a second embodiment in which an electronic device updates records of RHB and PST, according to various embodiments.
- FIG. 6 is a diagram illustrating an example in which an electronic device updates records of PST and ROB, according to various embodiments.
- FIG. 7 is a flowchart illustrating a method by which an electronic device performs prefetching, according to various embodiments.
- FIG. 8 is a diagram illustrating a method in which an electronic device performs prefetching using an OST, according to various embodiments.
- FIG. 9 is a diagram illustrating a method in which an electronic device performs prefetching using ROB, according to various embodiments.
- a component e.g., a first
- another component e.g., second
- a device configured to may mean that the device is “capable of” working with other devices or components.
- processor configured (or set) to perform A, B, and C refers to a processor dedicated to performing the operations (e.g., an embedded processor), or by executing one or more software programs stored on a memory device.
- processor may refer to a general-purpose processor (e.g., CPU or application processor) capable of performing the corresponding operations.
- Electronic devices may include, for example, at least one of a smartphone, tablet PC, desktop PC, laptop PC, netbook computer, workstation, and server.
- the electronic device 101 may include a bus 110, a processor 120, a memory 130, an input/output interface 150, a display 160, and a communication interface 170. In some embodiments, the electronic device 101 may omit at least one of the components or may additionally include another component.
- the bus 110 connects the components 110 to 170 to each other and may include circuitry that transfers communication (eg, control messages or data) between the components.
- the processor 120 may include one or more of a central processing unit, an application processor, or a communication processor (CP). The processor 120 may, for example, perform operations or data processing related to control and/or communication of at least one other component of the electronic device 101.
- Memory 130 may include volatile and/or non-volatile memory.
- the memory 130 may store commands or data related to at least one other component of the electronic device 101.
- memory 130 may store software and/or program 140.
- the program 140 may include, for example, a kernel 141, middleware 143, an application programming interface (API) 145, and/or an application program (or “application”) 147, etc. .
- At least a portion of the kernel 141, middleware 143, or API 145 may be referred to as an operating system.
- Kernel 141 provides system resources (e.g., middleware 143, API 145, or application program 147) used to execute operations or functions implemented in other programs (e.g., : Bus 110, processor 120, or memory 130, etc.) can be controlled or managed.
- the kernel 141 provides an interface for controlling or managing system resources by accessing individual components of the electronic device 101 in the middleware 143, API 145, or application program 147. You can.
- the middleware 143 may, for example, perform an intermediary role so that the API 145 or the application program 147 can communicate with the kernel 141 to exchange data. Additionally, the middleware 143 may process one or more work requests received from the application program 147 according to priority. For example, the middleware 143 may use system resources (e.g., bus 110, processor 120, or memory 130, etc.) of the electronic device 101 for at least one of the application programs 147. Priority may be assigned and the one or more work requests may be processed.
- the API 145 is an interface for the application 147 to control functions provided by the kernel 141 or middleware 143, for example, at least for file control, window control, image processing, or character control. Can contain one interface or function (e.g. command).
- the input/output interface 150 for example, transmits commands or data input from a user or other external device to other component(s) of the electronic device 101, or to other component(s) of the electronic device 101 ( Commands or data received from (fields) can be output to the user or other external device.
- Display 160 may include, for example, a liquid crystal display (LCD), a light-emitting diode (LED) display, an organic light-emitting diode (OLED) display, a microelectromechanical system (MEMS) display, or an electronic paper display. It can be included.
- the display 160 may display various contents (e.g., text, images, videos, icons, and/or symbols, etc.) to the user.
- the display 160 may include a touch screen and may receive, for example, a touch, gesture, proximity, or hovering input using an electronic pen or a part of the user's body.
- the communication interface 170 establishes communication between the electronic device 101 and an external device (e.g., the first external electronic device 102, the second external electronic device 104, or the server 106). You can.
- the communication interface 170 may be connected to the network 162 through wireless or wired communication to communicate with an external device (eg, the second external electronic device 104 or the server 106).
- Wireless communications include, for example, LTE, LTE Advance (LTE-A), code division multiple access (CDMA), wideband CDMA (WCDMA), universal mobile telecommunications system (UMTS), Wireless Broadband (WiBro), or Global GSM (GSM). It may include cellular communication using at least one of the System for Mobile Communications).
- wireless communication includes, for example, wireless fidelity (WiFi), Bluetooth, Bluetooth Low Energy (BLE), Zigbee, near field communication (NFC), Magnetic Secure Transmission, and radio. It may include at least one of frequency (RF) or body area network (BAN).
- wireless communications may include GNSS.
- GNSS may be, for example, Global Positioning System (GPS), Global Navigation Satellite System (Glonass), Beidou Navigation Satellite System (hereinafter “Beidou”), or Galileo, the European global satellite-based navigation system.
- GPS Global Positioning System
- Glonass Global Navigation Satellite System
- Beidou Beidou Navigation Satellite System
- Galileo the European global satellite-based navigation system.
- Wired communication may include, for example, at least one of universal serial bus (USB), high definition multimedia interface (HDMI), recommended standard 232 (RS-232), power line communication, or plain old telephone service (POTS).
- Network 162 may include at least one of a telecommunications network, for example, a computer network (e.g., a LAN or WAN), the Internet, or a telephone network.
- Each of the first and second external electronic devices 102 and 104 may be of the same or different type as the electronic device 101.
- all or part of the operations executed in the electronic device 101 may be executed in one or more electronic devices (e.g., the electronic devices 102 and 104, or the server 106).
- the electronic device 101 when the electronic device 101 is to perform a certain function or service automatically or upon request, the electronic device 101 performs at least some functions associated therewith instead of or in addition to executing the function or service on its own.
- the other electronic device e.g., electronic device 102, 104, or server 106) may request the requested function or Additional functions may be executed and the results may be transmitted to the electronic device 101.
- the electronic device 101 may process the received results as is or additionally to provide the requested function or service.
- cloud computing, distributed computing, or client-server computing technologies may be used.
- FIG. 3 is a diagram illustrating an example in which the electronic device 101 updates a record of an OST, according to various embodiments.
- the electronic device 101 may include a processor (e.g., processor 120 in FIG. 1) and a memory (e.g., memory 130 in FIG. 1), and the memory 130 is a processor.
- a phase change memory (PCM) storing a first instruction that, when executed by 120, causes the processor 120 to perform at least one operation related to a neural network model (e.g., a CNN model) and the processor It may include a dynamic random access memory (DRAM) that stores a second instruction that causes 120 to perform operations other than the at least one operation.
- PCM phase change memory
- DRAM dynamic random access memory
- the electronic device 101 checks the current access address (e.g., trigger access) and updates the OST (Offset Score Table) 201 by using the current access address.
- the OST 201 consists of a first delta value (Delta) item, a second delta value (Last Delta) item, and a delta score (Score) item corresponding to the first delta value. It can be.
- a first delta value (Delta) item
- Last Delta Second delta value
- Score delta score
- the electronic device 101 when the first delta value 311 and the second delta value 312 are the same, the electronic device 101 sets the delta score corresponding to the first delta value 311 to be the same as the previous delta score. This can be recorded in OST (201). For example, referring to FIG. 3, when the first delta value 311 (e.g., 5) and the second delta value 312 (e.g., 5) are the same, the electronic device 101 displays the first delta value (e.g., 5). The delta score 313 corresponding to 311) may be recorded in the OST 201 as the same value as the previous delta score (e.g., 1).
- the electronic device 101 determines the previous delta score 313 corresponding to the first delta value 311. (e.g. 1) can be recorded in the OST (201) as a value (e.g. 2) increased by a predetermined score (e.g. 1).
- the RHB 202 may be composed of at least one delta value as a block number (Block Num) item, a block address (Block Addr) item, and a delta pattern (Delta Seq) item. .
- the electronic device 101 may check the current access address 301 (e.g., 315), and the block number (e.g., 3) corresponding to the current access address 301 is RHB. You can check whether it exists in the block number item (411) of (202). At this time, the block number may represent the identification number of the corresponding block, and in the example of FIG. 4, the block unit is set to 100, but this is only an example and is not limited to this.
- the electronic device 101 selects the RHB 202 corresponding to the block number.
- the RHB delta value (e.g., 15) corresponding to the current access address (301) (e.g., 315) can be recorded in the delta pattern item 413 of ).
- the block address item 412 may be an item recording the first access address (e.g., starting address) in the block, and the RHB delta value is the address of the block address item 412 corresponding to the block number ( Example: It may be the difference between 300) and the current access address (301).
- the electronic device 101 determines that the block number (e.g., 3) corresponding to the current access address (501) (e.g., 350) is the block number item (411) of the RHB (202). ), it is possible to check whether the block number corresponding to the current access address (501) exists in the block number item (421) of the PST (203).
- the PST 203 may be a table in which delta sequences of a certain sequence length of the RHB 202 are loaded identically.
- the electronic device 101 selects a patch corresponding to the block number. If the value of the number item (e.g., 3) is greater than or equal to a specific value (e.g., 3), the PST delta value may be additionally recorded in the delta pattern item 424 of the PST 203.
- the specific value may be a predetermined ratio (eg, 60%) to the length (eg, 5) of the delta pattern item 424 of the PST 203 corresponding to the block number.
- the electronic device 101 stores the current access address 502 (e.g., 430) PST delta value (e.g., 30) in the delta pattern item 424 of the PST 203. If it does not exist, and the value (e.g. 1) of the patch number entry 423 of the PST 203 is less than a certain value (e.g. 3), a new block number entry 411 corresponding to the current access address 502 is created. value (e.g. 4), a new value (e.g. 430) of the block address entry 412 corresponding to the current access address 502, and a new value of the delta pattern entry 413 corresponding to the current access address 502. A value (e.g. 0) may be written to RHB 202.
- PST delta value e.g. 30
- a method of operating an electronic device that performs a prefetcher algorithm suitable for a neural network model using a phase change memory includes a first access address corresponding to the difference between the current access address and the previous access address of the memory of the electronic device.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
The present invention relates to an electronic device for performing a prefetcher algorithm appropriate for a neural network model by using a phase change memory, wherein a heterogenous memory structure is provided through additional utilization of a phase case memory (PCM) as a memory for replacing a dynamic random access memory (DRAM), whereby universal application to a CNN model is possible and power saving can be achieved while high performance is maintained.
Description
본 발명의 다양한 실시예는, 상변화 메모리를 이용하여 신경망 모델에 적합한 프리패처 알고리즘을 수행하는 전자 장치 및 그 동작 방법에 관한 것이다.Various embodiments of the present invention relate to an electronic device that performs a prefetcher algorithm suitable for a neural network model using a phase change memory and a method of operating the same.
프리패처(prefetcher)는 프로세서에서 요청하는 데이터 접근 주소를 예측해서 프로세서에서 할당하고자 하는 주소의 데이터를 미리 할당하는 기술이다. 예측된 데이터는 cache 메모리에 할당해서 프로세서가 메인 메모리로 요청한 데이터를 cache 메모리에서 처리함으로써 cache 메모리의 효율을 극대화하고 메인 메모리에서 데이터를 읽고 오는 데 필요한 시간을 숨길 수 있도록 한다. A prefetcher is a technology that predicts the data access address requested by the processor and pre-allocates data at the address the processor wishes to allocate. Predicted data is allocated to cache memory to maximize the efficiency of cache memory by processing data requested by the processor from main memory in cache memory and to hide the time required to read and retrieve data from main memory.
본 발명은 효율적인 저전력 시스템을 위해 DRAM(Dynamic Random Access Memory)을 대체할 메모리로서 상변화 메모리(PCM, Phase Change Memory)를 추가로 활용한 이종 메모리 구조를 제공한다. 본 발명은 DRAM을 사용하는 시스템 대비 전력 절감 효과를 통해 모바일/엣지 디바이스에서 매우 용이한 PCM 기반 시스템을 제공한다. 본 발명은 추가적인 하드웨어 자원을 많이 요구하지 않으면서, 데이터 지역성에 대응할 수 있어 CNN 모델에 범용적으로 활용이 가능하고 우수한 성능을 성취할 수 있는 프리패처 알고리즘을 제공한다.The present invention provides a heterogeneous memory structure that additionally utilizes phase change memory (PCM) as a memory to replace dynamic random access memory (DRAM) for an efficient low-power system. The present invention provides a PCM-based system that is very easy to use in mobile/edge devices through power savings compared to systems using DRAM. The present invention provides a prefetcher algorithm that can respond to data locality, can be universally used in CNN models, and can achieve excellent performance without requiring many additional hardware resources.
다양한 실시예들에 따라서, 상변화 메모리를 이용하여 신경망 모델에 적합한 프리패처 알고리즘을 수행하는 전자 장치는, 프로세서, 및 상기 프로세서에 의하여 실행 시에, 상기 프로세서로 하여금 신경망 모델과 관련된 적어도 하나의 동작을 수행하도록 야기하는 제1 인스트럭션을 저장하는 상변화 메모리(PCM, Phase Change Memory) 및 상기 프로세서로 하여금 상기 적어도 하나의 동작 이외의 다른 동작들을 수행하도록 야기하는 제2 인스트럭션을 저장하는 DRAM(Dynamic Random Access Memory)을 포함하는 메모리를 포함하고, 상기 적어도 하나의 동작은, 상기 메모리의 현재 접근 주소와 이전 접근 주소의 차이에 해당하는 제1 델타 값과 상기 제1 델타 값의 이전 델타 값인 제2 델타 값을 확인하는 동작, 접근 주소의 프리패치를 위한 제1 동작 우선 순위에 따라, 상기 제1 델타 값과 상기 제2 델타 값을 비교하여 상기 제1 델타 값이 상기 제2 델타 값과 동일한 경우, 현재 접근 주소에 상기 제1 델타 값을 적용한 제1 예측 주소를 프리패치하는 제1 프로세스를 수행하는 동작, 상기 제1 동작 우선 순위의 후순위 동작으로서, 제2 동작 우선 순위에 따라, ROB(Reorder Buffer) 테이블에 상기 현재 접근 주소가 존재하는지 탐색하고, 상기 ROB 테이블에 상기 현재 접근 주소가 존재하는 경우, 미리 설정된 degree 수만큼 상기 ROB 테이블에 기록된 적어도 하나의 예측 주소를 프리패치하는 제2 프로세스를 수행하는 동작, 및 상기 제2 동작 우선 순위의 후순위 동작으로서, 제3 동작 우선 순위에 따라, 상기 제1 델타 값과 상기 제2 델타 값이 상이한 경우, 상기 제1 델타 값에 대응하는 델타 스코어가 OT(Offset Threshold) 이상이면 상기 현재 접근 주소에 상기 제1 델타 값을 적용한 제2 예측 주소를 프리패치하는 제3 프로세스를 수행하는 동작을 포함할 수 있다.According to various embodiments, an electronic device that performs a prefetcher algorithm suitable for a neural network model using a phase change memory includes a processor, and when executed by the processor, causes the processor to perform at least one operation related to the neural network model. A phase change memory (PCM) that stores a first instruction that causes the processor to perform an operation, and a dynamic random memory (DRAM) that stores a second instruction that causes the processor to perform operations other than the at least one operation. Access Memory), wherein the at least one operation includes a first delta value corresponding to the difference between a current access address and a previous access address of the memory and a second delta value corresponding to a previous delta value of the first delta value. Checking the value, comparing the first delta value and the second delta value according to the first operation priority for prefetching the access address, and if the first delta value is equal to the second delta value, An operation of performing a first process of prefetching a first prediction address by applying the first delta value to the current access address. As a subordinate operation of the first operation priority, according to the second operation priority, ROB (Reorder Buffer ) A second process of searching whether the current access address exists in the table and, if the current access address exists in the ROB table, prefetching at least one predicted address recorded in the ROB table by a preset number of degrees. As an operation to be performed, and a subordinate operation of the second operation priority, according to the third operation priority, when the first delta value and the second delta value are different, the delta score corresponding to the first delta value is If it is greater than the offset threshold (OT), it may include performing a third process of prefetching a second prediction address by applying the first delta value to the current access address.
다양한 실시예들에 따라서, 상변화 메모리를 이용하여 신경망 모델에 적합한 프리패처 알고리즘을 수행하는 전자 장치의 동작 방법은, 상기 전자 장치의 메모리의 현재 접근 주소와 이전 접근 주소의 차이에 해당하는 제1 델타 값과 상기 제1 델타 값의 이전 델타 값인 제2 델타 값을 확인하는 동작, 접근 주소의 프리패치를 위한 제1 동작 우선 순위에 따라, 상기 제1 델타 값과 상기 제2 델타 값을 비교하여 상기 제1 델타 값이 상기 제2 델타 값과 동일한 경우, 현재 접근 주소에 상기 제1 델타 값을 적용한 제1 예측 주소를 프리패치하는 제1 프로세스를 수행하는 동작, 상기 제1 동작 우선 순위의 후순위 동작으로서, 제2 동작 우선 순위에 따라, ROB(Reorder Buffer) 테이블에 상기 현재 접근 주소가 존재하는지 탐색하고, 상기 ROB 테이블에 상기 현재 접근 주소가 존재하는 경우, 미리 설정된 degree 수만큼 상기 ROB 테이블에 기록된 적어도 하나의 예측 주소를 프리패치하는 제2 프로세스를 수행하는 동작, 및 상기 제2 동작 우선 순위의 후순위 동작으로서, 제3 동작 우선 순위에 따라, 상기 제1 델타 값과 상기 제2 델타 값이 상이한 경우, 상기 제1 델타 값에 대응하는 델타 스코어가 OT(Offset Threshold) 이상이면 상기 현재 접근 주소에 상기 제1 델타 값을 적용한 제2 예측 주소를 프리패치하는 제3 프로세스를 수행하는 동작을 포함할 수 있다.According to various embodiments, a method of operating an electronic device that performs a prefetcher algorithm suitable for a neural network model using a phase change memory includes a first access address corresponding to the difference between the current access address and the previous access address of the memory of the electronic device. Checking a delta value and a second delta value that is the previous delta value of the first delta value; Comparing the first delta value and the second delta value according to the first operation priority for prefetching the access address If the first delta value is the same as the second delta value, performing a first process of prefetching a first prediction address by applying the first delta value to the current access address, a lower priority of the first operation priority As an operation, according to the second operation priority, it is searched whether the current access address exists in the ROB (Reorder Buffer) table, and if the current access address exists in the ROB table, it is stored in the ROB table by a preset number of degrees. performing a second process of prefetching at least one predicted address that has been recorded, and a subordinate operation of the second operation priority, wherein according to a third operation priority, the first delta value and the second delta value In this different case, if the delta score corresponding to the first delta value is greater than or equal to OT (Offset Threshold), performing a third process of prefetching a second prediction address by applying the first delta value to the current access address. It can be included.
본 발명은 CNN 모델에 대해 범용적으로 적용이 가능하여 높은 성능을 유지한 채 전력 절감을 할 수 있어 다양한 인공지능 산업 분야에서 활용이 가능한 효과를 제공한다. The present invention can be universally applied to CNN models, enabling power savings while maintaining high performance, providing an effect that can be used in various artificial intelligence industry fields.
도 1은 본 발명의 다양한 실시예에 따른 전자 장치 및 네트워크의 블록도를 도시한다.1 shows a block diagram of an electronic device and a network according to various embodiments of the present invention.
도 2는 다양한 실시예들에 따른, 전자 장치가 PCM 시스템에서 프리패치 알고리즘에 사용되는 테이블들의 기록을 업데이트하는 동작을 설명하기 위한 도면이다.FIG. 2 is a diagram illustrating an operation in which an electronic device updates records of tables used in a prefetch algorithm in a PCM system, according to various embodiments.
도 3은 다양한 실시예들에 따른, 전자 장치가 OST의 기록을 업데이트하는 실시예를 설명하기 위한 도면이다.FIG. 3 is a diagram illustrating an example in which an electronic device updates a record of an OST, according to various embodiments.
도 4는 다양한 실시예들에 따른, 전자 장치가 RHB 및 PST의 기록을 업데이트하는 제1 실시예를 설명하기 위한 도면이다.FIG. 4 is a diagram illustrating a first embodiment in which an electronic device updates records of RHB and PST, according to various embodiments.
도 5는 다양한 실시예들에 따른, 전자 장치가 RHB 및 PST의 기록을 업데이트하는 제2 실시예를 설명하기 위한 도면이다.FIG. 5 is a diagram illustrating a second embodiment in which an electronic device updates records of RHB and PST, according to various embodiments.
도 6은 다양한 실시예들에 따른, 전자 장치가 PST 및 ROB의 기록을 업데이트하는 실시예를 설명하기 위한 도면이다.FIG. 6 is a diagram illustrating an example in which an electronic device updates records of PST and ROB, according to various embodiments.
도 7은 다양한 실시예들에 따른, 전자 장치가 프리패치를 수행하는 방법을 설명하기 위한 흐름도이다.FIG. 7 is a flowchart illustrating a method by which an electronic device performs prefetching, according to various embodiments.
도 8은 다양한 실시예들에 따른, 전자 장치가 OST를 이용하여 프리패치를 수행하는 방법을 설명하기 위한 도면이다.FIG. 8 is a diagram illustrating a method in which an electronic device performs prefetching using an OST, according to various embodiments.
도 9는 다양한 실시예들에 따른, 전자 장치가 ROB를 이용하여 프리패치를 수행하는 방법을 설명하기 위한 도면이다.FIG. 9 is a diagram illustrating a method in which an electronic device performs prefetching using ROB, according to various embodiments.
이하, 본 문서의 다양한 실시예들이 첨부된 도면을 참조하여 기재된다. 실시예 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B" 또는 "A 및/또는 B 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1," "제 2," "첫째," 또는 "둘째,"등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.Hereinafter, various embodiments of this document are described with reference to the attached drawings. The examples and terms used herein are not intended to limit the technology described in this document to specific embodiments, and should be understood to include various modifications, equivalents, and/or substitutes for the examples. In connection with the description of the drawings, similar reference numbers may be used for similar components. Singular expressions may include plural expressions unless the context clearly indicates otherwise. In this document, expressions such as “A or B” or “at least one of A and/or B” may include all possible combinations of the items listed together. Expressions such as “first,” “second,” “first,” or “second,” can modify the corresponding components regardless of order or importance, and are used to distinguish one component from another. It is only used and does not limit the corresponding components. When a component (e.g., a first) component is said to be "connected (functionally or communicatively)" or "connected" to another (e.g., second) component, it means that the component is connected to the other component. It may be connected directly to a component or may be connected through another component (e.g., a third component).
본 문서에서, "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, 하드웨어적 또는 소프트웨어적으로 "~에 적합한," "~하는 능력을 가지는," "~하도록 변경된," "~하도록 만들어진," "~를 할 수 있는," 또는 "~하도록 설계된"과 상호 호환적으로(interchangeably) 사용될 수 있다. 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(예: CPU 또는 application processor)를 의미할 수 있다. In this document, “configured to” means “suitable for,” “having the ability to,” or “changed to,” depending on the situation, for example, in terms of hardware or software. ," can be used interchangeably with "made to," "capable of," or "designed to." In some contexts, the expression “a device configured to” may mean that the device is “capable of” working with other devices or components. For example, the phrase "processor configured (or set) to perform A, B, and C" refers to a processor dedicated to performing the operations (e.g., an embedded processor), or by executing one or more software programs stored on a memory device. , may refer to a general-purpose processor (e.g., CPU or application processor) capable of performing the corresponding operations.
본 문서의 다양한 실시예들에 따른 전자 장치는, 예를 들면, 스마트폰, 태블릿 PC, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 서버 중 적어도 하나를 포함할 수 있다. Electronic devices according to various embodiments of this document may include, for example, at least one of a smartphone, tablet PC, desktop PC, laptop PC, netbook computer, workstation, and server.
도 1을 참조하여, 다양한 실시예에서의, 네트워크 환경(100) 내의 전자 장치(101)가 기재된다. 전자 장치(101)는 버스(110), 프로세서(120), 메모리(130), 입출력 인터페이스(150), 디스플레이(160), 및 통신 인터페이스(170)를 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)는, 구성요소들 중 적어도 하나를 생략하거나 다른 구성요소를 추가적으로 구비할 수 있다. 버스(110)는 구성요소들(110-170)을 서로 연결하고, 구성요소들 간의 통신(예: 제어 메시지 또는 데이터)을 전달하는 회로를 포함할 수 있다. 프로세서(120)는, 중앙처리장치, 어플리케이션 프로세서, 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다. 프로세서(120)는, 예를 들면, 전자 장치(101)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다. 1, an electronic device 101 within a network environment 100, in various embodiments, is described. The electronic device 101 may include a bus 110, a processor 120, a memory 130, an input/output interface 150, a display 160, and a communication interface 170. In some embodiments, the electronic device 101 may omit at least one of the components or may additionally include another component. The bus 110 connects the components 110 to 170 to each other and may include circuitry that transfers communication (eg, control messages or data) between the components. The processor 120 may include one or more of a central processing unit, an application processor, or a communication processor (CP). The processor 120 may, for example, perform operations or data processing related to control and/or communication of at least one other component of the electronic device 101.
메모리(130)는, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(130)는, 예를 들면, 전자 장치(101)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 한 실시예에 따르면, 메모리(130)는 소프트웨어 및/또는 프로그램(140)을 저장할 수 있다. 프로그램(140)은, 예를 들면, 커널(141), 미들웨어(143), 어플리케이션 프로그래밍 인터페이스(API)(145), 및/또는 어플리케이션 프로그램(또는 "어플리케이션")(147) 등을 포함할 수 있다. 커널(141), 미들웨어(143), 또는 API(145)의 적어도 일부는, 운영 시스템으로 지칭될 수 있다. 커널(141)은, 예를 들면, 다른 프로그램들(예: 미들웨어(143), API(145), 또는 어플리케이션 프로그램(147))에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들(예: 버스(110), 프로세서(120), 또는 메모리(130) 등)을 제어 또는 관리할 수 있다. 또한, 커널(141)은 미들웨어(143), API(145), 또는 어플리케이션 프로그램(147)에서 전자 장치(101)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다. Memory 130 may include volatile and/or non-volatile memory. For example, the memory 130 may store commands or data related to at least one other component of the electronic device 101. According to one embodiment, memory 130 may store software and/or program 140. The program 140 may include, for example, a kernel 141, middleware 143, an application programming interface (API) 145, and/or an application program (or “application”) 147, etc. . At least a portion of the kernel 141, middleware 143, or API 145 may be referred to as an operating system. Kernel 141, for example, provides system resources (e.g., middleware 143, API 145, or application program 147) used to execute operations or functions implemented in other programs (e.g., : Bus 110, processor 120, or memory 130, etc.) can be controlled or managed. In addition, the kernel 141 provides an interface for controlling or managing system resources by accessing individual components of the electronic device 101 in the middleware 143, API 145, or application program 147. You can.
미들웨어(143)는, 예를 들면, API(145) 또는 어플리케이션 프로그램(147)이 커널(141)과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 미들웨어(143)는 어플리케이션 프로그램(147)으로부터 수신된 하나 이상의 작업 요청들을 우선 순위에 따라 처리할 수 있다. 예를 들면, 미들웨어(143)는 어플리케이션 프로그램(147) 중 적어도 하나에 전자 장치(101)의 시스템 리소스(예: 버스(110), 프로세서(120), 또는 메모리(130) 등)를 사용할 수 있는 우선 순위를 부여하고, 상기 하나 이상의 작업 요청들을 처리할 수 있다. API(145)는 어플리케이션(147)이 커널(141) 또는 미들웨어(143)에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 영상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다. 입출력 인터페이스(150)는, 예를 들면, 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 전자 장치(101)의 다른 구성요소(들)에 전달하거나, 또는 전자 장치(101)의 다른 구성요소(들)로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다. The middleware 143 may, for example, perform an intermediary role so that the API 145 or the application program 147 can communicate with the kernel 141 to exchange data. Additionally, the middleware 143 may process one or more work requests received from the application program 147 according to priority. For example, the middleware 143 may use system resources (e.g., bus 110, processor 120, or memory 130, etc.) of the electronic device 101 for at least one of the application programs 147. Priority may be assigned and the one or more work requests may be processed. The API 145 is an interface for the application 147 to control functions provided by the kernel 141 or middleware 143, for example, at least for file control, window control, image processing, or character control. Can contain one interface or function (e.g. command). The input/output interface 150, for example, transmits commands or data input from a user or other external device to other component(s) of the electronic device 101, or to other component(s) of the electronic device 101 ( Commands or data received from (fields) can be output to the user or other external device.
디스플레이(160)는, 예를 들면, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 마이크로 전자기계 시스템 (MEMS) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다. 디스플레이(160)는, 예를 들면, 사용자에게 각종 콘텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 및/또는 심볼 등)을 표시할 수 있다. 디스플레이(160)는, 터치 스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스쳐, 근접, 또는 호버링 입력을 수신할 수 있다. 통신 인터페이스(170)는, 예를 들면, 전자 장치(101)와 외부 장치(예: 제 1 외부 전자 장치(102), 제 2 외부 전자 장치(104), 또는 서버(106)) 간의 통신을 설정할 수 있다. 예를 들면, 통신 인터페이스(170)는 무선 통신 또는 유선 통신을 통해서 네트워크(162)에 연결되어 외부 장치(예: 제 2 외부 전자 장치(104) 또는 서버(106))와 통신할 수 있다. Display 160 may include, for example, a liquid crystal display (LCD), a light-emitting diode (LED) display, an organic light-emitting diode (OLED) display, a microelectromechanical system (MEMS) display, or an electronic paper display. It can be included. For example, the display 160 may display various contents (e.g., text, images, videos, icons, and/or symbols, etc.) to the user. The display 160 may include a touch screen and may receive, for example, a touch, gesture, proximity, or hovering input using an electronic pen or a part of the user's body. The communication interface 170, for example, establishes communication between the electronic device 101 and an external device (e.g., the first external electronic device 102, the second external electronic device 104, or the server 106). You can. For example, the communication interface 170 may be connected to the network 162 through wireless or wired communication to communicate with an external device (eg, the second external electronic device 104 or the server 106).
무선 통신은, 예를 들면, LTE, LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용하는 셀룰러 통신을 포함할 수 있다. 한 실시예에 따르면, 무선 통신은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(Zigbee), NFC(near field communication), 자력 시큐어 트랜스미션(Magnetic Secure Transmission), 라디오 프리퀀시(RF), 또는 보디 에어리어 네트워크(BAN) 중 적어도 하나를 포함할 수 있다. 한실시예에 따르면, 무선 통신은 GNSS를 포함할 수 있다. GNSS는, 예를 들면, GPS(Global Positioning System), Glonass(Global Navigation Satellite System), Beidou Navigation Satellite System(이하 "Beidou") 또는 Galileo, the European global satellite-based navigation system일 수 있다. 이하, 본 문서에서는, "GPS"는 "GNSS"와 상호 호환적으로 사용될 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 네트워크(162)는 텔레커뮤니케이션 네트워크, 예를 들면, 컴퓨터 네트워크(예: LAN 또는 WAN), 인터넷, 또는 텔레폰 네트워크 중 적어도 하나를 포함할 수 있다.Wireless communications include, for example, LTE, LTE Advance (LTE-A), code division multiple access (CDMA), wideband CDMA (WCDMA), universal mobile telecommunications system (UMTS), Wireless Broadband (WiBro), or Global GSM (GSM). It may include cellular communication using at least one of the System for Mobile Communications). According to one embodiment, wireless communication includes, for example, wireless fidelity (WiFi), Bluetooth, Bluetooth Low Energy (BLE), Zigbee, near field communication (NFC), Magnetic Secure Transmission, and radio. It may include at least one of frequency (RF) or body area network (BAN). According to one embodiment, wireless communications may include GNSS. GNSS may be, for example, Global Positioning System (GPS), Global Navigation Satellite System (Glonass), Beidou Navigation Satellite System (hereinafter “Beidou”), or Galileo, the European global satellite-based navigation system. Hereinafter, in this document, “GPS” may be used interchangeably with “GNSS.” Wired communication may include, for example, at least one of universal serial bus (USB), high definition multimedia interface (HDMI), recommended standard 232 (RS-232), power line communication, or plain old telephone service (POTS). there is. Network 162 may include at least one of a telecommunications network, for example, a computer network (e.g., a LAN or WAN), the Internet, or a telephone network.
제 1 및 제 2 외부 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 다양한 실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 전자 장치(예: 전자 장치(102,104), 또는 서버(106)에서 실행될 수 있다. 한 실시예에 따르면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 다른 장치(예: 전자 장치(102, 104), 또는 서버(106))에게 요청할 수 있다. 다른 전자 장치(예: 전자 장치(102, 104), 또는 서버(106))는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.Each of the first and second external electronic devices 102 and 104 may be of the same or different type as the electronic device 101. According to various embodiments, all or part of the operations executed in the electronic device 101 may be executed in one or more electronic devices (e.g., the electronic devices 102 and 104, or the server 106). In one embodiment, According to this, when the electronic device 101 is to perform a certain function or service automatically or upon request, the electronic device 101 performs at least some functions associated therewith instead of or in addition to executing the function or service on its own. The other electronic device (e.g., electronic device 102, 104, or server 106) may request the requested function or Additional functions may be executed and the results may be transmitted to the electronic device 101. For this purpose, the electronic device 101 may process the received results as is or additionally to provide the requested function or service. For example, cloud computing, distributed computing, or client-server computing technologies may be used.
도 2는 다양한 실시예들에 따른, 전자 장치(예: 도 1의 전자 장치(101))가 PCM 시스템에서 프리패치 알고리즘에 사용되는 테이블들의 기록을 업데이트하는 동작을 설명하기 위한 도면이다.FIG. 2 is a diagram illustrating an operation of an electronic device (e.g., the electronic device 101 of FIG. 1) updating records of tables used in a prefetch algorithm in a PCM system, according to various embodiments.
도 3은 다양한 실시예들에 따른, 전자 장치(101)가 OST의 기록을 업데이트하는 실시예를 설명하기 위한 도면이다.FIG. 3 is a diagram illustrating an example in which the electronic device 101 updates a record of an OST, according to various embodiments.
도 4는 다양한 실시예들에 따른, 전자 장치(101)가 RHB 및 PST의 기록을 업데이트하는 제1 실시예를 설명하기 위한 도면이다.FIG. 4 is a diagram for explaining a first embodiment in which the electronic device 101 updates records of RHB and PST, according to various embodiments.
도 5는 다양한 실시예들에 따른, 전자 장치(101)가 RHB 및 PST의 기록을 업데이트하는 제2 실시예를 설명하기 위한 도면이다.FIG. 5 is a diagram illustrating a second embodiment in which the electronic device 101 updates records of RHB and PST, according to various embodiments.
도 6은 다양한 실시예들에 따른, 전자 장치(101)가 PST 및 ROB의 기록을 업데이트하는 실시예를 설명하기 위한 도면이다.FIG. 6 is a diagram illustrating an example in which the electronic device 101 updates PST and ROB records, according to various embodiments.
다양한 실시예들에 따르면, 전자 장치(101)는 프로세서(예: 도 1의 프로세서(120)) 및 메모리(예: 도 1의 메모리(130))를 포함할 수 있고, 메모리(130)는 프로세서(120)에 의하여 실행 시에, 상기 프로세서(120)로 하여금 신경망 모델(예: CNN 모델)과 관련된 적어도 하나의 동작을 수행하도록 야기하는 제1 인스트럭션을 저장하는 PCM(Phase Change Memory) 및 상기 프로세서(120)로 하여금 상기 적어도 하나의 동작 이외의 다른 동작들을 수행하도록 야기하는 제2 인스트럭션을 저장하는 DRAM(Dynamic Random Access Memory)을 포함할 수 있다. According to various embodiments, the electronic device 101 may include a processor (e.g., processor 120 in FIG. 1) and a memory (e.g., memory 130 in FIG. 1), and the memory 130 is a processor. A phase change memory (PCM) storing a first instruction that, when executed by 120, causes the processor 120 to perform at least one operation related to a neural network model (e.g., a CNN model) and the processor It may include a dynamic random access memory (DRAM) that stores a second instruction that causes 120 to perform operations other than the at least one operation.
다양한 실시예들에 따라, 도 2를 참조하면, 전자 장치(101)는 현재 접근 주소(예: trigger access)를 확인함에 따라, OST(Offset Score Table)(201)를 업데이트하기 위하여, 현재 접근 주소와 이전 접근 주소의 차이에 해당하는 제1 델타 값과 제1 델타 값의 이전 델타 값인 제2 델타 값을 확인할 수 있다. 예를 들어, 도 2를 참조하면, OST(201)는 제1 델타 값(Delta) 항목, 제2 델타 값(Last Delta) 항목, 및 제1 델타 값에 대응하는 델타 스코어(Score) 항목으로 구성될 수 있다. 예를 들어, 도 3을 참조하면, 전자 장치(101)는 특정 시점에서의 메모리(예: 도 1의 메모리(130))에 대한 현재 접근 주소(301)(예: 315)와 이전 접근 주소(302)(예: 310)를 확인할 수 있고, 현재 접근 주소(301)와 이전 접근 주소(302)의 차이에 해당하는 제1 델타 값(예: 5)과 제1 델타 값의 이전 델타 값으로서 이전 접근 주소(302)와 전전 접근 주소(303)의 차이에 해당하는 제2 델타 값(예: 5)을 확인할 수 있다.According to various embodiments, referring to FIG. 2, the electronic device 101 checks the current access address (e.g., trigger access) and updates the OST (Offset Score Table) 201 by using the current access address. You can check the first delta value corresponding to the difference between and the previous access address and the second delta value, which is the previous delta value of the first delta value. For example, referring to Figure 2, the OST 201 consists of a first delta value (Delta) item, a second delta value (Last Delta) item, and a delta score (Score) item corresponding to the first delta value. It can be. For example, referring to FIG. 3, the electronic device 101 has a current access address 301 (e.g., 315) and a previous access address (e.g., 315) for a memory (e.g., memory 130 in FIG. 1) at a specific point in time. 302) (e.g. 310) can be checked, and the first delta value (e.g. 5) corresponding to the difference between the current access address 301 and the previous access address 302 and the previous delta value of the first delta value A second delta value (e.g., 5) corresponding to the difference between the access address 302 and the previous access address 303 can be confirmed.
일 실시예에 따르면, 전자 장치(101)는 확인된 제1 델타 값과 확인된 제2 델타 값을 OST(201)에 기록할 수 있다. 예를 들어, 도 3을 참조하면, 전자 장치(101)는 확인된 제1 델타 값(311)과 제2 델타 값(312)의 OST(201) 기록을 업데이트할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 제2 델타 값(312)을 1개씩 저장할 수 있고, 새로운 값을 기록할 경우에는 이전 기록을 삭제할 수 있다.According to one embodiment, the electronic device 101 may record the confirmed first delta value and the confirmed second delta value in the OST 201. For example, referring to FIG. 3 , the electronic device 101 may update the OST 201 record of the confirmed first delta value 311 and second delta value 312. According to one embodiment, the electronic device 101 may store the second delta values 312 one by one, and may delete the previous record when recording a new value.
일 실시예에 따르면, 전자 장치(101)는 제1 델타 값(311)과 제2 델타 값(312)이 동일한 경우, 제1 델타 값(311)에 대응하는 델타 스코어를 이전 델타 스코어와 동일하게 하여 OST(201)에 기록할 수 있다. 예를 들어, 도 3을 참조하면, 전자 장치(101)는 제1 델타 값(311)(예: 5)과 제2 델타 값(312)(예: 5)이 동일한 경우, 제1 델타 값(311)에 대응하는 델타 스코어(313)를 이전 델타 스코어(예: 1)와 동일한 값으로 OST(201)에 기록할 수 있다.According to one embodiment, when the first delta value 311 and the second delta value 312 are the same, the electronic device 101 sets the delta score corresponding to the first delta value 311 to be the same as the previous delta score. This can be recorded in OST (201). For example, referring to FIG. 3, when the first delta value 311 (e.g., 5) and the second delta value 312 (e.g., 5) are the same, the electronic device 101 displays the first delta value (e.g., 5). The delta score 313 corresponding to 311) may be recorded in the OST 201 as the same value as the previous delta score (e.g., 1).
일 실시예에 따르면, 전자 장치(101)는 제1 델타 값(311)과 제2 델타 값(312)이 상이한 경우, 제1 델타 값(311)에 대응하는 델타 스코어(313)를 이전 델타 스코어(예: 1)에 미리 정해진 스코어(예: 1)만큼 증가시킨 값(예: 2)으로 OST(201)에 기록할 수 있다. According to one embodiment, when the first delta value 311 and the second delta value 312 are different, the electronic device 101 determines the previous delta score 313 corresponding to the first delta value 311. (e.g. 1) can be recorded in the OST (201) as a value (e.g. 2) increased by a predetermined score (e.g. 1).
다양한 실시예들에 따라, 도 2를 참조하면, 전자 장치(101)는 현재 접근 주소(예: trigger access)를 확인함에 따라, RHB(Region-History Buffer) 테이블(202)(이하 'RHB'로 칭함)을 업데이트하기 위하여, 현재 접근 주소에 대응하는 블록 넘버가 RHB(202)의 블록 넘버 항목에 존재하는지 확인할 수 있다. RHB(202)는 block address에 대한 delta histories를 추적할 수 있고, trigger address가 발생하면 block address를 index로 사용하고, trigger address를 기준으로 offset을 순차적으로 기록할 수 있다. RHB(202)는 stream of cache misses history를 저장해서 temporal pattern에 대한 예측을 가능하게 한다. 예를 들어, 도 2를 참조하면, RHB(202)는 블록 넘버(Block Num) 항목, 블록 주소(Block Addr) 항목, 및 델타 패턴(Delta Seq) 항목으로서의 적어도 하나의 델타 값으로 구성될 수 있다. 예를 들어, 도 4를 참조하면, 전자 장치(101)는 현재 접근 주소(301)(예: 315)를 확인할 수 있고, 현재 접근 주소(301)에 대응하는 블록 넘버(예: 3)가 RHB(202)의 블록 넘버 항목(411)에 존재하는지 확인할 수 있다. 이 때, 블록 넘버는 해당 블록의 식별 번호를 나타낼 수 있고, 도 4의 예에서는 블록의 단위를 100으로 설정하였지만, 이는 하나의 예시일 뿐, 이에 한정되지 않는다. According to various embodiments, referring to FIG. 2, as the electronic device 101 checks the current access address (e.g., trigger access), the Region-History Buffer (RHB) table 202 (hereinafter referred to as 'RHB') In order to update the address, it can be checked whether the block number corresponding to the current access address exists in the block number item of the RHB 202. The RHB 202 can track delta histories for block addresses, use the block address as an index when a trigger address occurs, and sequentially record offsets based on the trigger address. The RHB 202 stores a stream of cache misses history to enable prediction of temporal patterns. For example, referring to FIG. 2, the RHB 202 may be composed of at least one delta value as a block number (Block Num) item, a block address (Block Addr) item, and a delta pattern (Delta Seq) item. . For example, referring to FIG. 4, the electronic device 101 may check the current access address 301 (e.g., 315), and the block number (e.g., 3) corresponding to the current access address 301 is RHB. You can check whether it exists in the block number item (411) of (202). At this time, the block number may represent the identification number of the corresponding block, and in the example of FIG. 4, the block unit is set to 100, but this is only an example and is not limited to this.
일 실시예에 따라, 도 4를 참조하면, 전자 장치(101)는 블록 넘버(예: 3)가 RHB(202)의 블록 넘버 항목(411)에 존재하는 경우, 블록 넘버에 대응하는 RHB(202)의 델타 패턴 항목(413)에 현재 접근 주소(301)(예: 315)에 대응하는 RHB 델타 값(예: 15)을 기록할 수 있다. 이 때, 블록 주소 항목(412)는 해당 블록에서의 최초의 접근 주소(예: 시작 주소)를 기록하는 항목일 수 있고, RHB 델타 값은 블록 넘버에 대응하는 블록 주소 항목(412)의 주소(예: 300)와 현재 접근 주소(301)의 차이 값일 수 있다.According to one embodiment, referring to FIG. 4, when a block number (e.g., 3) is present in the block number item 411 of the RHB 202, the electronic device 101 selects the RHB 202 corresponding to the block number. The RHB delta value (e.g., 15) corresponding to the current access address (301) (e.g., 315) can be recorded in the delta pattern item 413 of ). At this time, the block address item 412 may be an item recording the first access address (e.g., starting address) in the block, and the RHB delta value is the address of the block address item 412 corresponding to the block number ( Example: It may be the difference between 300) and the current access address (301).
일 실시예에 따라, 도 4를 참조하면, 전자 장치(101)는 델타 패턴 항목(413)에 RHB 델타 값을 기록한 후에, 블록 넘버에 대응하는 델타 패턴 항목(413)의 길이(length)가 미리 정해진 길이(예: 5) 이상인 경우, 블록 넘버(411)에 해당하는 RHB 기록을 PST(Pattern Sequence Table)(203)에 기록하고, 해당 RHB 기록을 삭제할 수 있다. 델타 패턴 항목(413)의 길이는 해당 항목에서의 델타 값의 개수를 의미하고, PST(203)는 아래에서 자세히 설명하도록 한다. According to one embodiment, referring to FIG. 4, after recording the RHB delta value in the delta pattern item 413, the electronic device 101 determines in advance the length of the delta pattern item 413 corresponding to the block number. If it is longer than a set length (e.g. 5), the RHB record corresponding to the block number 411 is recorded in the PST (Pattern Sequence Table) 203, and the corresponding RHB record can be deleted. The length of the delta pattern item 413 means the number of delta values in the item, and the PST 203 will be explained in detail below.
일 실시예에 따라, 도 5를 참조하면, 전자 장치(101)는 현재 접근 주소(501)(예: 350)에 대응하는 블록 넘버(예: 3)가 RHB(202)의 블록 넘버 항목(411)에 존재하지 않는 경우, 현재 접근 주소(501)에 대응하는 블록 넘버가 PST(203)의 블록 넘버 항목(421)에 존재하는지 확인할 수 있다. PST(203)는 RHB(202)의 일정 sequence length의 delta sequence를 동일하게 로드한 테이블일 수 있다. 예를 들어, 도 2를 참조하면, PST(203)는 블록 넘버(Block Num) 항목, 블록 주소(Block Addr) 항목, 패치 넘버 항목, 및 델타 패턴(Delta Seq) 항목으로서의 적어도 하나의 델타 값으로 구성될 수 있다. PST(203)의 블록 넘버 항목, 블록 주소 항목, 및 델타 패턴 항목의 각 개념들은 RHB(202)의 블록 넘버 항목, 블록 주소 항목, 및 델타 패턴 항목의 각 개념들과 동일할 수 있다.According to one embodiment, referring to FIG. 5, the electronic device 101 determines that the block number (e.g., 3) corresponding to the current access address (501) (e.g., 350) is the block number item (411) of the RHB (202). ), it is possible to check whether the block number corresponding to the current access address (501) exists in the block number item (421) of the PST (203). The PST 203 may be a table in which delta sequences of a certain sequence length of the RHB 202 are loaded identically. For example, referring to Figure 2, the PST 203 has at least one delta value as a block number (Block Num) item, a block address (Block Addr) item, a patch number item, and a delta pattern (Delta Seq) item. It can be configured. The concepts of the block number item, block address item, and delta pattern item of the PST 203 may be the same as the concepts of the block number item, block address item, and delta pattern item of the RHB 202.
일 실시예에 따라, 도 5를 참조하면, 전자 장치(101)는 PST(203)의 블록 넘버 항목(421)에 현재 접근 주소(501)(예: 350)의 블록 넘버(예: 3)가 존재하는 경우, 현재 접근 주소에 대응하는 PST 델타 값(예: 50)이 PST(203)의 델타 패턴 항목(424)에 존재하는지 확인할 수 있다. 이 때, PST 델타 값은 블록 넘버에 대응하는 블록 주소 항목(422)의 주소(예: 300)와 현재 접근 주소(501)(예: 350)의 차이 값(예: 50)일 수 있다.According to one embodiment, referring to FIG. 5, the electronic device 101 includes the block number (e.g., 3) of the current access address 501 (e.g., 350) in the block number item 421 of the PST 203. If it exists, it can be checked whether the PST delta value (e.g., 50) corresponding to the current access address exists in the delta pattern item 424 of the PST 203. At this time, the PST delta value may be the difference value (e.g., 50) between the address (e.g., 300) of the block address item 422 corresponding to the block number and the current access address (501) (e.g., 350).
일 실시예에 따라, 도 5를 참조하면, 전자 장치(101)는 PST 델타 값(예: 50)이 PST(203)의 델타 패턴 항목(424)에 존재하지 않는 경우, 블록 넘버에 대응하는 패치 넘버 항목의 값(예: 3)이 특정 값(예: 3) 이상이면 PST 델타 값을 PST(203)의 델타 패턴 항목(424)에 추가로 기록할 수 있다. 이 경우, 상기 특정 값은 블록 넘버에 대응하는 PST(203)의 델타 패턴 항목(424)의 길이(예: 5)에 대한 미리 정해진 비율(예: 60%) 값일 수 있다. 일 실시예에 따라, 도 5를 참조하면, 전자 장치(101)는 현재 접근 주소(502)(예: 430) PST 델타 값(예: 30)이 PST(203)의 델타 패턴 항목(424)에 존재하지 않는 경우, PST(203)의 패치 넘버 항목(423)의 값(예: 1)이 특정 값(예: 3) 미만이면 현재 접근 주소(502)에 대응하는 블록 넘버 항목(411)의 새로운 값(예: 4), 상기 현재 접근 주소(502)에 대응하는 블록 주소 항목(412)의 새로운 값(예: 430), 상기 현재 접근 주소(502)에 대응하는 델타 패턴 항목(413)의 새로운 값(예: 0)을 RHB(202)에 기록할 수 있다.According to one embodiment, referring to FIG. 5, when the PST delta value (e.g., 50) does not exist in the delta pattern item 424 of the PST 203, the electronic device 101 selects a patch corresponding to the block number. If the value of the number item (e.g., 3) is greater than or equal to a specific value (e.g., 3), the PST delta value may be additionally recorded in the delta pattern item 424 of the PST 203. In this case, the specific value may be a predetermined ratio (eg, 60%) to the length (eg, 5) of the delta pattern item 424 of the PST 203 corresponding to the block number. According to one embodiment, referring to FIG. 5, the electronic device 101 stores the current access address 502 (e.g., 430) PST delta value (e.g., 30) in the delta pattern item 424 of the PST 203. If it does not exist, and the value (e.g. 1) of the patch number entry 423 of the PST 203 is less than a certain value (e.g. 3), a new block number entry 411 corresponding to the current access address 502 is created. value (e.g. 4), a new value (e.g. 430) of the block address entry 412 corresponding to the current access address 502, and a new value of the delta pattern entry 413 corresponding to the current access address 502. A value (e.g. 0) may be written to RHB 202.
일 실시예에 따라, 도 6을 참조하면, 전자 장치(101)는 현재 접근 주소(601)(예: 325)에 대응하는 PST 델타 값(예: 25)이 PST(203)의 델타 패턴 항목(424)에 존재하는 경우, ROB(Reorder Buffer) 테이블(이하, 'ROB'라고 칭함)에 현재 접근 주소(601)를 기록하고, 현재 접근 주소(601)에 대한 블록 넘버(예: 3)에 대응하는 PST(203)의 패치 넘버 항목(423)의 값(예: 1)에 미리 정해진 값(예: 1)을 추가한 값(예: 2)을 기록할 수 있다. ROB(204)는 PST(203)에서 delta sequence를 한 번 더 정렬해주는 buffer이다. 예를 들어, 도 2를 참조하면, ROB(204)는 프리패치를 수행할 접근 주소를 기록하는 항목을 포함할 수 있다.According to one embodiment, referring to FIG. 6, the electronic device 101 determines that the PST delta value (e.g., 25) corresponding to the current access address 601 (e.g., 325) is a delta pattern item ( 424), record the current access address (601) in the ROB (Reorder Buffer) table (hereinafter referred to as 'ROB'), and correspond to the block number (e.g. 3) for the current access address (601). A value (e.g., 2) obtained by adding a predetermined value (e.g., 1) to the value (e.g., 1) of the patch number item 423 of the PST 203 may be recorded. ROB (204) is a buffer that sorts the delta sequence in PST (203) once more. For example, referring to FIG. 2, the ROB 204 may include an entry for recording an access address to perform prefetching.
일 실시예에 따르면, 전자 장치(101)는 현재 접근 주소에 대응하는 블록 넘버가 RHB(202)의 블록 넘버 항목(411) 및 PST(203)의 블록 넘버 항목(421)에 모두 존재하지 않는 경우, 현재 접근 주소에 대응하는 블록 넘버 항목(411)의 새로운 값, 상기 현재 접근 주소에 대응하는 블록 주소 항목(412)의 새로운 값, 상기 현재 접근 주소에 대응하는 델타 패턴 항목(413)의 새로운 값을 RHB(202)에 기록할 수 있다.According to one embodiment, the electronic device 101 is configured when the block number corresponding to the current access address does not exist in both the block number item 411 of the RHB 202 and the block number item 421 of the PST 203. , a new value of the block number entry 411 corresponding to the current access address, a new value of the block address entry 412 corresponding to the current access address, a new value of the delta pattern entry 413 corresponding to the current access address. can be recorded in RHB (202).
도 7은 다양한 실시예들에 따른, 전자 장치(예: 도 1의 전자 장치(101))가 프리패치를 수행하는 방법을 설명하기 위한 흐름도이다.FIG. 7 is a flowchart illustrating a method in which an electronic device (e.g., the electronic device 101 of FIG. 1 ) performs prefetching, according to various embodiments.
도 8은 다양한 실시예들에 따른, 전자 장치(101)가 OST(예: 도 2의 OST(201))를 이용하여 프리패치를 수행하는 방법을 설명하기 위한 도면이다.FIG. 8 is a diagram illustrating a method in which the electronic device 101 performs prefetching using an OST (e.g., the OST 201 of FIG. 2) according to various embodiments.
도 9는 다양한 실시예들에 따른, 전자 장치(101)가 ROB(예: 도 2의 ROB(204))를 이용하여 프리패치를 수행하는 방법을 설명하기 위한 도면이다.FIG. 9 is a diagram illustrating a method by which the electronic device 101 performs prefetching using a ROB (eg, ROB 204 in FIG. 2) according to various embodiments.
701 동작에서, 다양한 실시예들에 따르면, 전자 장치(101)는 메모리(예: 도 1의 메모리(130))의 현재 접근 주소(access address)와 이전 접근 주소의 차이에 해당하는 제1 델타 값과 제1 델타 값의 이전 델타 값인 제2 델타 값을 확인할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 현재 접근 주소(301)에 대응하는 OST(201)에 기록된 델타 항목(311)의 제1 델타 값(예: 5) 및 제 현재 접근 주소(301)에 대응하는 OST(201)의 이전 델타 항목(312)에 기록된 제2 델타 값(예: 5)을 확인할 수 있다. In operation 701, according to various embodiments, the electronic device 101 generates a first delta value corresponding to the difference between the current access address and the previous access address of the memory (e.g., the memory 130 of FIG. 1). You can check the second delta value, which is the previous delta value of the first delta value. According to one embodiment, the electronic device 101 includes a first delta value (e.g., 5) of the delta entry 311 recorded in the OST 201 corresponding to the current access address 301 and the first current access address 301. ), the second delta value (e.g. 5) recorded in the previous delta item 312 of the OST 201 can be confirmed.
703 동작에서, 다양한 실시예들에 따르면, 전자 장치(101)는 접근 주소의 프리패치를 위한 제1 동작 우선 순위에 따라, 제1 델타 값과 제2 델타 값을 비교하여 제1 델타 값이 제2 델타 값과 동일한 경우, 현재 접근 주소에 제1 델타 값을 적용한 제1 예측 주소를 프리패치하는 제1 프로세스를 수행할 수 있다. 예를 들어, 도 8을 참조하면, 전자 장치(101)는 현재 접근 주소(301)(예: 315)에 대응하는 OST(201)의 제1 델타 값(예: 5)과 현재 접근 주소(301)에 대응하는 OST(201)의 제2 델타 값(예: 5)이 동일한 경우, 현재 접근 주소(301)에 제1 델타 값을 적용(예: 덧셈)한 제1 예측 주소를 메모리(130)(예: 프리패처 캐쉬 메모리)에 프리패치하는 제1 프로세스를 수행할 수 있다. 전자 장치(101)는 데이터의 순차적 지역성(sequential locality)을 대응할 수 있도록 OST(201)를 사용하여 연속된 주소의 차이를 기록하고 점수를 매겨 주소를 예측할 수 있다.In operation 703, according to various embodiments, the electronic device 101 compares the first delta value and the second delta value according to the first operation priority for prefetching the access address, and the first delta value is the first delta value. If the delta value is equal to 2, a first process of prefetching the first prediction address by applying the first delta value to the currently accessed address may be performed. For example, referring to FIG. 8 , the electronic device 101 displays the first delta value (e.g., 5) of the OST (201) corresponding to the current access address (301) (e.g., 315) and the current access address (301). ), if the second delta value (e.g., 5) of the OST (201) corresponding to ) is the same, the first prediction address obtained by applying (e.g., addition) the first delta value to the currently accessed address (301) is stored in the memory (130). A first process of prefetching (e.g., prefetcher cache memory) may be performed. The electronic device 101 can predict addresses by recording and scoring differences between consecutive addresses using the OST 201 to cope with sequential locality of data.
705 동작에서, 다양한 실시예들에 따르면, 전자 장치(101)는 제1 동작 우선 순위의 후순위 동작으로서, 제2 동작 우선 순위에 따라, ROB(예: 도 2의 ROB(204))에 현재 접근 주소가 존재하는지 탐색하고, ROB(204)에 현재 접근 주소가 존재하는 경우, 미리 설정된 degree 수만큼 ROB(204)에 기록된 적어도 하나의 예측 주소를 프리패치하는 제2 프로세스를 수행할 수 있다. 예를 들어, 도 9를 참조하면, 전자 장치(101)는 OST(201)의 제1 델타 값과 제2 델타 값이 동일하지 않은 경우, 제1 동작 우선 순위의 후순위 동작으로서, 제2 동작 우선 순위에 따라, ROB(204)에 현재 접근 주소(901)(예: 310)가 존재하는지 탐색하고, ROB(204)에 현재 접근 주소(901)가 존재하는 경우, 미리 설정된 degree 수(예: 4)만큼 ROB(204)에 기록된 예측 주소(예: 325, 415, 777, 999)를 프리패치하는 제2 프로세스를 수행할 수 있다. 이 때, 미리 설정된 degree 수는 전자 장치(101)의 사용자 또는 전자 장치(101)에서 수행되는 어플리케이션의 요청에 의하여 자유롭게 설정될 수 있다. 전자 장치(101)는 데이터의 시간적 지역성(temporal locality)을 대응할 수 있도록 RHB(202), PST(203)를 통해 반복적인 접근 주소를 블록 주소를 기준으로 기록하고, ROB(204)를 사용하여 예측 순서를 재정렬할 수 있다.In operation 705, according to various embodiments, the electronic device 101 currently accesses the ROB (e.g., ROB 204 in FIG. 2) according to the second operation priority, as a subordinate operation of the first operation priority. A second process may be performed to check whether an address exists, and if a current access address exists in the ROB 204, prefetching at least one predicted address recorded in the ROB 204 by a preset number of degrees. For example, referring to FIG. 9, when the first delta value and the second delta value of the OST 201 are not the same, the electronic device 101 performs the second operation priority as a subordinate operation of the first operation priority. According to the ranking, it is searched whether the current access address 901 (e.g. 310) exists in the ROB 204, and if the current access address 901 exists in the ROB 204, a preset number of degrees (e.g. 4 ) A second process of prefetching the predicted addresses recorded in the ROB 204 (e.g., 325, 415, 777, 999) may be performed. At this time, the preset number of degrees can be freely set by a request from a user of the electronic device 101 or an application running on the electronic device 101. The electronic device 101 records repetitive access addresses based on block addresses through the RHB 202 and PST 203 to cope with the temporal locality of data, and makes predictions using the ROB 204. The order can be rearranged.
707 동작에서, 다양한 실시예들에 따르면, 전자 장치(101)는 제2 동작 우선 순위의 후순위 동작으로서, 제3 동작 우선 순위에 따라, OST(201)의 제1 델타 값과 제2 델타 값이 상이한 경우, 제1 델타 값에 대응하는 델타 스코어가 OT(Offset Threshold) 이상이면 현재 접근 주소에 제1 델타 값을 적용한 제2 예측 주소를 프리패치하는 제3 프로세스를 수행할 수 있다. 예를 들어, 도 8을 참조하면, 전자 장치(101)는 ROB(204)에 현재 접근 주소가 존재하지 않은 경우, 제2 동작 우선 순위의 후순위 동작으로서, 제3 동작 우선 순위에 따라, OST(201)의 제1 델타 값(예: 30)과 제2 델타 값(예: 5)이 상이한 것에 기반하여, 제1 델타 값(예: 30)에 대응하는 델타 스코어(예: 11)가 OT(예: 10) 이상이면, 현재 접근 주소에 제1 델타 값을 적용(예: 덧셈)한 제2 예측 주소를 프리패치하는 제3 프로세스를 수행할 수 있다.In operation 707, according to various embodiments, the electronic device 101 performs a lower-priority operation of the second operation priority and, according to the third operation priority, the first delta value and the second delta value of the OST 201. In a different case, if the delta score corresponding to the first delta value is more than OT (Offset Threshold), a third process of prefetching the second prediction address by applying the first delta value to the currently accessed address may be performed. For example, referring to FIG. 8, when there is no current access address in the ROB 204, the electronic device 101 performs OST (OST) according to the third operation priority as a subordinate operation of the second operation priority. Based on the difference between the first delta value (e.g., 30) and the second delta value (e.g., 5) of 201), the delta score (e.g., 11) corresponding to the first delta value (e.g., 30) is OT ( Example: If it is 10) or more, a third process of prefetching the second prediction address by applying (e.g., addition) the first delta value to the currently accessed address can be performed.
일 실시예에 따라, 전자 장치(101)는 제3 동작 우선 순위에 따라 제2 프로세스를 수행한 후에는, OST(201)에 기록된 엔트리들(entries)을 초기화하거나 또는 제1 델타 값에 대응하는 델타 스코어로서 상기 OT로부터 미리 정해진 값만큼 감소시켜 OST(201)에 기록할 수 있다.According to one embodiment, after performing the second process according to the third operation priority, the electronic device 101 initializes the entries recorded in the OST 201 or corresponds to the first delta value. The delta score can be reduced from the OT by a predetermined value and recorded in the OST 201.
다양한 실시예들에 따라서, 상변화 메모리를 이용하여 신경망 모델에 적합한 프리패처 알고리즘을 수행하는 전자 장치는, 프로세서, 및 상기 프로세서에 의하여 실행 시에, 상기 프로세서로 하여금 신경망 모델과 관련된 적어도 하나의 동작을 수행하도록 야기하는 제1 인스트럭션을 저장하는 상변화 메모리(PCM, Phase Change Memory) 및 상기 프로세서로 하여금 상기 적어도 하나의 동작 이외의 다른 동작들을 수행하도록 야기하는 제2 인스트럭션을 저장하는 DRAM(Dynamic Random Access Memory)을 포함하는 메모리를 포함하고, 상기 적어도 하나의 동작은, 상기 메모리의 현재 접근 주소와 이전 접근 주소의 차이에 해당하는 제1 델타 값과 상기 제1 델타 값의 이전 델타 값인 제2 델타 값을 확인하는 동작, 접근 주소의 프리패치를 위한 제1 동작 우선 순위에 따라, 상기 제1 델타 값과 상기 제2 델타 값을 비교하여 상기 제1 델타 값이 상기 제2 델타 값과 동일한 경우, 현재 접근 주소에 상기 제1 델타 값을 적용한 제1 예측 주소를 프리패치하는 제1 프로세스를 수행하는 동작, 상기 제1 동작 우선 순위의 후순위 동작으로서, 제2 동작 우선 순위에 따라, ROB(Reorder Buffer) 테이블에 상기 현재 접근 주소가 존재하는지 탐색하고, 상기 ROB 테이블에 상기 현재 접근 주소가 존재하는 경우, 미리 설정된 degree 수만큼 상기 ROB 테이블에 기록된 적어도 하나의 예측 주소를 프리패치하는 제2 프로세스를 수행하는 동작, 및 상기 제2 동작 우선 순위의 후순위 동작으로서, 제3 동작 우선 순위에 따라, 상기 제1 델타 값과 상기 제2 델타 값이 상이한 경우, 상기 제1 델타 값에 대응하는 델타 스코어가 OT(Offset Threshold) 이상이면 상기 현재 접근 주소에 상기 제1 델타 값을 적용한 제2 예측 주소를 프리패치하는 제3 프로세스를 수행하는 동작을 포함할 수 있다.According to various embodiments, an electronic device that performs a prefetcher algorithm suitable for a neural network model using a phase change memory includes a processor, and when executed by the processor, causes the processor to perform at least one operation related to the neural network model. A phase change memory (PCM) that stores a first instruction that causes the processor to perform an operation, and a dynamic random memory (DRAM) that stores a second instruction that causes the processor to perform operations other than the at least one operation. Access Memory), wherein the at least one operation includes a first delta value corresponding to the difference between a current access address and a previous access address of the memory and a second delta value corresponding to a previous delta value of the first delta value. Checking the value, comparing the first delta value and the second delta value according to the first operation priority for prefetching the access address, and if the first delta value is equal to the second delta value, An operation of performing a first process of prefetching a first prediction address by applying the first delta value to the current access address. As a subordinate operation of the first operation priority, according to the second operation priority, ROB (Reorder Buffer ) A second process of searching whether the current access address exists in the table and, if the current access address exists in the ROB table, prefetching at least one predicted address recorded in the ROB table by a preset number of degrees. As an operation to be performed, and a subordinate operation of the second operation priority, according to the third operation priority, when the first delta value and the second delta value are different, the delta score corresponding to the first delta value is If it is greater than the offset threshold (OT), it may include performing a third process of prefetching a second prediction address by applying the first delta value to the current access address.
다양한 실시예들에 따라서, 상기 적어도 하나의 동작은, 상기 제1 델타 값과 상기 제2 델타 값을 OST(Offset Score Table)에 기록하는 동작을 더 포함할 수 있다.According to various embodiments, the at least one operation may further include recording the first delta value and the second delta value in an offset score table (OST).
다양한 실시예들에 따라서, 상기 적어도 하나의 동작은, 상기 제1 델타 값과 제2 델타 값이 동일한 경우, 상기 제1 델타 값에 대응하는 델타 스코어를 이전 델타 스코어와 동일하게 하여 상기 OST에 기록하는 동작, 및 상기 제1 델타 값과 상기 제2 델타 값이 상이한 경우, 상기 제1 델타 값에 대응하는 상기 델타 스코어를 상기 이전 델타 스코어에 미리 정해진 스코어만큼 증가시켜 상기 OST에 기록하는 동작을 더 포함할 수 있다.According to various embodiments, the at least one operation may include, when the first delta value and the second delta value are the same, making the delta score corresponding to the first delta value the same as the previous delta score and recording it in the OST. an operation of increasing the delta score corresponding to the first delta value by a predetermined score to the previous delta score and recording it in the OST when the first delta value and the second delta value are different. It can be included.
다양한 실시예들에 따라서, 상기 적어도 하나의 동작은, 상기 제3 동작 우선 순위에 따라, 상기 제3 프로세스를 수행한 후에는, 상기 OST에 기록된 엔트리들을 초기화하거나 또는 상기 델타 스코어로서 상기 OT로부터 미리 정해진 값만큼 감소시켜 상기 OST에 기록하는 동작을 더 포함할 수 있다.According to various embodiments, the at least one operation may be, according to the third operation priority, after performing the third process, initializing entries recorded in the OST or obtaining the delta score from the OT. An operation of decreasing the value by a predetermined value and recording it in the OST may be further included.
다양한 실시예들에 따라서, 상기 적어도 하나의 동작은, 상기 현재 접근 주소에 대응하는 블록 넘버가 RHB(Region-History Buffer) 테이블의 블록 넘버 항목에 존재하는지 확인하는 동작, 상기 블록 넘버가 상기 블록 넘버 항목에 존재하는 경우, 상기 블록 넘버에 대응하는 상기 RHB의 델타 패턴 항목에 상기 현재 접근 주소에 대응하는 RHB 델타 값을 기록하는 동작 -상기 블록 주소 항목은 해당 블록에서의 최초 접근 주소를 기록하는 항목이고, 상기 RHB 델타 값은 상기 블록 넘버에 대응하는 블록 주소 항목의 주소와 상기 현재 접근 주소의 차이 값임-, 및 상기 델타 패턴 항목에 상기 RHB 델타 값을 기록한 후에, 상기 블록 넘버에 대응하는 상기 델타 패턴 항목의 길이가 미리 정해진 길이 이상인 경우, 상기 블록 넘버에 대응하는 RHB 기록을 PST(Pattern Sequence Table)에 기록하고, 상기 RHB 기록을 삭제하는 동작을 더 포함할 수 있다.According to various embodiments, the at least one operation may include checking whether a block number corresponding to the current access address exists in a block number item of a Region-History Buffer (RHB) table, and the block number is the block number. If present in the item, recording the RHB delta value corresponding to the current access address in the delta pattern item of the RHB corresponding to the block number - the block address item records the first access address in the block , and the RHB delta value is a difference value between the address of the block address item corresponding to the block number and the current access address, and after recording the RHB delta value in the delta pattern item, the delta corresponding to the block number If the length of the pattern item is longer than a predetermined length, the operation of recording the RHB record corresponding to the block number in a PST (Pattern Sequence Table) and deleting the RHB record may be further included.
다양한 실시예들에 따라서, 상기 적어도 하나의 동작은, 상기 블록 넘버가 상기 RHB 테이블의 상기 블록 넘버 항목에 존재하지 않는 경우, 상기 현재 접근 주소에 대응하는 상기 블록 넘버가 상기 PST의 블록 넘버 항목에 존재하는지 확인하는 동작, 상기 블록 넘버가 상기 PST의 블록 넘버 항목에 존재하는 경우, 상기 현재 접근 주소에 대응하는 PST 델타 값이 상기 PST의 델타 패턴 항목에 존재하는지 확인하는 동작, 상기 PST 델타 값이 상기 PST의 델타 패턴 항목에 존재하지 않는 경우, 상기 PST의 패치 넘버 항목의 값이 특정 값 이상이면 상기 PST 델타 값을 상기 PST의 델타 패턴 항목에 추가로 기록하고, 상기 PST의 패치 넘버 항목의 값이 상기 특정 값 미만이면 상기 현재 접근 주소에 대응하는 새로운 블록 넘버, 상기 현재 접근 주소에 대응하는 새로운 블록 주소, 상기 현재 접근 주소에 대응하는 새로운 델타 값을 상기 RHB 테이블에 기록하는 동작 -상기 특정 값은 상기 PST의 델타 패턴 항목의 길이에 대한 미리 정해진 비율 값임-, 및 상기 PST 델타 값이 상기 PST의 델타 패턴 항목에 존재하는 경우, 상기 ROB 테이블에 상기 현재 접근 주소를 기록하고 상기 블록 넘버에 대응하는 상기 PST의 패치 넘버 항목의 값에 미리 정해진 값을 추가하는 동작을 더 포함할 수 있다.According to various embodiments, the at least one operation is such that, when the block number does not exist in the block number item of the RHB table, the block number corresponding to the current access address is added to the block number item of the PST. An operation to check whether the block number exists in the block number item of the PST, an operation to check whether the PST delta value corresponding to the current access address exists in the delta pattern item of the PST, the PST delta value is If it does not exist in the delta pattern item of the PST, if the value of the patch number item of the PST is greater than a certain value, the PST delta value is additionally recorded in the delta pattern item of the PST, and the value of the patch number item of the PST is additionally recorded. If this value is less than the specific value, recording a new block number corresponding to the current access address, a new block address corresponding to the current access address, and a new delta value corresponding to the current access address in the RHB table - the specific value is a predetermined ratio value to the length of the delta pattern item of the PST -, and if the PST delta value exists in the delta pattern item of the PST, record the current access address in the ROB table and correspond to the block number The operation of adding a predetermined value to the value of the patch number item of the PST may be further included.
다양한 실시예들에 따라서, 상기 적어도 하나의 동작은, 상기 블록 넘버가 상기 RHB 테이블의 상기 블록 넘버 항목 및 상기 PST의 상기 블록 넘버 항목에 존재하지 않는 경우, 상기 현재 접근 주소에 대응하는 새로운 블록 넘버, 상기 현재 접근 주소에 대응하는 새로운 블록 주소, 상기 현재 접근 주소에 대응하는 새로운 델타 값을 상기 RHB 테이블에 기록하는 동작을 더 포함할 수 있다.According to various embodiments, the at least one operation is to generate a new block number corresponding to the current access address if the block number is not present in the block number entry of the RHB table and the block number entry of the PST. , may further include recording a new block address corresponding to the current access address and a new delta value corresponding to the current access address in the RHB table.
다양한 실시예들에 따라서, 상변화 메모리를 이용하여 신경망 모델에 적합한 프리패처 알고리즘을 수행하는 전자 장치의 동작 방법은, 상기 전자 장치의 메모리의 현재 접근 주소와 이전 접근 주소의 차이에 해당하는 제1 델타 값과 상기 제1 델타 값의 이전 델타 값인 제2 델타 값을 확인하는 동작, 접근 주소의 프리패치를 위한 제1 동작 우선 순위에 따라, 상기 제1 델타 값과 상기 제2 델타 값을 비교하여 상기 제1 델타 값이 상기 제2 델타 값과 동일한 경우, 현재 접근 주소에 상기 제1 델타 값을 적용한 제1 예측 주소를 프리패치하는 제1 프로세스를 수행하는 동작, 상기 제1 동작 우선 순위의 후순위 동작으로서, 제2 동작 우선 순위에 따라, ROB(Reorder Buffer) 테이블에 상기 현재 접근 주소가 존재하는지 탐색하고, 상기 ROB 테이블에 상기 현재 접근 주소가 존재하는 경우, 미리 설정된 degree 수만큼 상기 ROB 테이블에 기록된 적어도 하나의 예측 주소를 프리패치하는 제2 프로세스를 수행하는 동작, 및 상기 제2 동작 우선 순위의 후순위 동작으로서, 제3 동작 우선 순위에 따라, 상기 제1 델타 값과 상기 제2 델타 값이 상이한 경우, 상기 제1 델타 값에 대응하는 델타 스코어가 OT(Offset Threshold) 이상이면 상기 현재 접근 주소에 상기 제1 델타 값을 적용한 제2 예측 주소를 프리패치하는 제3 프로세스를 수행하는 동작을 포함할 수 있다.According to various embodiments, a method of operating an electronic device that performs a prefetcher algorithm suitable for a neural network model using a phase change memory includes a first access address corresponding to the difference between the current access address and the previous access address of the memory of the electronic device. Checking a delta value and a second delta value that is the previous delta value of the first delta value; Comparing the first delta value and the second delta value according to the first operation priority for prefetching the access address If the first delta value is the same as the second delta value, performing a first process of prefetching a first prediction address by applying the first delta value to the current access address, a lower priority of the first operation priority As an operation, according to the second operation priority, it is searched whether the current access address exists in the ROB (Reorder Buffer) table, and if the current access address exists in the ROB table, it is stored in the ROB table by a preset number of degrees. performing a second process of prefetching at least one predicted address that has been recorded, and a subordinate operation of the second operation priority, wherein according to a third operation priority, the first delta value and the second delta value In this different case, if the delta score corresponding to the first delta value is greater than or equal to OT (Offset Threshold), performing a third process of prefetching a second prediction address by applying the first delta value to the current access address. It can be included.
다양한 실시예들에 따라서, 상기 전자 장치의 동작 방법은, 상기 제1 델타 값과 상기 제2 델타 값을 OST(Offset Score Table)에 기록하는 동작을 더 포함할 수 있다.According to various embodiments, the method of operating the electronic device may further include recording the first delta value and the second delta value in an offset score table (OST).
다양한 실시예들에 따라서, 상기 전자 장치의 동작 방법은, 상기 제1 델타 값과 제2 델타 값이 동일한 경우, 상기 제1 델타 값에 대응하는 델타 스코어를 이전 델타 스코어와 동일하게 하여 상기 OST에 기록하는 동작, 및 상기 제1 델타 값과 상기 제2 델타 값이 상이한 경우, 상기 제1 델타 값에 대응하는 상기 델타 스코어를 상기 이전 델타 스코어에 미리 정해진 스코어만큼 증가시켜 상기 OST에 기록하는 동작을 더 포함할 수 있다.According to various embodiments, a method of operating the electronic device may include, when the first delta value and the second delta value are the same, setting the delta score corresponding to the first delta value to be the same as the previous delta score and adding it to the OST. An operation of recording, and when the first delta value and the second delta value are different, an operation of increasing the delta score corresponding to the first delta value by a predetermined score to the previous delta score and recording it in the OST. More may be included.
다양한 실시예들에 따라서, 상기 전자 장치의 동작 방법은, 상기 제3 동작 우선 순위에 따라, 상기 제3 프로세스를 수행한 후에는, 상기 OST에 기록된 엔트리들을 초기화하거나 또는 상기 델타 스코어로서 상기 OT로부터 미리 정해진 값만큼 감소시켜 상기 OST에 기록하는 동작을 더 포함할 수 있다.According to various embodiments, a method of operating the electronic device may include, after performing the third process according to the third operation priority, initializing the entries recorded in the OST or using the OT as the delta score. It may further include an operation of decreasing by a predetermined value and recording it in the OST.
다양한 실시예들에 따라서, 상기 전자 장치의 동작 방법은, 상기 현재 접근 주소에 대응하는 블록 넘버가 RHB(Region-History Buffer) 테이블의 블록 넘버 항목에 존재하는지 확인하는 동작, 상기 블록 넘버가 상기 블록 넘버 항목에 존재하는 경우, 상기 블록 넘버에 대응하는 상기 RHB의 델타 패턴 항목에 상기 현재 접근 주소에 대응하는 RHB 델타 값을 기록하는 동작 -상기 블록 주소 항목은 해당 블록에서의 최초 접근 주소를 기록하는 항목이고, 상기 RHB 델타 값은 상기 블록 넘버에 대응하는 블록 주소 항목의 주소와 상기 현재 접근 주소의 차이 값임-, 및 상기 델타 패턴 항목에 상기 RHB 델타 값을 기록한 후에, 상기 블록 넘버에 대응하는 상기 델타 패턴 항목의 길이가 미리 정해진 길이 이상인 경우, 상기 블록 넘버에 대응하는 RHB 기록을 PST(Pattern Sequence Table)에 기록하고, 상기 RHB 기록을 삭제하는 동작을 더 포함할 수 있다.According to various embodiments, a method of operating the electronic device includes checking whether a block number corresponding to the current access address exists in a block number item of a Region-History Buffer (RHB) table, and the block number is the block number. If present in the number item, recording the RHB delta value corresponding to the current access address in the delta pattern item of the RHB corresponding to the block number - the block address item records the first access address in the block item, and the RHB delta value is a difference value between the address of the block address item corresponding to the block number and the current access address, and after recording the RHB delta value in the delta pattern item, the RHB delta value corresponding to the block number If the length of the delta pattern item is longer than a predetermined length, the operation of recording the RHB record corresponding to the block number in a PST (Pattern Sequence Table) and deleting the RHB record may be further included.
다양한 실시예들에 따라서, 상기 전자 장치의 동작 방법은, 상기 블록 넘버가 상기 RHB 테이블의 상기 블록 넘버 항목에 존재하지 않는 경우, 상기 현재 접근 주소에 대응하는 상기 블록 넘버가 상기 PST의 블록 넘버 항목에 존재하는지 확인하는 동작, 상기 블록 넘버가 상기 PST의 블록 넘버 항목에 존재하는 경우, 상기 현재 접근 주소에 대응하는 PST 델타 값이 상기 PST의 델타 패턴 항목에 존재하는지 확인하는 동작, 상기 PST 델타 값이 상기 PST의 델타 패턴 항목에 존재하지 않는 경우, 상기 PST의 패치 넘버 항목의 값이 특정 값 이상이면 상기 PST 델타 값을 상기 PST의 델타 패턴 항목에 추가로 기록하고, 상기 PST의 패치 넘버 항목의 값이 상기 특정 값 미만이면 상기 현재 접근 주소에 대응하는 새로운 블록 넘버, 상기 현재 접근 주소에 대응하는 새로운 블록 주소, 상기 현재 접근 주소에 대응하는 새로운 델타 값을 상기 RHB 테이블에 기록하는 동작 -상기 특정 값은 상기 PST의 델타 패턴 항목의 길이에 대한 미리 정해진 비율 값임-, 및 상기 PST 델타 값이 상기 PST의 델타 패턴 항목에 존재하는 경우, 상기 ROB 테이블에 상기 현재 접근 주소를 기록하고 상기 블록 넘버에 대응하는 상기 PST의 패치 넘버 항목의 값에 미리 정해진 값을 추가하는 동작을 더 포함할 수 있다.According to various embodiments, a method of operating the electronic device may include, when the block number does not exist in the block number item of the RHB table, the block number corresponding to the current access address is the block number item of the PST. Checking whether the block number exists in the block number item of the PST, checking whether the PST delta value corresponding to the current access address exists in the delta pattern item of the PST, the PST delta value If it does not exist in the delta pattern item of the PST, if the value of the patch number item of the PST is greater than a certain value, the PST delta value is additionally recorded in the delta pattern item of the PST, and the patch number item of the PST If the value is less than the specific value, recording a new block number corresponding to the current access address, a new block address corresponding to the current access address, and a new delta value corresponding to the current access address in the RHB table - the specific The value is a predetermined ratio value to the length of the delta pattern item of the PST, and if the PST delta value exists in the delta pattern item of the PST, the current access address is recorded in the ROB table and the block number is The operation of adding a predetermined value to the value of the corresponding patch number item of the PST may be further included.
다양한 실시예들에 따라서, 상기 전자 장치의 동작 방법은, 상기 블록 넘버가 상기 RHB 테이블의 상기 블록 넘버 항목 및 상기 PST의 상기 블록 넘버 항목에 존재하지 않는 경우, 상기 현재 접근 주소에 대응하는 새로운 블록 넘버, 상기 현재 접근 주소에 대응하는 새로운 블록 주소, 상기 현재 접근 주소에 대응하는 새로운 델타 값을 상기 RHB 테이블에 기록하는 동작을 더 포함할 수 있다.According to various embodiments, a method of operating the electronic device may include, if the block number does not exist in the block number item of the RHB table and the block number item of the PST, a new block corresponding to the current access address. The method may further include recording a number, a new block address corresponding to the current access address, and a new delta value corresponding to the current access address in the RHB table.
본 문서에서 사용된 용어 "모듈" 또는 "~부"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "모듈" 또는 "~부"는, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. "모듈" 또는 "~부"는 기계적으로 또는 전자적으로 구현될 수 있으며, 예를 들면, 어떤 동작들을 수행하는, 알려졌거나 앞으로 개발될, ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays), 또는 프로그램 가능 논리 장치를 포함할 수 있고, 프로세서(120)에 의하여 실행될 수 있다. 다양한 실시예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는 프로그램 모듈의 형태로 컴퓨터로 판독 가능한 저장 매체(예: 메모리(130))에 저장된 명령어로 구현될 수 있다. 상기 명령어가 프로세서(예: 프로세서(120))에 의해 실행될 경우, 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(예: 자기테이프), 광기록 매체(예: CD-ROM, DVD, 자기-광 매체 (예: 플롭티컬 디스크), 내장 메모리 등을 포함할 수 있다. 명령어는 컴파일러에 의해 만들어지는 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 다양한 실시예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 다른 구성요소를 더 포함할 수 있다. 다양한 실시예에 따른, 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.As used in this document, the term “module” or “unit” includes a unit comprised of hardware, software, or firmware, and can be used interchangeably with terms such as logic, logic block, component, or circuit, etc. there is. “Module” or “unit” may be an integrated part, a minimum unit that performs one or more functions, or a part thereof. A “module” or “unit” may be implemented mechanically or electronically, e.g., known or to be developed, application-specific integrated circuit (ASIC) chips, field-programmable circuits (FPGAs), that perform certain operations. gate arrays), or programmable logic devices, and may be executed by the processor 120. At least a portion of the device (e.g., modules or functions thereof) or method (e.g., operations) according to various embodiments includes instructions stored in a computer-readable storage medium (e.g., memory 130) in the form of a program module. It can be implemented as: When the instruction is executed by a processor (eg, processor 120), the processor may perform the function corresponding to the instruction. Computer-readable recording media include hard disks, floppy disks, magnetic media (e.g. magnetic tape), optical recording media (e.g. CD-ROM, DVD, magneto-optical media (e.g. floptical disks), built-in memory, etc. The instruction may include code generated by a compiler or code that can be executed by an interpreter. A module or program module according to various embodiments may include at least one of the above-described components. , some parts may be omitted, or other components may be further included. Operations performed by modules, program modules, or other components may be executed sequentially, parallel, iteratively, or heuristically. Some operations may be executed in a different order, omitted, or other operations may be added.
그리고 본 문서에 개시된 실시예는 개시된, 기술 내용의 설명 및 이해를 위해 제시된 것이며, 본 개시의 범위를 한정하는 것은 아니다. 따라서, 본 개시의 범위는, 본 개시의 기술적 사상에 근거한 모든 변경 또는 다양한 다른 실시예를 포함하는 것으로 해석되어야 한다.Additionally, the embodiments disclosed in this document are presented for explanation and understanding of the disclosed technical content, and do not limit the scope of the present disclosure. Accordingly, the scope of the present disclosure should be interpreted as including all changes or various other embodiments based on the technical idea of the present disclosure.
Claims (14)
- 상변화 메모리를 이용하여 신경망 모델에 적합한 프리패처 알고리즘을 수행하는 전자 장치에 있어서,In an electronic device that performs a prefetcher algorithm suitable for a neural network model using a phase change memory,프로세서, 및processor, and상기 프로세서에 의하여 실행 시에, 상기 프로세서로 하여금 신경망 모델과 관련된 적어도 하나의 동작을 수행하도록 야기하는 제1 인스트럭션을 저장하는 상변화 메모리(PCM, Phase Change Memory) 및 상기 프로세서로 하여금 상기 적어도 하나의 동작 이외의 다른 동작들을 수행하도록 야기하는 제2 인스트럭션을 저장하는 DRAM(Dynamic Random Access Memory)을 포함하는 메모리를 포함하고,A phase change memory (PCM) storing a first instruction that, when executed by the processor, causes the processor to perform at least one operation related to a neural network model and causes the processor to perform the at least one operation. a memory including dynamic random access memory (DRAM) that stores second instructions that cause other operations to be performed,상기 적어도 하나의 동작은,The at least one operation is,상기 메모리의 현재 접근 주소와 이전 접근 주소의 차이에 해당하는 제1 델타 값과 상기 제1 델타 값의 이전 델타 값인 제2 델타 값을 확인하는 동작,An operation of checking a first delta value corresponding to the difference between the current access address and the previous access address of the memory and a second delta value that is the previous delta value of the first delta value,접근 주소의 프리패치를 위한 제1 동작 우선 순위에 따라, 상기 제1 델타 값과 상기 제2 델타 값을 비교하여 상기 제1 델타 값이 상기 제2 델타 값과 동일한 경우, 현재 접근 주소에 상기 제1 델타 값을 적용한 제1 예측 주소를 프리패치하는 제1 프로세스를 수행하는 동작,According to the first operation priority for prefetching of the access address, the first delta value and the second delta value are compared, and if the first delta value is equal to the second delta value, the current access address is connected to the second delta value. An operation of performing a first process of prefetching a first prediction address applying a delta value of 1;상기 제1 동작 우선 순위의 후순위 동작으로서, 제2 동작 우선 순위에 따라, ROB(Reorder Buffer) 테이블에 상기 현재 접근 주소가 존재하는지 탐색하고, 상기 ROB 테이블에 상기 현재 접근 주소가 존재하는 경우, 미리 설정된 degree 수만큼 상기 ROB 테이블에 기록된 적어도 하나의 예측 주소를 프리패치하는 제2 프로세스를 수행하는 동작, 및As a subordinate operation of the first operation priority, according to the second operation priority, it is searched whether the current access address exists in the ROB (Reorder Buffer) table, and if the current access address exists in the ROB table, in advance An operation of performing a second process of prefetching at least one prediction address recorded in the ROB table by a set number of degrees, and상기 제2 동작 우선 순위의 후순위 동작으로서, 제3 동작 우선 순위에 따라, 상기 제1 델타 값과 상기 제2 델타 값이 상이한 경우, 상기 제1 델타 값에 대응하는 델타 스코어가 OT(Offset Threshold) 이상이면 상기 현재 접근 주소에 상기 제1 델타 값을 적용한 제2 예측 주소를 프리패치하는 제3 프로세스를 수행하는 동작을 포함하는,As a subordinate operation of the second operation priority, according to the third operation priority, when the first delta value and the second delta value are different, the delta score corresponding to the first delta value is OT (Offset Threshold) If it is greater than or equal to the current access address, it includes performing a third process of prefetching a second prediction address by applying the first delta value to the current access address.전자 장치.Electronic devices.
- 제1 항에 있어서, According to claim 1,상기 적어도 하나의 동작은,The at least one operation is,상기 제1 델타 값과 상기 제2 델타 값을 OST(Offset Score Table)에 기록하는 동작을 더 포함하는,Further comprising recording the first delta value and the second delta value in an OST (Offset Score Table),전자 장치.Electronic devices.
- 제2 항에 있어서,According to clause 2,상기 적어도 하나의 동작은,The at least one operation is,상기 제1 델타 값과 제2 델타 값이 동일한 경우, 상기 제1 델타 값에 대응하는 델타 스코어를 이전 델타 스코어와 동일하게 하여 상기 OST에 기록하는 동작,When the first delta value and the second delta value are the same, recording the delta score corresponding to the first delta value as the previous delta score in the OST;상기 제1 델타 값과 상기 제2 델타 값이 상이한 경우, 상기 제1 델타 값에 대응하는 상기 델타 스코어를 상기 이전 델타 스코어에 미리 정해진 스코어만큼 증가시켜 상기 OST에 기록하는 동작을 더 포함하는,When the first delta value and the second delta value are different, increasing the delta score corresponding to the first delta value by a predetermined score to the previous delta score and recording it in the OST,전자 장치.Electronic devices.
- 제3 항에 있어서,According to clause 3,상기 적어도 하나의 동작은,The at least one operation is,상기 제3 동작 우선 순위에 따라, 상기 제3 프로세스를 수행한 후에는, 상기 OST에 기록된 엔트리들을 초기화하거나 또는 상기 델타 스코어로서 상기 OT로부터 미리 정해진 값만큼 감소시켜 상기 OST에 기록하는 동작을 더 포함하는,According to the third operation priority, after performing the third process, an operation of initializing the entries recorded in the OST or decreasing the delta score by a predetermined value from the OT and recording the entries in the OST is further performed. containing,전자 장치.Electronic devices.
- 제1 항에 있어서, According to claim 1,상기 적어도 하나의 동작은,The at least one operation is,상기 현재 접근 주소에 대응하는 블록 넘버가 RHB(Region-History Buffer) 테이블의 블록 넘버 항목에 존재하는지 확인하는 동작,An operation to check whether the block number corresponding to the current access address exists in the block number item of the RHB (Region-History Buffer) table,상기 블록 넘버가 상기 블록 넘버 항목에 존재하는 경우, 상기 블록 넘버에 대응하는 상기 RHB의 델타 패턴 항목에 상기 현재 접근 주소에 대응하는 RHB 델타 값을 기록하는 동작 -상기 블록 주소 항목은 해당 블록에서의 최초 접근 주소를 기록하는 항목이고, 상기 RHB 델타 값은 상기 블록 넘버에 대응하는 블록 주소 항목의 주소와 상기 현재 접근 주소의 차이 값임-, 및If the block number is present in the block number item, recording the RHB delta value corresponding to the current access address in the delta pattern item of the RHB corresponding to the block number - the block address item is It is an item that records the first access address, and the RHB delta value is the difference between the address of the block address item corresponding to the block number and the current access address -, and상기 델타 패턴 항목에 상기 RHB 델타 값을 기록한 후에, 상기 블록 넘버에 대응하는 상기 델타 패턴 항목의 길이가 미리 정해진 길이 이상인 경우, 상기 블록 넘버에 대응하는 RHB 기록을 PST(Pattern Sequence Table)에 기록하고, 상기 RHB 기록을 삭제하는 동작을 포함하는, After recording the RHB delta value in the delta pattern item, if the length of the delta pattern item corresponding to the block number is more than a predetermined length, the RHB record corresponding to the block number is recorded in a PST (Pattern Sequence Table) , including the operation of deleting the RHB record,전자 장치.Electronic devices.
- 제5 항에 있어서,According to clause 5,상기 적어도 하나의 동작은,The at least one operation is,상기 블록 넘버가 상기 RHB 테이블의 상기 블록 넘버 항목에 존재하지 않는 경우, 상기 현재 접근 주소에 대응하는 상기 블록 넘버가 상기 PST의 블록 넘버 항목에 존재하는지 확인하는 동작,If the block number does not exist in the block number item of the RHB table, checking whether the block number corresponding to the current access address exists in the block number item of the PST,상기 블록 넘버가 상기 PST의 블록 넘버 항목에 존재하는 경우, 상기 현재 접근 주소에 대응하는 PST 델타 값이 상기 PST의 델타 패턴 항목에 존재하는지 확인하는 동작,If the block number is present in the block number item of the PST, checking whether the PST delta value corresponding to the current access address is present in the delta pattern item of the PST;상기 PST 델타 값이 상기 PST의 델타 패턴 항목에 존재하지 않는 경우, 상기 PST의 패치 넘버 항목의 값이 특정 값 이상이면 상기 PST 델타 값을 상기 PST의 델타 패턴 항목에 추가로 기록하고, 상기 PST의 패치 넘버 항목의 값이 상기 특정 값 미만이면 상기 현재 접근 주소에 대응하는 새로운 블록 넘버, 상기 현재 접근 주소에 대응하는 새로운 블록 주소, 상기 현재 접근 주소에 대응하는 새로운 델타 값을 상기 RHB 테이블에 기록하는 동작 -상기 특정 값은 상기 PST의 델타 패턴 항목의 길이에 대한 미리 정해진 비율 값임-,When the PST delta value does not exist in the delta pattern item of the PST, if the value of the patch number item of the PST is greater than a certain value, the PST delta value is additionally recorded in the delta pattern item of the PST, and the PST delta value is additionally recorded in the delta pattern item of the PST. If the value of the patch number item is less than the specific value, a new block number corresponding to the current access address, a new block address corresponding to the current access address, and a new delta value corresponding to the current access address are recorded in the RHB table. Operation - the specific value is a predetermined ratio value to the length of the delta pattern item of the PST -상기 PST 델타 값이 상기 PST의 델타 패턴 항목에 존재하는 경우, 상기 ROB 테이블에 상기 현재 접근 주소를 기록하고 상기 블록 넘버에 대응하는 상기 PST의 패치 넘버 항목의 값에 미리 정해진 값을 추가하는 동작을 더 포함하는,If the PST delta value exists in the delta pattern item of the PST, recording the current access address in the ROB table and adding a predetermined value to the value of the patch number item of the PST corresponding to the block number. Including more,전자 장치.Electronic devices.
- 제6 항에 있어서,According to clause 6,상기 적어도 하나의 동작은,The at least one operation is,상기 블록 넘버가 상기 RHB 테이블의 상기 블록 넘버 항목 및 상기 PST의 상기 블록 넘버 항목에 존재하지 않는 경우, 상기 현재 접근 주소에 대응하는 새로운 블록 넘버, 상기 현재 접근 주소에 대응하는 새로운 블록 주소, 상기 현재 접근 주소에 대응하는 새로운 델타 값을 상기 RHB 테이블에 기록하는 동작을 더 포함하는,If the block number does not exist in the block number item of the RHB table and the block number item of the PST, a new block number corresponding to the current access address, a new block address corresponding to the current access address, and the current Further comprising recording a new delta value corresponding to the access address in the RHB table,전자 장치.Electronic devices.
- 상변화 메모리를 이용하여 신경망 모델에 적합한 프리패처 알고리즘을 수행하는 전자 장치의 동작 방법에 있어서,In a method of operating an electronic device that performs a prefetcher algorithm suitable for a neural network model using a phase change memory,상기 전자 장치의 메모리의 현재 접근 주소와 이전 접근 주소의 차이에 해당하는 제1 델타 값과 상기 제1 델타 값의 이전 델타 값인 제2 델타 값을 확인하는 동작,An operation of checking a first delta value corresponding to the difference between the current access address and the previous access address of the memory of the electronic device and a second delta value that is the previous delta value of the first delta value,접근 주소의 프리패치를 위한 제1 동작 우선 순위에 따라, 상기 제1 델타 값과 상기 제2 델타 값을 비교하여 상기 제1 델타 값이 상기 제2 델타 값과 동일한 경우, 현재 접근 주소에 상기 제1 델타 값을 적용한 제1 예측 주소를 프리패치하는 제1 프로세스를 수행하는 동작,According to the first operation priority for prefetching of the access address, the first delta value and the second delta value are compared, and if the first delta value is equal to the second delta value, the current access address is connected to the second delta value. An operation of performing a first process of prefetching a first prediction address applying a delta value of 1;상기 제1 동작 우선 순위의 후순위 동작으로서, 제2 동작 우선 순위에 따라, ROB(Reorder Buffer) 테이블에 상기 현재 접근 주소가 존재하는지 탐색하고, 상기 ROB 테이블에 상기 현재 접근 주소가 존재하는 경우, 미리 설정된 degree 수만큼 상기 ROB 테이블에 기록된 적어도 하나의 예측 주소를 프리패치하는 제2 프로세스를 수행하는 동작, 및As a subordinate operation of the first operation priority, according to the second operation priority, it is searched whether the current access address exists in the ROB (Reorder Buffer) table, and if the current access address exists in the ROB table, in advance An operation of performing a second process of prefetching at least one prediction address recorded in the ROB table by a set number of degrees, and상기 제2 동작 우선 순위의 후순위 동작으로서, 제3 동작 우선 순위에 따라, 상기 제1 델타 값과 상기 제2 델타 값이 상이한 경우, 상기 제1 델타 값에 대응하는 델타 스코어가 OT(Offset Threshold) 이상이면 상기 현재 접근 주소에 상기 제1 델타 값을 적용한 제2 예측 주소를 프리패치하는 제3 프로세스를 수행하는 동작을 포함하는,As a subordinate operation of the second operation priority, according to the third operation priority, when the first delta value and the second delta value are different, the delta score corresponding to the first delta value is OT (Offset Threshold) If it is greater than or equal to the current access address, it includes performing a third process of prefetching a second prediction address by applying the first delta value to the current access address.전자 장치의 동작 방법.How electronic devices work.
- 제8 항에 있어서, According to clause 8,상기 제1 델타 값과 상기 제2 델타 값을 OST(Offset Score Table)에 기록하는 동작을 더 포함하는,Further comprising recording the first delta value and the second delta value in an OST (Offset Score Table),전자 장치의 동작 방법.How electronic devices work.
- 제9 항에 있어서,According to clause 9,상기 제1 델타 값과 제2 델타 값이 동일한 경우, 상기 제1 델타 값에 대응하는 델타 스코어를 이전 델타 스코어와 동일하게 하여 상기 OST에 기록하는 동작, 및When the first delta value and the second delta value are the same, recording the delta score corresponding to the first delta value as the previous delta score in the OST, and상기 제1 델타 값과 상기 제2 델타 값이 상이한 경우, 상기 제1 델타 값에 대응하는 상기 델타 스코어를 상기 이전 델타 스코어에 미리 정해진 스코어만큼 증가시켜 상기 OST에 기록하는 동작을 더 포함하는,When the first delta value and the second delta value are different, increasing the delta score corresponding to the first delta value by a predetermined score to the previous delta score and recording it in the OST,전자 장치의 동작 방법.How electronic devices work.
- 제10 항에 있어서,According to claim 10,상기 제3 동작 우선 순위에 따라, 상기 제3 프로세스를 수행한 후에는, 상기 OST에 기록된 엔트리들을 초기화하거나 또는 상기 델타 스코어로서 상기 OT로부터 미리 정해진 값만큼 감소시켜 상기 OST에 기록하는 동작을 더 포함하는,According to the third operation priority, after performing the third process, an operation of initializing the entries recorded in the OST or decreasing the delta score by a predetermined value from the OT and recording the entries in the OST is further performed. containing,전자 장치의 동작 방법.How electronic devices work.
- 제8 항에 있어서, According to clause 8,상기 현재 접근 주소에 대응하는 블록 넘버가 RHB(Region-History Buffer) 테이블의 블록 넘버 항목에 존재하는지 확인하는 동작,An operation to check whether the block number corresponding to the current access address exists in the block number item of the RHB (Region-History Buffer) table,상기 블록 넘버가 상기 블록 넘버 항목에 존재하는 경우, 상기 블록 넘버에 대응하는 상기 RHB의 델타 패턴 항목에 상기 현재 접근 주소에 대응하는 RHB 델타 값을 기록하는 동작 -상기 블록 주소 항목은 해당 블록에서의 최초 접근 주소를 기록하는 항목이고, 상기 RHB 델타 값은 상기 블록 넘버에 대응하는 블록 주소 항목의 주소와 상기 현재 접근 주소의 차이 값임-, 및If the block number is present in the block number item, recording the RHB delta value corresponding to the current access address in the delta pattern item of the RHB corresponding to the block number - the block address item is It is an item that records the first access address, and the RHB delta value is the difference between the address of the block address item corresponding to the block number and the current access address -, and상기 델타 패턴 항목에 상기 RHB 델타 값을 기록한 후에, 상기 블록 넘버에 대응하는 상기 델타 패턴 항목의 길이가 미리 정해진 길이 이상인 경우, 상기 블록 넘버에 대응하는 RHB 기록을 PST(Pattern Sequence Table)에 기록하고, 상기 RHB 기록을 삭제하는 동작을 포함하는, After recording the RHB delta value in the delta pattern item, if the length of the delta pattern item corresponding to the block number is more than a predetermined length, the RHB record corresponding to the block number is recorded in a PST (Pattern Sequence Table) , including the operation of deleting the RHB record,전자 장치의 동작 방법.How electronic devices work.
- 제12 항에 있어서,According to claim 12,상기 블록 넘버가 상기 RHB 테이블의 상기 블록 넘버 항목에 존재하지 않는 경우, 상기 현재 접근 주소에 대응하는 상기 블록 넘버가 상기 PST의 블록 넘버 항목에 존재하는지 확인하는 동작,If the block number does not exist in the block number item of the RHB table, checking whether the block number corresponding to the current access address exists in the block number item of the PST,상기 블록 넘버가 상기 PST의 블록 넘버 항목에 존재하는 경우, 상기 현재 접근 주소에 대응하는 PST 델타 값이 상기 PST의 델타 패턴 항목에 존재하는지 확인하는 동작,If the block number is present in the block number item of the PST, checking whether the PST delta value corresponding to the current access address is present in the delta pattern item of the PST;상기 PST 델타 값이 상기 PST의 델타 패턴 항목에 존재하지 않는 경우, 상기 PST의 패치 넘버 항목의 값이 특정 값 이상이면 상기 PST 델타 값을 상기 PST의 델타 패턴 항목에 추가로 기록하고, 상기 PST의 패치 넘버 항목의 값이 상기 특정 값 미만이면 상기 현재 접근 주소에 대응하는 새로운 블록 넘버, 상기 현재 접근 주소에 대응하는 새로운 블록 주소, 상기 현재 접근 주소에 대응하는 새로운 델타 값을 상기 RHB 테이블에 기록하는 동작 -상기 특정 값은 상기 PST의 델타 패턴 항목의 길이에 대한 미리 정해진 비율 값임-, 및When the PST delta value does not exist in the delta pattern item of the PST, if the value of the patch number item of the PST is greater than a certain value, the PST delta value is additionally recorded in the delta pattern item of the PST, and the PST delta value is additionally recorded in the delta pattern item of the PST. If the value of the patch number item is less than the specific value, a new block number corresponding to the current access address, a new block address corresponding to the current access address, and a new delta value corresponding to the current access address are recorded in the RHB table. operation - the specific value is a predetermined ratio value to the length of the delta pattern item of the PST, and상기 PST 델타 값이 상기 PST의 델타 패턴 항목에 존재하는 경우, 상기 ROB 테이블에 상기 현재 접근 주소를 기록하고 상기 블록 넘버에 대응하는 상기 PST의 패치 넘버 항목의 값에 미리 정해진 값을 추가하는 동작을 더 포함하는,If the PST delta value exists in the delta pattern item of the PST, recording the current access address in the ROB table and adding a predetermined value to the value of the patch number item of the PST corresponding to the block number. Including more,전자 장치의 동작 방법.How electronic devices work.
- 제13 항에 있어서,According to claim 13,상기 블록 넘버가 상기 RHB 테이블의 상기 블록 넘버 항목 및 상기 PST의 상기 블록 넘버 항목에 존재하지 않는 경우, 상기 현재 접근 주소에 대응하는 새로운 블록 넘버, 상기 현재 접근 주소에 대응하는 새로운 블록 주소, 상기 현재 접근 주소에 대응하는 새로운 델타 값을 상기 RHB 테이블에 기록하는 동작을 더 포함하는,If the block number does not exist in the block number item of the RHB table and the block number item of the PST, a new block number corresponding to the current access address, a new block address corresponding to the current access address, and the current Further comprising recording a new delta value corresponding to the access address in the RHB table,전자 장치의 동작 방법.How electronic devices work.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2022-0184810 | 2022-12-26 | ||
KR1020220184810A KR20240102611A (en) | 2022-12-26 | 2022-12-26 | Electronic device for performing prefetcher algorithm suitable for neural network model using phase change memory and method for operation thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024143656A1 true WO2024143656A1 (en) | 2024-07-04 |
Family
ID=91718212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2023/000841 WO2024143656A1 (en) | 2022-12-26 | 2023-01-18 | Electronic device for performing prefetcher algorithm appropriate for neural network model by using phase change memory, and operation method thereof |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20240102611A (en) |
WO (1) | WO2024143656A1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120297127A1 (en) * | 2011-05-20 | 2012-11-22 | International Business Machines Corporation | Optimized flash based cache memory |
US20180004670A1 (en) * | 2016-06-29 | 2018-01-04 | Oracle International Corporation | Prefetch bandwidth throttling by dynamically adjusting miss buffer prefetch-dropping thresholds |
US20200272566A1 (en) * | 2019-02-21 | 2020-08-27 | Hitachi, Ltd. | Data processing device, storage device, and prefetch method |
-
2022
- 2022-12-26 KR KR1020220184810A patent/KR20240102611A/en unknown
-
2023
- 2023-01-18 WO PCT/KR2023/000841 patent/WO2024143656A1/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120297127A1 (en) * | 2011-05-20 | 2012-11-22 | International Business Machines Corporation | Optimized flash based cache memory |
US20180004670A1 (en) * | 2016-06-29 | 2018-01-04 | Oracle International Corporation | Prefetch bandwidth throttling by dynamically adjusting miss buffer prefetch-dropping thresholds |
US20200272566A1 (en) * | 2019-02-21 | 2020-08-27 | Hitachi, Ltd. | Data processing device, storage device, and prefetch method |
Non-Patent Citations (2)
Title |
---|
AGARWAL AYUSH: "MEMORY ACCESS PATTERNS AND PAGE PROMOTION IN HYBRID MEMORY SYSTEMS", THESIS UNIVERSITY OF ILLINOIS, 1 January 2020 (2020-01-01), pages 1 - 46, XP093186586 * |
HSINYU TSAI; STEFANO AMBROGIO; PRITISH NARAYANAN; ROBERT M SHELBY; GEOFFREY W BURR: "Recent progress in analog memory-based accelerators for deep learning", JOURNAL OF PHYSICS D: APPLIED PHYSICS, INSTITUTE OF PHYSICS PUBLISHING, BRISTOL, GB, vol. 51, no. 28, 21 June 2018 (2018-06-21), Bristol, GB, pages 283001, XP020328729, ISSN: 0022-3727, DOI: 10.1088/1361-6463/aac8a5 * |
Also Published As
Publication number | Publication date |
---|---|
KR20240102611A (en) | 2024-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107870728B (en) | Method and apparatus for moving data | |
KR102192503B1 (en) | Method and system for providing virtual desktop service using cache server | |
US9189271B2 (en) | Operation transfer from an origin virtual machine to a destination virtual machine while continue the execution of the operation on the origin virtual machine | |
JP2015522886A (en) | Memory management for hierarchical memory systems | |
KR100922907B1 (en) | Utilizing paging to support dynamic code updates | |
US9529618B2 (en) | Migrating processes between source host and destination host using a shared virtual file system | |
KR102123422B1 (en) | Memory and resource management in a virtual computing environment | |
KR20100037959A (en) | Virtualized computing accelerator and program download method of based virtualized computing | |
US9619391B2 (en) | In-memory caching with on-demand migration | |
US11157413B2 (en) | Unified in-memory cache | |
US11392545B1 (en) | Tracking access pattern of inodes and pre-fetching inodes | |
US20200287988A1 (en) | Seamless context switch | |
US11593268B2 (en) | Method, electronic device and computer program product for managing cache | |
CN111183411A (en) | Dynamic address translation for virtual machines | |
KR20150131535A (en) | Method for updating of library, apparatus and system for the same | |
CN107423291B (en) | Data translation method and client device | |
WO2018064319A9 (en) | Tracking access pattern of inodes and pre-fetching inodes | |
US9229757B2 (en) | Optimizing a file system interface in a virtualized computing environment | |
CN106598502B (en) | Data storage method and system | |
WO2024143656A1 (en) | Electronic device for performing prefetcher algorithm appropriate for neural network model by using phase change memory, and operation method thereof | |
CN112395437B (en) | 3D model loading method and device, electronic equipment and storage medium | |
CN116820579A (en) | Scheduling method and device of access instruction, electronic equipment and storage medium | |
CN116841624A (en) | Scheduling method and device of access instruction, electronic equipment and storage medium | |
US7681009B2 (en) | Dynamically updateable and moveable memory zones | |
US10235293B2 (en) | Tracking access pattern of inodes and pre-fetching inodes |
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: 23912346 Country of ref document: EP Kind code of ref document: A1 |