KR101422083B1 - Scratchpad memory management system and method - Google Patents

Scratchpad memory management system and method Download PDF

Info

Publication number
KR101422083B1
KR101422083B1 KR1020120144965A KR20120144965A KR101422083B1 KR 101422083 B1 KR101422083 B1 KR 101422083B1 KR 1020120144965 A KR1020120144965 A KR 1020120144965A KR 20120144965 A KR20120144965 A KR 20120144965A KR 101422083 B1 KR101422083 B1 KR 101422083B1
Authority
KR
South Korea
Prior art keywords
data
scratch pad
priority area
pad memory
sensitive
Prior art date
Application number
KR1020120144965A
Other languages
Korean (ko)
Other versions
KR20140076454A (en
Inventor
홍대영
임성수
덧 니킬
앙헬 바덴 루이스
Original Assignee
국민대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 국민대학교산학협력단 filed Critical 국민대학교산학협력단
Priority to KR1020120144965A priority Critical patent/KR101422083B1/en
Priority to PCT/KR2013/011201 priority patent/WO2014092381A1/en
Publication of KR20140076454A publication Critical patent/KR20140076454A/en
Application granted granted Critical
Publication of KR101422083B1 publication Critical patent/KR101422083B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 스크래치패드 메모리 관리에 있어서 민감한 데이터의 기밀성을 보장하도록 한 스크래치패드 메모리 관리 시스템 및 방법에 관한 것으로, 스크래치패드 메모리를 온칩 메모리로 사용하는 컴퓨팅 시스템에서 스크래치패드 메모리를 관리하는 스크래치패드 메모리 관리 시스템에 있어서, DMA 엔진이 스크래치패드 메모리와 오프칩 영역의 오프칩 메모리 사이의 데이터를 전송하며, 암호화 엔진이 기밀성 보장이 필요한 민감 데이터에 대한 부호화 및 복호화 연산을 수행하며, CPU가 민감 데이터가 오프칩 메모리에 저장되는 경우를 감지하여 암호화 엔진 및 DMA 엔진의 동작을 제어해 스크래치패드 메모리의 관리를 수행하도록 함으로써, 컴퓨팅 시스템에서 사용되는 민감한 데이터들에 대해서 기밀성을 보장하면서도 시스템의 성능을 향상시킬 수 있다.The present invention relates to a scratch pad memory management system and method for securing the confidentiality of sensitive data in a scratch pad memory management, and more particularly, to a scratch pad memory management system and method for managing scratch pad memory management in a computing system using a scratch pad memory as an on- In a system, a DMA engine transmits data between a scratch pad memory and an off-chip area of an off-chip area, and an encryption engine performs encoding and decoding operations on sensitive data requiring confidentiality, By sensing the case of being stored in the chip memory and controlling the operation of the encryption engine and the DMA engine to manage the scratch pad memory, it is possible to improve the performance of the system while ensuring confidentiality of sensitive data used in the computing system have.

Description

스크래치패드 메모리 관리 시스템 및 방법{SCRATCHPAD MEMORY MANAGEMENT SYSTEM AND METHOD}[0001] SCRATCHPAD MEMORY MANAGEMENT SYSTEM AND METHOD [0002]

본 발명은 스크래치패드 메모리(Scratchpad Memory) 관리 시스템 및 방법에 관한 것으로, 보다 상세하게는, 스크래치패드 메모리 관리에 있어서 민감한 데이터의 기밀성을 보장하도록 한 스크래치패드 메모리 관리 시스템 및 방법에 관한 것이다.
The present invention relates to a system and method for managing a scratch pad memory, and more particularly, to a scratch pad memory management system and method for ensuring the confidentiality of sensitive data in a scratch pad memory management.

일반적으로, 스크래치패드 메모리는 프로세서(Processor)에 가까이 위치하여 빠른 속도의 데이터 접근을 프로세서에 제공하기 위한 메모리로서, 태그 메모리(Tag Memory) 및 복잡한 제어기를 필요로 하는 캐시(Cache)에 비하면, 간단하고 전력 소모도 적으며, 그 내용을 미리 알 수 있고 소프트웨어로 제어도 가능하여, 정확한 성능 예측이 가능하고 매번 같은 성능으로 동작하도록 해 준다.In general, a scratch pad memory is a memory for providing a high-speed data access to a processor by being located close to a processor. Compared with a cache requiring a tag memory and a complicated controller, Power consumption is low, its contents can be known in advance, and it can be controlled by software, so that accurate performance prediction is possible and it operates at the same performance each time.

그리고 스크래치패드 메모리 관리 방법으로는, 크게 정적 방법(Static Method)과 동적 방법(Dynamic Method)으로 나눈다.The scratch pad memory management method is largely divided into a static method and a dynamic method.

정적 방법은 전체 소프트웨어가 동작하는 동안에 일정 데이터를 스크래치패드 메모리에 계속 저장하는 방식으로, 데이터가 스크래치패드 메모리에 저장되어 있을 경우에 가장 효과적인 데이터를 찾아내어 스크래치패드 메모리에 저장하고 전체 소프트웨어를 동작시킴으로써, 프로그램 수행 도중에 스크래치패드 메모리의 내용이 바뀌지 않는다.The static method is a method in which certain data is continuously stored in the scratch pad memory while the entire software is operating. When the data is stored in the scratch pad memory, the most effective data is found, stored in the scratch pad memory, , The content of the scratch pad memory does not change during program execution.

동적 방법은 소프트웨어가 동작하는 도중에 계속해서 스크래치패드 메모리의 내용을 바꿔주는 방식으로, 전체 소프트웨어가 동작하면서 데이터가 시간마다 계속 변하기 때문에, 이에 따라 스크래치패드 메모리의 내용도 프로그램 수행 도중에 동적으로 변화시켜 주도록 한다.The dynamic method is a method in which the content of the scratch pad memory is continuously changed during the operation of the software so that the contents of the scratch pad memory are dynamically changed during the execution of the program do.

한편, 한국등록특허 제10-0944532호는 소프트웨어 및 하드웨어를 결합하여 메모리 할당을 수행하는 스크래치패드 메모리 시스템 및 그 동적 메모리 관리방법에 관하여 개시되어 있는데, 복수의 입력세트를 이용하여 소정의 프로그램을 수행하고, 각 입력세트에 대응하여 억세스되는 메인 메모리의 어드레스 영역 및 억세스 횟수에 관련된 정보들 둥 적어도 하나를 프로파일링하여 저장하는 컴파일러; 프로그램 수행 시 실제 억세스되는 메인 메모리의 어드레스 영역 및 어드레스 영역의 억세스되는 횟수에 관련된 정보들 중 적어도 하나를 저장하는 데이터 억세스 기록 테이블; 및 컴파일러로부터의 프로파일링 정보와 데이터 억세스 기록 테이블의 실제 메인 메모리의 억세스 정보를 비교한 결과를 이용하여, 메인 메모리로부터 스크래치패드 메모리로의 데이터 저장을 제어하는 운영체제부를 구비하는 것을 특징으로 한다. 개시된 기술에 따르면, 다양한 입력세트에 기인하여 동적 또는 불규칙적인 메모리 접근 패턴을 갖는 응용프로그램을 수행하는 경우에도 메인 메모리의 접근 횟수를 최소화할 수 있다.Meanwhile, Korean Patent Registration No. 10-0944532 discloses a scratch pad memory system and its dynamic memory management method for performing memory allocation by combining software and hardware, and a predetermined program is executed using a plurality of input sets A compiler for profiling and storing at least one piece of information related to an address area and an access count of a main memory accessed corresponding to each input set; A data access record table storing at least one of an address area of the main memory and an access number of the address area which are actually accessed at the time of executing the program; And an operating system unit for controlling data storage from the main memory to the scratch pad memory by using the comparison result of the profiling information from the compiler and the access information of the actual main memory of the data access record table. According to the disclosed technique, even when an application program having a dynamic or irregular memory access pattern is executed due to various input sets, the number of accesses to the main memory can be minimized.

그리고 한국공개특허 제10-2011-0007360호는 메인 메모리 상에 유지되는 메모리 할당 테이블을 이용하여 스크래치패드 메모리를 관리하도록 한 스크래치패드 메모리 관리 장치 및 방법에 관하여 개시되어 있다. 이러한 개시된 기술에 의하면, 복수 개의 단위 블록으로 분할 관리되는 스크래치패드 메모리; 및 메인 메모리상에 유지되어 스크래치패드 메모리를 관리하는 메모리 관리부를 포함하는 것을 특징으로 함으로써, 동적으로 생성되는 태스크에 대응하여 스크래치패드 메모리를 동적으로 관리함으로써 스크래치패드 메모리의 사용 효율을 증가시키며, 스크래치패드 메모리 관리를 위한 메타데이터를 메인 메모리에 위치시켜 스크래치패드 메모리의 낭비를 줄일 수 있다.Korean Patent Laid-Open No. 10-2011-0007360 discloses a scratch pad memory management apparatus and method for managing a scratch pad memory using a memory allocation table held on a main memory. According to the disclosed technique, the scratch pad memory is divided and managed into a plurality of unit blocks. And a memory management unit which is held on the main memory and manages the scratch pad memory, thereby increasing the use efficiency of the scratch pad memory by dynamically managing the scratch pad memory in response to dynamically generated tasks, The metadata for managing the pad memory can be placed in the main memory to reduce the waste of the scratch pad memory.

그런데, 상술한 바와 같은 종래의 스크래치패드 메모리 관리 시스템은, 스크래치패드 메모리를 온칩 메모리(On-chip Memory)로 사용하는 컴퓨팅 시스템에 있어서, 해당 컴퓨팅 시스템에서 사용되는 민감한 데이터들에 대해서 기밀성을 보장해야 하는데, 이때 민감한 데이터들의 기밀성을 보장하면서 시스템의 성능 저하를 수반하게 되는 문제점이 있었다.
However, in the conventional scratch pad memory management system as described above, in a computing system using a scratch pad memory as an on-chip memory, it is necessary to ensure confidentiality of sensitive data used in the corresponding computing system At this time, there is a problem that the performance of the system is degraded while ensuring the confidentiality of sensitive data.

한국등록특허 제10-0944532호Korean Patent No. 10-0944532 한국공개특허 제10-2011-0007360호Korean Patent Publication No. 10-2011-0007360

본 발명의 일 실시예는 스크래치패드 메모리를 온칩 메모리로 사용하는 컴퓨팅 시스템에서 사용되는 민감한 데이터들에 대해서 기밀성을 보장하면서도 수반되는 성능 저하를 최소화시키도록 한 스크래치패드 메모리 관리 시스템 및 방법을 제공하고자 한다.
An embodiment of the present invention provides a scratch pad memory management system and method that minimizes performance degradation while ensuring confidentiality of sensitive data used in a computing system using a scratch pad memory as an on-chip memory .

실시예들 중에서, 스크래치패드 메모리 관리 시스템은, 스크래치패드 메모리를 온칩 메모리로 사용하는 컴퓨팅 시스템에서 스크래치패드 메모리를 관리하는 스크래치패드 메모리 관리 시스템에 있어서, 상기 스크래치패드 메모리와 오프칩 영역의 오프칩 메모리 사이의 데이터를 전송하기 위한 DMA 엔진; 기밀성 보장이 필요한 민감 데이터에 대한 부호화 및 복호화 연산을 수행하기 위한 암호화 엔진; 및 상기 민감 데이터가 상기 오프칩 메모리에 저장되는 경우를 감지하여 상기 암호화 엔진 및 상기 DMA 엔진의 동작을 제어해 상기 스크래치패드 메모리의 관리를 수행하는 CPU를 포함한다.In one embodiment, a scratch pad memory management system is a scratch pad memory management system for managing a scratch pad memory in a computing system that uses a scratch pad memory as an on-chip memory, the scratch pad memory management system comprising: A DMA engine for transferring data between the DMA engines; An encryption engine for performing encoding and decoding operations on sensitive data requiring confidentiality; And a CPU for detecting the case where the sensitive data is stored in the off-chip memory and controlling operations of the encryption engine and the DMA engine to manage the scratch pad memory.

일 실시예에서, 상기 스크래치패드 메모리는, 상기 민감 데이터를 우선적으로 할당하는 민감성 우선 관리 정책을 적용하는 민감성 우선 영역과, 자주 사용되는 데이터를 우선적으로 할당시키는 접근빈도 우선 관리 정책을 적용하는 접근빈도 우선 영역으로 나눌 수 있다.In one embodiment, the scratch pad memory includes: a sensitivity priority area for applying a sensitivity priority management policy for preferentially allocating the sensitive data; an access frequency for applying an access frequency priority management policy for preferentially allocating frequently used data; It can be divided into priority areas.

일 실시예에서, 상기 CPU는, 상기 민감성 우선 영역과 상기 접근빈도 우선 영역의 크기를 실행되는 워크로드에 대한 정적 분석 결과를 통해 설계 시점에 결정하며, 해당 결정된 크기에 따라 상기 스크래치패드 메모리를 상기 민감성 우선 영역과 상기 접근빈도 우선 영역으로 나누어 설정할 수 있다.In one embodiment, the CPU determines the size of the sensitivity priority area and the access frequency priority area at a design time through a static analysis result on a workload to be executed, and determines the scratch pad memory Sensitive priority area and the access frequency priority area.

일 실시예에서, 상기 CPU는, 상기 스크래치패드 메모리에 접근되는 데이터에 대해 상기 민감성 우선 영역으로의 할당을 시도하며, 상기 스크래치패드 메모리에 접근되는 데이터가 상기 민감성 우선 영역에 할당되지 않거나, 상기 민감성 우선 영역으로부터 쫓겨나는 희생 데이터가 있는 경우에, 상기 스크래치패드 메모리에 접근되는 데이터 또는 희생 데이터에 대해 상기 접근빈도 우선 영역으로의 할당을 시도하며, 상기 접근빈도 우선 영역으로부터 쫓겨나는 희생 데이터가 있는 경우에 해당 희생 데이터를 상기 오프칩 메모리로 이동시켜 줄 수 있다.In one embodiment, the CPU attempts to allocate data to the scratch pad memory to the scratch pad memory for data to be accessed, wherein data to be accessed to the scratch pad memory is not allocated to the scratch pad memory, When there is victim data that is expelled from the priority area, attempts to allocate data or sacrifice data to the scratch pad memory to the access frequency priority area, and if there is victim data to be expelled from the access frequency priority area Chip memory to the off-chip memory.

일 실시예에서, 상기 CPU는, 상기 민감성 우선 영역 내 데이터들을 민감성, 접근빈도 순으로 우선순위를 매겨 정렬시켜 주며, 상기 접근빈도 우선 영역 내 데이터들을 접근빈도, 민감성 순으로 우선순위를 매겨 정렬시켜 줄 수 있다.In one embodiment, the CPU prioritizes data in the sensitivity priority area in the order of sensitivity and frequency of access, arranges data in the priority area in the order of frequency of access and sensitivity, You can give.

일 실시예에서, 상기 CPU는, 상기 민감성 우선 영역에 가용 공간이 없는 경우를 확인하여, 우선순위에 근거하여 상기 스크래치패드 메모리에 접근되는 데이터를 상기 민감성 우선 영역에 할당되지 않도록 하거나, 상기 민감성 우선 영역 내 데이터들 중 희생 데이터를 선택하여 해당 선택된 희생 데이터를 쫓겨나도록 할 수 있다.In one embodiment, the CPU confirms that there is no available space in the sensitive priority area, so that data to be accessed to the scratch pad memory is not allocated to the sensitive priority area based on priority, It is possible to select the sacrifice data among the in-zone data and to eject the selected sacrifice data.

일 실시예에서, 상기 CPU는, 상기 접근빈도 우선 영역에 가용 공간이 없는 경우를 확인하여, 우선순위에 근거하여 할당이 시도된 데이터를 상기 접근빈도 우선 영역에 할당되지 않도록 하거나, 상기 접근빈도 우선 영역 내 데이터들 중 하나를 희생 데이터로 선택하여 해당 선택된 희생 데이터를 쫓겨나도록 할 수 있다.In one embodiment, the CPU confirms the case where there is no available space in the access frequency priority area so as to prevent allocation of the attempted data based on the priority to the access frequency priority area, One of the data in the region may be selected as the sacrificial data and the selected sacrificial data may be ejected.

실시예들 중에서, 스크래치패드 메모리 관리 방법은, 스크래치패드 메모리를 온칩 메모리로 사용하는 컴퓨팅 시스템에서 스크래치패드 메모리를 관리하는 스크래치패드 메모리 관리 방법에 있어서, 상기 스크래치패드 메모리에 접근되는 데이터에 대해 상기 스크래치패드 메모리 내 민감성 우선 영역으로의 할당을 시도하는 단계; 상기 스크래치패드 메모리에 접근되는 데이터가 상기 민감성 우선 영역에 할당되지 않거나, 상기 민감성 우선 영역으로부터 쫓겨나는 희생 데이터가 있는 경우, 상기 스크래치패드 메모리에 접근되는 데이터 또는 희생 데이터에 대해 상기 스크래치패드 메모리 내 접근빈도 우선 영역으로의 할당을 시도하는 단계; 및 상기 접근빈도 우선 영역으로부터 쫓겨나는 희생 데이터가 있는 경우에 해당 희생 데이터를 오프칩 메모리로 이동시켜 주는 단계를 포함한다.In one embodiment, a scratch pad memory management method is provided for managing a scratch pad memory in a computing system using a scratch pad memory as an on-chip memory, the method comprising: Attempting to allocate to the sensitivity priority area in the pad memory; Wherein when data to be accessed to the scratch pad memory is not allocated to the sensitive priority area or there is victim data that is expelled from the sensitive priority area, the access to the scratch pad memory Attempting to allocate to the frequency priority area; And transferring the victim data to the off-chip memory when there is victim data that is expelled from the access frequency priority area.

일 실시예에서, 상기 스크래치패드 메모리 관리 방법은, 상기 스크래치패드 메모리에 접근되는 데이터가 상기 민감성 우선 영역으로의 할당이 성공되었는지를 확인하는 단계; 상기 민감성 우선 영역 내의 데이터들을 민감성, 접근빈도 순으로 우선순위를 매겨 정렬시켜 주는 단계; 상기 민감성 우선 영역에 가용 공간이 없는지를 확인하는 단계; 및 상기 민감성 우선 영역 내 데이터들 중 희생 데이터를 선택하여 해당 선택된 희생 데이터를 쫓겨나도록 하는 단계를 더 포함할 수 있다.In one embodiment, the scratch pad memory management method comprises: confirming whether data to be accessed to the scratch pad memory has been successfully allocated to the sensitive priority area; Arranging the data in the sensitive priority area in order of sensitivity and frequency of access; Confirming that there is no available space in the sensitive priority area; And selecting the sacrifice data among the data in the sensitivity preference zone to expel the selected sacrifice data.

일 실시예에서, 상기 스크래치패드 메모리 관리 방법은, 상기 선택된 희생 데이터가 상기 민감성 우선 영역으로부터 쫓겨났는지를 확인하는 단계; 및 상기 민감성 우선 영역으로부터 쫓겨난 데이터에 대해 상기 접근빈도 우선 영역으로의 할당을 시도하는 단계를 더 포함할 수 있다.In one embodiment, the scratch pad memory management method further comprises: determining whether the selected victim data has been evicted from the sensitive priority area; And attempting to allocate to the access frequency priority area for data that has been expelled from the sensitive priority area.

일 실시예에서, 상기 스크래치패드 메모리 관리 방법은, 상기 스크래치패드 메모리에 접근되는 데이터가 상기 민감성 우선 영역으로의 할당이 성공되지 않는 경우, 상기 우선순위에 근거하여 상기 스크래치패드 메모리에 접근되는 데이터를 상기 민감성 우선 영역에 할당하지 않도록 하는 단계를 더 포함할 수 있다.In one embodiment, the scratch pad memory management method further comprises: if the data to be accessed to the scratch pad memory is not successfully allocated to the sensitive priority area, And not to allocate to the sensitivity priority area.

일 실시예에서, 상기 스크래치패드 메모리 관리 방법은, 상기 스크래치패드 메모리에 접근되는 데이터를 상기 민감성 우선 영역에 할당하지 않도록 한 경우를 확인하는 단계; 및 상기 스크래치패드 메모리에 접근되는 데이터에 대해 상기 접근빈도 우선 영역으로의 할당을 시도하는 단계를 더 포함할 수 있다.In one embodiment, the scratch pad memory management method further comprises: confirming a case in which the data to be accessed to the scratch pad memory is not allocated to the sensitive priority area; And attempting to allocate the data to be accessed to the scratch pad memory to the access frequency priority area.

일 실시예에서, 상기 스크래치패드 메모리 관리 방법은, 상기 스크래치패드 메모리에 접근되는 데이터가 상기 접근빈도 우선 영역으로의 할당이 성공되었는지를 확인하는 단계; 상기 접근빈도 우선 영역 내 데이터들을 접근빈도, 민감성 순으로 우선순위를 매겨 정렬하는 단계; 상기 접근빈도 우선 영역에 가용 공간이 없는지를 확인하는 단계; 및 상기 접근빈도 우선 영역 내 데이터들 중 하나를 희생 데이터로 선택하여 해당 선택된 희생 데이터를 쫓겨나도록 하는 단계를 더 포함할 수 있다.In one embodiment, the scratch pad memory management method further comprises: confirming whether data to be accessed to the scratch pad memory has been successfully allocated to the access frequency priority area; Arranging the data in the access frequency priority area in order of priority in order of frequency of access and sensitivity; Confirming that there is no available space in the access frequency priority area; And selecting one of the data in the access frequency priority area as the sacrificial data so that the selected sacrificial data is evicted.

일 실시예에서, 상기 스크래치패드 메모리 관리 방법은, 상기 선택된 희생 데이터가 상기 민감성 우선 영역으로부터 쫓겨났는지를 확인하는 단계; 및 상기 접근빈도 우선 영역으로부터 쫓겨난 희생 데이터를 상기 오프칩 메모리로 이동시켜 주는 단계를 더 포함할 수 있다.In one embodiment, the scratch pad memory management method further comprises: determining whether the selected victim data has been evicted from the sensitive priority area; And shifting the victim data from the access frequency priority area to the off-chip memory.

일 실시예에서, 상기 스크래치패드 메모리 관리 방법은, 상기 스크래치패드 메모리에 접근되는 데이터가 상기 접근빈도 우선 영역으로의 할당이 성공되지 않는 경우, 상기 우선순위에 근거하여 상기 스크래치패드 메모리에 접근되는 데이터를 상기 접근빈도 우선 영역에 할당하지 않도록 하는 단계를 더 포함할 수 있다.In one embodiment, the scratch pad memory management method further comprises: when data to be accessed to the scratch pad memory is not successfully allocated to the access frequency priority area, data to be accessed to the scratch pad memory To the access frequency priority area.

일 실시예에서, 상기 스크래치패드 메모리 관리 방법은, 상기 스크래치패드 메모리에 접근되는 데이터를 상기 접근빈도 우선 영역에 할당하지 않도록 한 경우를 확인하는 단계; 기밀성 보장이 필요한 민감 데이터가 오프칩 메모리에 저장되는 경우를 감지하는 단계; 상기 민감 데이터를 상기 오프칩 메모리로부터 판독하여 복호화하는 단계; 및 상기 복호화된 데이터를 상기 스크래치패드 메모리에 접근시켜 주는 단계를 더 포함할 수 있다.
In one embodiment, the scratch pad memory management method comprises the steps of: confirming the case where data to be accessed to the scratch pad memory is not allocated to the access frequency priority area; Sensing a case where sensitive data requiring confidentiality is stored in an off-chip memory; Reading and decoding the sensitive data from the off-chip memory; And accessing the decoded data to the scratch pad memory.

본 발명의 일 실시예에 따른 스크래치패드 메모리 관리 시스템 및 방법은, 스크래치패드 메모리를 온칩 메모리로 사용하는 컴퓨팅 시스템의 경우, 해당 컴퓨팅 시스템에서 사용되는 민감한 데이터들에 대해서 기밀성을 보장하면서도 시스템의 성능을 향상시킬 수 있다.
In the case of a computing system using a scratch pad memory as an on-chip memory, a system and method for managing a scratch pad according to an embodiment of the present invention can ensure confidentiality of sensitive data used in the corresponding computing system, Can be improved.

도 1은 본 발명의 일 실시예에 따른 스크래치패드 메모리 관리 시스템을 설명하는 구성 블록도이다.
도 2는 도 1에 있어 스크래치패드 메모리를 설명하는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 스크래치패드 메모리 관리 방법을 설명하는 순서도이다.
1 is a block diagram illustrating a scratch pad memory management system according to an embodiment of the present invention.
2 is a block diagram illustrating the scratch pad memory of FIG.
3 is a flowchart illustrating a method of managing a scratch pad memory according to an embodiment of the present invention.

본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다.The description of the present invention is merely an example for structural or functional explanation, and the scope of the present invention should not be construed as being limited by the embodiments described in the text. That is, the embodiments are to be construed as being variously embodied and having various forms, so that the scope of the present invention should be understood to include equivalents capable of realizing technical ideas.

한편, 본 발명에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.Meanwhile, the meaning of the terms described in the present invention should be understood as follows.

"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.The terms "first "," second ", and the like are intended to distinguish one element from another, and the scope of the right should not be limited by these terms. For example, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.

어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" to another element, it may be directly connected to the other element, but there may be other elements in between. On the other hand, when an element is referred to as being "directly connected" to another element, it should be understood that there are no other elements in between. On the other hand, other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.It should be understood that the singular " include "or" have "are to be construed as including a stated feature, number, step, operation, component, It is to be understood that the combination is intended to specify that it does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In each step, the identification code (e.g., a, b, c, etc.) is used for convenience of explanation, the identification code does not describe the order of each step, Unless otherwise stated, it may occur differently from the stated order. That is, each step may occur in the same order as described, may be performed substantially concurrently, or may be performed in reverse order.

본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한, 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can be embodied as computer-readable code on a computer-readable recording medium, and the computer-readable recording medium includes all kinds of recording devices for storing data that can be read by a computer system . Examples of the computer-readable recording medium include a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like, and also implemented in the form of a carrier wave (for example, transmission over the Internet) . In addition, the computer-readable recording medium may be distributed over network-connected computer systems so that computer readable codes can be stored and executed in a distributed manner.

여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
All terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs, unless otherwise defined. Commonly used predefined terms should be interpreted to be consistent with the meanings in the context of the related art and can not be interpreted as having ideal or overly formal meaning unless explicitly defined in the present invention.

도 1은 본 발명의 일 실시예에 따른 스크래치패드 메모리 관리 시스템을 설명하는 구성 블록도이다.1 is a block diagram illustrating a scratch pad memory management system according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 스크래치패드 메모리 관리 시스템은, 도 1에 도시된 바와 같이, 보안 공격으로부터 안전한 신뢰 영역인 온칩 영역(100)과, 보안 공격으로부터 상대적으로 안전하지 못한 비신뢰 영역인 오프칩(Off-chip) 영역(200)의 하드웨어 플랫폼(Hardware Platform)으로 이루어진다.As shown in FIG. 1, the scratch pad memory management system according to an embodiment of the present invention includes an on-chip area 100, which is a trusted area from a security attack, and an off- And a hardware platform of an off-chip area 200.

온칩 영역(100)은, CPU(110), 스크래치패드 메모리(120), DMA(Direct Memory Access) 엔진(130), 암호화 엔진(140)을 포함한다.The on-chip area 100 includes a CPU 110, a scratch pad memory 120, a DMA (Direct Memory Access) engine 130, and an encryption engine 140.

CPU(110)는, 효율적인 온칩 영역(100)의 스크래치패드 메모리(120)의 관리를 수행하도록 하는데, 이때 기밀성 보장이 필요한 민감한 데이터들이 보안 공격에 취약한 오프칩 메모리(210)에 저장될 경우를 감지하여 암호화 엔진(140) 및 DMA 엔진(130)의 동작을 제어함으로써, 민감한 데이터들에 대해서 기밀성을 보장하면서도 시스템의 성능을 향상시킬 수 있도록 스크래치패드 메모리(120)의 관리를 효율적으로 수행하도록 한다.The CPU 110 performs efficient management of the scratch pad memory 120 of the on-chip area 100. At this time, when the sensitive data requiring the security of confidentiality is detected in the off-chip memory 210 vulnerable to a security attack The operation of the encryption engine 140 and the DMA engine 130 are controlled to effectively manage the scratch pad memory 120 so as to improve the performance of the system while ensuring confidentiality of sensitive data.

그리고 CPU(110)는, 스크래치패드 메모리(120)에 접근되는 데이터에 대해 민감성 우선 영역(121)으로의 할당을 시도하며, 이에 스크래치패드 메모리(120)에 접근되는 데이터가 민감성 우선 영역(121)에 할당되지 않거나, 희생 데이터가 민감성 우선 영역(121)에서 쫓겨났는지를 확인하여, 스크래치패드 메모리(120)에 접근되는 데이터 또는 희생 데이터에 대한 접근빈도 우선 영역(122)으로의 할당을 시도하며, 그런 다음에 접근빈도 우선 영역(122)으로부터 쫓겨난 희생 데이터가 있는지를 확인하여 해당 희생 데이터를 오프칩 메모리(210)로 이동시켜 준다.The CPU 110 attempts to allocate the data to be accessed to the scratch pad memory 120 to the sensitive priority area 121 so that data to be accessed to the scratch pad memory 120 is transferred to the sensitive priority area 121, Attempts to allocate the data or the victim data to the scratch pad memory 120 to the access frequency priority area 122 by confirming that the victim data is not allocated to the scratch pad memory 120 or that the victim data has been expelled from the sensitive priority area 121, Then, it is checked whether or not there is sacrificial data that has been kicked out of the access frequency priority area 122, and the corresponding sacrificial data is moved to the off-chip memory 210.

여기서, CPU(110)는, 민감성 우선 영역(121) 내 데이터들을 민감성, 접근빈도 순으로 우선순위를 매겨 정렬시켜 주며, 또한 접근빈도 우선 영역(122) 내 데이터들을 접근빈도, 민감성 순으로 우선순위를 매겨 정렬시켜 준다. 또한, CPU(110)는, 민감성 우선 영역(121)에 가용 공간이 없는 경우를 확인하여, 우선순위에 근거하여 스크래치패드 메모리(120)에 접근되는 데이터를 민감성 우선 영역(121)에 할당되지 않도록 하거나, 민감성 우선 영역(121) 내 데이터들 중 희생 데이터를 선택하여 해당 선택된 희생 데이터를 쫓겨나도록 하며, 그런 다음에 접근빈도 우선 영역(122)에 가용 공간이 없는 경우를 확인하여, 우선순위에 근거하여 할당이 시도된 데이터를 접근빈도 우선 영역(122)에 할당되지 않도록 하거나, 접근빈도 우선 영역(122) 내 데이터들 중 하나를 희생 데이터로 선택하여 해당 선택된 희생 데이터를 쫓겨나도록 한다.Here, the CPU 110 prioritizes and arranges the data in the sensitive priority area 121 in the order of sensitivity and access frequency, and also arranges the data in the access frequency priority area 122 in the order of access frequency and sensitivity . The CPU 110 also checks the case where there is no available space in the sensitivity priority area 121 so that data to be accessed to the scratch pad memory 120 based on the priority is not allocated to the sensitivity priority area 121 Alternatively, it is possible to select the victim data among the data in the sensitive priority area 121 and to expel the selected victim data. Then, it is confirmed whether there is no available space in the access frequency priority area 122, So that the attempted data is not allocated to the access frequency priority area 122 or one of the data in the access frequency priority area 122 is selected as the sacrificial data so that the selected sacrificial data is driven out.

스크래치패드 메모리(120)는, 비교적 적은 용량의 메모리인 경우에 소수의 민감한 데이터 또는 고사용 빈도의 데이터를 저장하기 위해 사용된다.The scratch pad memory 120 is used to store a small number of sensitive data or a high frequency of use data in the case of a relatively small capacity memory.

DMA 엔진(130)은, CPU(110)의 제어에 따라서 온칩 영역(100)의 스크래치패드 메모리(120)와 오프칩 영역(200)의 오프칩 메모리(210) 간의 데이터를 전송하기 위해 사용된다. 이때, DMA 엔진(130)은, CPU(110)의 제어에 의해서 암호화 엔진(140)로부터 전달되는 복호화된 데이터들을 스크래치패드 메모리(120)에 저장시켜 준다.The DMA engine 130 is used to transfer data between the scratch pad memory 120 of the on-chip area 100 and the off-chip memory 210 of the off-chip area 200 under the control of the CPU 110. [ At this time, the DMA engine 130 stores the decrypted data transferred from the encryption engine 140 under the control of the CPU 110 in the scratch pad memory 120.

암호화 엔진(140)은, CPU(110)의 제어에 따라서 민감한 데이터에 대한 부호화 및 복호화 연산을 수행한다. 이때, 암호화 엔진(140)은, CPU(110)의 제어에 의해서 기밀성 보장이 필요한 민감한 데이터들을 오프칩 영역(200)의 오프칩 메모리(210)로부터 판독하여 복호화한 후에 해당 복호화된 데이터들을 DMA 엔진(130)으로 전달한다.The encryption engine 140 performs encoding and decoding operations on sensitive data under the control of the CPU 110. [ At this time, the encryption engine 140 reads sensitive data that need to ensure airtightness from the off-chip memory 210 of the off-chip area 200 under the control of the CPU 110 and decodes the decoded data, (130).

오프칩 영역(200)은, 보안 공격에 취약한 오프칩 메모리(210)를 포함하는데, 여기서 오프칩 메모리(210)는 보안 공격의 대상이 되는 오프칩 영역(200)에 위치하고 기밀성 보장이 필요한 민감한 데이터들을 저장할 수 있다. 이때, 해당 민감한 데이터들은 CPU(110)의 제어에 따라서 암호화 엔진(140)에 의해 부호화되어 오프칩 메모리(210)에 저장된다.The off-chip region 200 includes an off-chip memory 210 that is vulnerable to a security attack wherein the off-chip memory 210 is located in an off-chip region 200 that is the subject of a security attack and contains sensitive data Lt; / RTI > At this time, the sensitive data is encoded by the encryption engine 140 under the control of the CPU 110, and is stored in the off-chip memory 210.

상술한 바와 같은 구성을 가진 본 발명의 일 실시예에 따른 스크래치패드 메모리 관리 시스템은, 기밀성 보장이 필요한 민감한 데이터들이 보안 공격에 취약한 오프칩 메모리(210)에 저장될 경우에, CPU(110)에 의해서 사용되거나 온칩 영역(100)의 스크래치패드 메모리(120)로 할당되도록 하기 위해서, 온칩 영역(100)으로 이동 시에 암호화 엔진(140)에 의해 복호화되어 이동되도록 하며, 이때 비교적 처리시간이 긴 부호화 및 복호화 작업의 횟수를 최소화하기 위해서, 민감한 데이터들을 최대한 온칩 영역(100)의 스크래치패드 메모리(120)에 적재시켜 실행하도록 한다. 왜냐하면, 오프칩 메모리(210)는 온칩 영역(100)의 스크래치패드 메모리(120)에 비해 접근 시간이 비교적 오래 소요되므로, 빈번하게 사용되는 데이터들은 스크래치패드 메모리(120)에 적재시켜 실행되도록 함으로써, 시스템의 성능 향상을 위해서 이다.
In the scratch pad memory management system according to an embodiment of the present invention having the above-described structure, when the sensitive data requiring security of confidentiality is stored in the off-chip memory 210 vulnerable to a security attack, Chip region 100. In this case, the encryption engine 140 decrypts and moves the encrypted data to the on-chip area 100 in order to allocate the encrypted data to the on-chip area 100 or allocate the data to the scratch pad memory 120 of the on- Chip area 100 to minimize the number of decoding operations and the number of decoding operations. Since the off-chip memory 210 requires a relatively long access time compared to the scratch pad memory 120 of the on-chip area 100, the frequently used data are loaded and executed in the scratch pad memory 120, This is to improve the performance of the system.

도 2는 도 1에 있어 스크래치패드 메모리를 설명하는 블록도이다.2 is a block diagram illustrating the scratch pad memory of FIG.

스크래치패드 메모리(120)는, 도 2에 도시된 바와 같이, 데이터를 관리하기 위해서, 메모리 영역을 논리적으로 민감성 우선 영역(121)과 접근빈도 우선 영역(122)으로 나눈다.The scratch pad memory 120 logically divides the memory area into the sensitive priority area 121 and the access frequency priority area 122 in order to manage data, as shown in Fig.

민감성 우선 영역(121)은, CPU(110)에 의해 기밀성 보장이 필요한 민감한 데이터들에 대해서 기밀성 정도를 미리 등급화하여 설정해 두어, 해당 민감한 데이터를 우선적으로 할당하도록 하기 위한 민감성 우선 관리 정책이 적용되는 영역으로, 민감한 데이터 접근에 대한 부호화 및 복호화 연산의 횟수를 줄임으로써 시스템의 성능 향상을 보이고자 하는 메모리 영역이다.The sensitivity priority area 121 is a sensitivity priority management policy for prioritizing and setting the degree of confidentiality of the sensitive data that needs to ensure confidentiality by the CPU 110 and assigning the sensitive data with priority Area is a memory area where performance of the system is improved by reducing the number of encoding and decoding operations for sensitive data access.

접근빈도 우선 영역(122)은, CPU(110)에 의해 자주 사용되는 데이터에 대해서 접근빈도를 미리 확인하여, 자주 사용되는 데이터를 우선적으로 할당시키도록 하기 위한 접근빈도 우선 관리 정책이 적용되는 영역으로, 비교적 오랜 시간이 소요되는 오프칩 메모리(210)의 접근 횟수를 줄임으로써 시스템의 성능 향상을 보이고자 하는 메모리 영역이다.The access frequency priority area 122 is an area to which an access frequency priority management policy is applied in order to prioritize frequently used data by preliminarily checking access frequency with respect to data frequently used by the CPU 110 And a memory area where performance of the system is improved by reducing the number of accesses of the off-chip memory 210, which takes a relatively long time.

그리고 민감성 우선 영역(121)과 접근빈도 우선 영역(122)의 크기는, CPU(110)의 제어에 의해 실행되는 워크로드(Workload)에 대한 정적 분석 결과를 통해 설계 시점에 결정되도록 함으로써, CPU(110)는 해당 결정된 각 메모리 영역의 크기에 따라 스크래치패드 메모리(120)를 민감성 우선 영역(121)과 접근빈도 우선 영역(122)로 나누어 미리 설정해 두도록 한다.
The size of the sensitivity priority area 121 and the frequency of access priority area 122 are determined at the designing time through the static analysis result of the workload executed under the control of the CPU 110, 110 may divide the scratch pad memory 120 into the sensitive priority area 121 and the access frequency priority area 122 according to the determined size of each memory area.

도 3은 본 발명의 일 실시예에 따른 스크래치패드 메모리 관리 방법을 설명하는 순서도이다.3 is a flowchart illustrating a method of managing a scratch pad memory according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 스크래치패드 메모리 관리 방법은, 도 3에 도시된 바와 같이, 스크래치패드 메모리(120)를 온칩 메모리로 사용하는 컴퓨팅 시스템에서 스크래치패드 메모리(120)를 관리함에 있어서, 우선 기밀성 보장이 필요한 민감한 데이터들이 보안 공격에 취약한 오프칩 메모리(210)에 저장될 경우에, CPU(110)에서 이를 감지하여 DMA 엔진(130) 및 암호화 엔진(140)의 동작을 제어하도록 한다.3, in managing a scratch pad memory 120 in a computing system using a scratch pad memory 120 as an on-chip memory, a scratch pad memory management method according to an embodiment of the present invention includes: When the sensitive data requiring confidentiality is stored in the off-chip memory 210 vulnerable to a security attack, the CPU 110 detects this and controls the operations of the DMA engine 130 and the encryption engine 140.

이때, CPU(110)에 의해서 사용되도록 하거나, 온칩 영역(100)의 스크래치패드 메모리(120)로 할당되도록 하기 위해서, 암호화 엔진(140)은 CPU(110)의 제어에 따라 기밀성 보장이 필요한 민감한 데이터들을 오프칩 영역(200)의 오프칩 메모리(210)로부터 판독하여 복호화한 후에, 해당 복호화된 데이터들을 DMA 엔진(130)으로 전달한다.At this time, in order to be used by the CPU 110 or to be allocated to the scratch pad memory 120 of the on-chip area 100, the encryption engine 140 controls the CPU 110 to read sensitive data From the off-chip memory 210 of the off-chip area 200 and transfers the decoded data to the DMA engine 130.

이에, DMA 엔진(130)은, CPU(110)의 제어에 따라 암호화 엔진(140)로부터 전달되는 복호화된 데이터들을 스크래치패드 메모리(120)에 할당(즉, 접근)시켜 주게 된다.The DMA engine 130 allocates (i.e., accesses) the decrypted data transferred from the encryption engine 140 to the scratch pad memory 120 under the control of the CPU 110.

이때, CPU(110)는, 스크래치패드 메모리(120)에 접근되는 데이터에 대해서 우선적으로 민감성 우선 영역(121)으로의 할당을 시도하도록 하며(S301), 이에 스크래치패드 메모리(120)에 접근되는 데이터가 민감성 우선 영역(121)으로의 할당이 성공되었는지를 확인하도록 한다(S302).At this time, the CPU 110 causes the scratch pad memory 120 to preferentially allocate the data to be accessed to the scratch pad memory 120 (S301) (S302) whether or not the assignment to the sensitivity priority area 121 is successful.

만약에, 상술한 단계(S302)에서 스크래치패드 메모리(120)에 접근되는 데이터가 민감성 우선 영역(121)에 할당되었다면, CPU(110)는 민감성 우선 영역(121) 내의 데이터들을 민감성, 접근빈도 순으로 우선순위를 매겨서 정렬시켜 준다(S303).If the data to be accessed to the scratch pad memory 120 in the above-described step S302 is allocated to the sensitivity priority area 121, the CPU 110 sets the data in the sensitivity priority area 121 as sensitivity, (S303).

그런 다음에, CPU(110)는 민감성 우선 영역(121)에 가용 공간이 없는 경우에 민감성 우선 영역(121) 내 데이터들 중 희생 데이터를 선택하도록 하며, 이에 해당 선택된 희생 데이터가 민감성 우선 영역(121)으로부터 쫓겨났는지를 확인한다. 다시 말해서, CPU(110)는 민감성 우선 영역(121)에 가용 공간이 없어 민감성 우선 영역(121) 내 데이터들 중 하나를 희생 데이터로 하였는지(즉, 희생 데이터가 존재하는지)를 확인한다(S304).The CPU 110 then selects the sacrifice data among the data in the susceptibility priority area 121 when there is no available space in the susceptibility priority area 121, ). In other words, the CPU 110 confirms whether there is no available space in the sensitive priority area 121 and that one of the data in the sensitive priority area 121 is used as the victim data (i.e., whether or not the victim data exists) (S304) .

그리고 상술한 단계(S302)에서 스크래치패드 메모리(120)에 접근되는 데이터가 민감성 우선 영역(121)에 할당되지 않았거나, 상술한 단계(S304)에서 민감성 우선 영역(121) 내 데이터들 중 희생 데이터가 선택되어 해당 선택된 희생 데이터가 민감성 우선 영역(121)으로부터 쫓겨난 경우, CPU(110)는 스크래치패드 메모리(120)에 접근되는 데이터 또는 희생 데이터에 대해서 접근빈도 우선 영역(122)으로의 할당을 시도하도록 하며(S305), 이에 스크래치패드 메모리(120)에 접근되는 데이터가 접근빈도 우선 영역(122)으로의 할당이 성공되었는지를 확인하도록 한다(S306).If the data to be accessed to the scratch pad memory 120 in the above-described step S302 is not allocated to the sensitivity priority area 121 or the data of the data in the sensitivity priority area 121 in the above- The CPU 110 allocates the data or the victim data to be accessed to the scratch pad memory 120 to the access frequency priority area 122 in the case where the selected victim data is selected from the sensitivity priority area 121 (S305). Then, it is determined whether data to be accessed to the scratch pad memory 120 is successfully allocated to the access frequency priority area 122 (S306).

만약에, 상술한 단계(S306)에서 스크래치패드 메모리(120)에 접근되는 데이터가 접근빈도 우선 영역(122)에 할당되었다면, CPU(110)는 접근빈도 우선 영역(122) 내의 데이터들을 접근빈도, 민감성 순으로 우선순위를 매겨서 정렬시켜 준다(S307).If the data to be accessed to the scratch pad memory 120 in the above-described step S306 is allocated to the access frequency priority area 122, the CPU 110 transfers the data in the access frequency priority area 122 to the access frequency priority area 122, Sensitivity in order of priority (S307).

그런 다음에, CPU(110)는 접근빈도 우선 영역(122)에 가용 공간이 없는 경우에 접근빈도 우선 영역(122) 내 데이터들 중 희생 데이터를 선택하도록 하며, 이에 해당 선택된 희생 데이터가 접근빈도 우선 영역(122)으로부터 쫓겨났는지를 확인한다. 다시 말해서, CPU(110)는 접근빈도 우선 영역(122)에 가용 공간이 없어 접근빈도 우선 영역(122) 내 데이터들 중 하나를 희생 데이터로 하였는지(즉, 희생 데이터가 존재하는지)를 확인한다(S308).Then, the CPU 110 causes the access frequency priority area 122 to select the victim data among the data in the access frequency priority area 122, and if the selected victim data has priority over the access frequency priority Area 122. [0064] In other words, the CPU 110 confirms that there is no available space in the access frequency priority area 122 and that one of the data in the access frequency priority area 122 is the sacrificial data (i.e., the victim data exists) ( S308).

이때, 상술한 단계(S308)에서 접근빈도 우선 영역(122) 내 데이터들 중 희생 데이터가 선택되어 희생 데이터가 접근빈도 우선 영역(122)으로부터 쫓겨난 경우, CPU(110)는 접근빈도 우선 영역(122)으로부터 쫓겨난 희생 데이터가 있을 시에 해당 희생 데이터를 오프칩 메모리(210)로 이동시켜 주게 된다(S309).At this time, if the victim data among the data in the access frequency priority area 122 is selected and the victim data is excluded from the access frequency priority area 122 in the above-described step S308, the CPU 110 sets the access frequency priority area 122 to the off-chip memory 210 (S309).

반면에, 상술한 단계(S304)에서 희생 데이터가 존재하지 않는 경우, 상술한 단계(S306)에서 접근빈도 우선 영역(122)으로의 할당이 성공하지 않은 경우, 또는 상술한 단계(S308)에서 희생 데이터가 존재하지 않는 경우, CPU(110)는 DMA 엔진(130)가 암호화 엔진(140)로부터 전달되는 복호화된 데이터들을 스크래치패드 메모리(120)에 접근)시켜 주도록 제어한다(S310).On the other hand, when the sacrificial data does not exist in the above-described step S304, the allocation to the access frequency priority area 122 in the above-described step S306 is not successful, or when the sacrificial data is not sacrificed in the above- If there is no data, the CPU 110 controls the DMA engine 130 to access the scratch pad memory 120 with the decrypted data transmitted from the encryption engine 140 (S310).

상술한 바와 같은 동작을 수행하는 본 발명의 일 실시예에 따른 스크래치패드 메모리 관리 방법은, 크게 민감성 우선 영역(121)으로의 할당 시도, 접근빈도 우선 영역(122)으로의 할당 시도, 오프칩 메모리(210)로의 이동으로 이루어진다.The method for managing a scratch pad memory according to an embodiment of the present invention for performing the operations as described above is divided into an attempt to allocate to the sensitivity priority area 121, an allocation attempt to the access frequency priority area 122, (210).

첫 번째로, 스크래치패드 메모리(120)에 접근되는 데이터에 대해 우선적으로 민감성 우선 영역(121)으로의 할당을 시도하게 된다.First, data to be accessed to the scratch pad memory 120 is firstly attempted to be allocated to the sensitivity priority area 121.

이때, 민감성 우선 영역(121) 내 데이터들은 민감성, 접근빈도 순으로 우선순위가 매겨져 정렬된다. 만약에 민감성 우선 영역(121)에 가용 공간이 없을 경우에는, 우선순위에 근거하여 스크래치패드 메모리(120)에 접근되는 데이터가 민감성 우선 영역(121)에 할당되지 않거나 민감성 우선 영역(121) 내 데이터들 중 희생 데이터가 선택되어 쫓겨나게 된다.At this time, the data in the sensitivity priority area 121 are sorted in order of sensitivity and frequency of access. If there is no available space in the sensitivity priority area 121, data to be accessed to the scratch pad memory 120 based on the priority is not allocated to the sensitivity priority area 121 or data in the sensitivity priority area 121 The victim data is selected and kicked out.

두 번째로, 스크래치패드 메모리(120)에 접근되는 데이터가 민감성 우선 영역(121)에 할당되지 않았거나, 희생 데이터가 민감성 우선 영역(121)에서 쫓겨났을 경우, 스크래치패드 메모리(120)에 접근되는 데이터 또는 희생 데이터에 대한 접근빈도 우선 영역(122)으로의 할당을 시도하게 된다.Secondly, when data to be accessed to the scratch pad memory 120 is not allocated to the sensitive priority area 121, or when the victim data is driven out of the sensitive priority area 121, An attempt is made to allocate the access frequency to the priority area 122 for the data or the victim data.

이때, 접근빈도 우선 영역(122) 내 데이터들은 접근빈도, 민감성 순으로 우선순위가 매겨져 정렬된다. 만약에 접근빈도 우선 영역(122)에 가용 공간이 없을 경우에는, 우선순위에 근거하여 할당이 시도된 데이터가 접근빈도 우선 영역(122)에 할당되지 않거나, 접근빈도 우선 영역(122) 내 데이터들 중 하나가 희생 데이터로 선택되어 쫓겨나게 된다.At this time, the data in the access frequency priority area 122 is prioritized and sorted in the order of access frequency and sensitivity. If there is no available space in the access frequency priority area 122, data for which allocation is attempted based on the priority is not allocated to the access frequency priority area 122, or data in the access frequency priority area 122 One of which is selected as the victim data and then kicked out.

세 번째로, 접근빈도 우선 영역(122)으로부터 쫓겨난 희생 데이터가 있을 시에 해당 희생 데이터를 오프칩 메모리(210)로 옮겨지도록 한다.
Thirdly, when there is victim data that has been kicked off from the access frequency priority area 122, the victim data is moved to the off-chip memory 210.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims It can be understood that

100: 온칩 영역
110: CPU
120: 스크래치패드 메모리
121: 민감성 우선 영역
122: 접근빈도 우선 영역
130: DMA 엔진
140: 암호화 엔진
200: 오프칩 영역
210: 오프칩 메모리
100: on-chip area
110: CPU
120: scratch pad memory
121: Sensitivity priority area
122: access frequency priority area
130: DMA engine
140: Encryption engine
200: Off-chip area
210: off-chip memory

Claims (16)

삭제delete 스크래치패드 메모리를 온칩 메모리로 사용하는 컴퓨팅 시스템에서 스크래치 패드 메모리를 관리하는 스크래치패드 메모리 관리 시스템에 있어서,
상기 스크래치패드 메모리와 오프칩 영역의 오프칩 메모리 사이의 데이터를 전송하기 위한 DMA 엔진;
기밀성 보장이 필요한 민감 데이터에 대한 부호화 및 복호화 연산을 수행하기 위한 암호화 엔진; 및
상기 민감 데이터가 상기 오프칩 메모리에 저장되는 경우를 감지하여 상기 암호화 엔진 및 상기 DMA 엔진의 동작을 제어해 상기 스크래치패드 메모리의 관리를 수행하는 CPU를 포함하고,
상기 스크래치패드 메모리는 상기 민감 데이터를 우선적으로 할당하는 민감성 우선 관리 정책을 적용하는 민감성 우선 영역과, 자주 사용되는 데이터를 우선적으로 할당시키는 접근빈도 우선 관리 정책을 적용하는 접근빈도 우선 영역으로 나누는 것을 특징으로 하는 스크래치패드 메모리 관리 시스템.
A scratch pad memory management system for managing a scratch pad memory in a computing system using the scratch pad memory as an on-chip memory,
A DMA engine for transferring data between the scratch pad memory and the off-chip memory of the off-chip area;
An encryption engine for performing encoding and decoding operations on sensitive data requiring confidentiality; And
And a CPU for detecting the case where the sensitive data is stored in the off-chip memory and controlling operations of the encryption engine and the DMA engine to manage the scratch pad memory,
The scratch pad memory is divided into a sensitivity priority area for applying a sensitivity priority management policy for preferentially allocating the sensitive data and an access frequency priority area for applying an access frequency priority management policy for preferentially allocating frequently used data A scratch pad memory management system.
제2항에 있어서, 상기 CPU는,
상기 민감성 우선 영역과 상기 접근빈도 우선 영역의 크기를 실행되는 워크로드에 대한 정적 분석 결과를 통해 설계 시점에 결정하며, 해당 결정된 크기에 따라 상기 스크래치패드 메모리를 상기 민감성 우선 영역과 상기 접근빈도 우선 영역으로 나누어 설정하는 것을 특징으로 하는 스크래치패드 메모리 관리 시스템.
3. The apparatus according to claim 2,
Determining a size of the sensitivity priority area and the access frequency priority area at a design time through a static analysis result of a workload to be executed, and setting the scratch pad memory to the sensitivity priority area and the access frequency priority area The scratch pad memory management system comprising:
제2항에 있어서, 상기 CPU는,
상기 스크래치패드 메모리에 접근되는 데이터에 대해 상기 민감성 우선 영역으로의 할당을 시도하며, 상기 스크래치패드 메모리에 접근되는 데이터가 상기 민감성 우선 영역에 할당되지 않거나, 상기 민감성 우선 영역으로부터 쫓겨나는 희생 데이터가 있는 경우에, 상기 스크래치패드 메모리에 접근되는 데이터 또는 희생 데이터에 대해 상기 접근빈도 우선 영역으로의 할당을 시도하며, 상기 접근빈도 우선 영역으로부터 쫓겨나는 희생 데이터가 있는 경우에 해당 희생 데이터를 상기 오프칩 메모리로 이동시켜 주는 것을 특징으로 하는 스크래치패드 메모리 관리 시스템.
3. The apparatus according to claim 2,
Attempting to allocate data to the scratch pad memory to the scratch pad memory, wherein data to be accessed to the scratch pad memory is not allocated to the scratch pad area, In the case where there is a victim data to be exited from the access frequency priority area, the victim data is stored in the off-chip memory To the scratch pad memory management system.
제2항에 있어서, 상기 CPU는,
상기 민감성 우선 영역 내 데이터들을 민감성, 접근빈도 순으로 우선순위를 매겨 정렬시켜 주며, 상기 접근빈도 우선 영역 내 데이터들을 접근빈도, 민감성 순으로 우선순위를 매겨 정렬시켜 주는 것을 특징으로 하는 스크래치패드 메모리 관리 시스템.
3. The apparatus according to claim 2,
And arranges the data in the sensitivity priority area in order of sensitivity and access frequency in order of priority and arranges the data in the priority area in order of priority in order of frequency of access and sensitivity. system.
제5항에 있어서, 상기 CPU는,
상기 민감성 우선 영역에 가용 공간이 없는 경우를 확인하여, 우선순위에 근거하여 상기 스크래치패드 메모리에 접근되는 데이터를 상기 민감성 우선 영역에 할당되지 않도록 하거나, 상기 민감성 우선 영역 내 데이터들 중 희생 데이터를 선택하여 해당 선택된 희생 데이터를 쫓겨나도록 하는 것을 특징으로 하는 스크래치패드 메모리 관리 시스템.
6. The system according to claim 5,
The method comprising the steps of: confirming whether there is no available space in the sensitive priority area, preventing data to be accessed to the scratch pad memory from being allocated to the sensitive priority area based on the priority, So that the selected sacrificial data is ejected.
제5항에 있어서, 상기 CPU는,
상기 접근빈도 우선 영역에 가용 공간이 없는 경우를 확인하여, 우선순위에 근거하여 할당이 시도된 데이터를 상기 접근빈도 우선 영역에 할당되지 않도록 하거나, 상기 접근빈도 우선 영역 내 데이터들 중 하나를 희생 데이터로 선택하여 해당 선택된 희생 데이터를 쫓겨나도록 하는 것을 특징으로 하는 스크래치패드 메모리 관리 시스템.
6. The system according to claim 5,
It is possible to confirm that there is no available space in the access frequency priority area so as to prevent the data to be allocated based on the priority from being allocated to the access frequency priority area, And the selected sacrificial data is ejected from the selected scratch pad memory.
삭제delete 스크래치패드 메모리를 온칩 메모리로 사용하는 컴퓨팅 시스템에서 스크래치패드 메모리를 관리하는 스크래치패드 메모리 관리 방법에 있어서,
상기 스크래치패드 메모리에 접근되는 데이터에 대해 상기 스크래치패드 메모리 내 민감성 우선 영역으로의 할당을 시도하는 단계;
상기 스크래치패드 메모리에 접근되는 데이터가 상기 민감성 우선 영역에 할당되지 않거나, 상기 민감성 우선 영역으로부터 쫓겨나는 희생 데이터가 있는 경우, 상기 스크래치패드 메모리에 접근되는 데이터 또는 희생 데이터에 대해 상기 스크래치패드 메모리 내 접근빈도 우선 영역으로의 할당을 시도하는 단계; 및
상기 접근빈도 우선 영역으로부터 쫓겨나는 희생 데이터가 있는 경우에 해당 희생 데이터를 오프칩 메모리로 이동시켜 주는 단계를 포함하고,
상기 민감성 우선 영역으로의 할당을 시도하는 단계는
상기 스크래치패드 메모리에 접근되는 데이터가 상기 민감성 우선 영역으로의 할당이 성공되었는지를 확인하는 단계;
상기 민감성 우선 영역 내의 데이터들을 민감성, 접근빈도 순으로 우선순위를 매겨 정렬시켜 주는 단계;
상기 민감성 우선 영역에 가용 공간이 없는지를 확인하는 단계; 및
상기 민감성 우선 영역 내 데이터들 중 희생 데이터를 선택하여 해당 선택된 희생 데이터를 쫓겨나도록 하는 단계를 더 포함하는 것을 특징으로 하는 스크래치 패드 메모리 관리 방법.
A scratch pad memory management method for managing a scratch pad memory in a computing system using a scratch pad memory as an on-chip memory,
Attempting to assign data to the scratch pad memory to the sensitive priority area in the scratch pad memory;
Wherein when data to be accessed to the scratch pad memory is not allocated to the sensitive priority area or there is victim data that is expelled from the sensitive priority area, the access to the scratch pad memory Attempting to allocate to the frequency priority area; And
And transferring the victim data to the off-chip memory when there is victim data that is expelled from the access frequency priority area,
The step of attempting to allocate to the sensitive priority area
Confirming whether data to be accessed to the scratch pad memory has been successfully allocated to the sensitive priority area;
Arranging the data in the sensitive priority area in order of sensitivity and frequency of access;
Confirming that there is no available space in the sensitive priority area; And
And selecting the victim data from among the data in the sensitive priority area to expel the selected victim data.
제9항에 있어서,
상기 선택된 희생 데이터가 상기 민감성 우선 영역으로부터 쫓겨났는지를 확인하는 단계; 및
상기 민감성 우선 영역으로부터 쫓겨난 데이터에 대해 상기 접근빈도 우선 영역으로의 할당을 시도하는 단계를 더 포함하는 것을 특징으로 하는 스크래치패드 메모리 관리 방법.
10. The method of claim 9,
Confirming whether the selected victim data has been evicted from the sensitive priority area; And
Further comprising the step of attempting to allocate to the frequency of access priority area data that is expelled from the sensitive priority area.
제9항에 있어서,
상기 스크래치패드 메모리에 접근되는 데이터가 상기 민감성 우선 영역으로의 할당이 성공되지 않는 경우, 상기 우선순위에 근거하여 상기 스크래치패드 메모리에 접근되는 데이터를 상기 민감성 우선 영역에 할당하지 않도록 하는 단계를 더 포함하는 것을 특징으로 하는 스크래치패드 메모리 관리 방법.
10. The method of claim 9,
And if the data to be accessed to the scratch pad memory is not successfully allocated to the sensitive priority area, not allocating the data to be accessed to the scratch pad memory to the sensitive priority area based on the priority The scratch pad memory management method comprising:
제11항에 있어서,
상기 스크래치패드 메모리에 접근되는 데이터를 상기 민감성 우선 영역에 할당하지 않도록 한 경우를 확인하는 단계; 및
상기 스크래치패드 메모리에 접근되는 데이터에 대해 상기 접근빈도 우선 영역으로의 할당을 시도하는 단계를 더 포함하는 것을 특징으로 하는 스크래치패드 메모리 관리 방법.
12. The method of claim 11,
Confirming a case where data to be accessed to the scratch pad memory is not allocated to the sensitive priority area; And
Further comprising attempting to allocate data to the scratch pad memory to the access frequency priority area. ≪ RTI ID = 0.0 > 8. < / RTI >
제9항에 있어서, 상기 접근빈도 우선 영역으로의 할당을 시도하는 단계는
상기 스크래치패드 메모리에 접근되는 데이터가 상기 접근빈도 우선 영역으로의 할당이 성공되었는지를 확인하는 단계;
상기 접근빈도 우선 영역 내 데이터들을 접근빈도, 민감성 순으로 우선순위를 매겨 정렬하는 단계;
상기 접근빈도 우선 영역에 가용 공간이 없는지를 확인하는 단계; 및
상기 접근빈도 우선 영역 내 데이터들 중 하나를 희생 데이터로 선택하여 해당 선택된 희생 데이터를 쫓겨나도록 하는 단계를 더 포함하는 것을 특징으로 하는 스크래치패드 메모리 관리 방법.
10. The method of claim 9, wherein attempting to allocate to the access frequency priority area
Confirming whether data to be accessed to the scratch pad memory has been successfully allocated to the access frequency priority area;
Arranging the data in the access frequency priority area in order of priority in order of frequency of access and sensitivity;
Confirming that there is no available space in the access frequency priority area; And
Further comprising selecting one of the data in the access frequency priority area as the victim data so as to expel the selected victim data.
제13항에 있어서,
상기 선택된 희생 데이터가 상기 민감성 우선 영역으로부터 쫓겨났는지를 확인하는 단계; 및
상기 접근빈도 우선 영역으로부터 쫓겨난 희생 데이터를 상기 오프칩 메모리로 이동시켜 주는 단계를 더 포함하는 것을 특징으로 하는 스크래치패드 메모리 관리 방법.
14. The method of claim 13,
Confirming whether the selected victim data has been evicted from the sensitive priority area; And
And shifting the victim data from the access frequency priority area to the off-chip memory.
제13항에 있어서,
상기 스크래치패드 메모리에 접근되는 데이터가 상기 접근빈도 우선 영역으로의 할당이 성공되지 않는 경우, 상기 우선순위에 근거하여 상기 스크래치패드 메모리에 접근되는 데이터를 상기 접근빈도 우선 영역에 할당하지 않도록 하는 단계를 더 포함하는 것을 특징으로 하는 스크래치패드 메모리 관리 방법.
14. The method of claim 13,
If the data to be accessed to the scratch pad memory is not successfully allocated to the access frequency priority area, not allocating data to be accessed to the scratch pad memory based on the priority to the access frequency priority area Further comprising the steps of:
제15항에 있어서,
상기 스크래치패드 메모리에 접근되는 데이터를 상기 접근빈도 우선 영역에 할당하지 않도록 한 경우를 확인하는 단계;
기밀성 보장이 필요한 민감 데이터가 오프칩 메모리에 저장되는 경우를 감지하는 단계;
상기 민감 데이터를 상기 오프칩 메모리로부터 판독하여 복호화하는 단계; 및
상기 복호화된 데이터를 상기 스크래치패드 메모리에 접근시켜 주는 단계를 더 포함하는 것을 특징으로 하는 스크래치패드 메모리 관리 방법.
16. The method of claim 15,
Confirming a case where data to be accessed to the scratch pad memory is not allocated to the access frequency priority area;
Sensing a case where sensitive data requiring confidentiality is stored in an off-chip memory;
Reading and decoding the sensitive data from the off-chip memory; And
And accessing the decrypted data to the scratch pad memory. ≪ RTI ID = 0.0 > 11. < / RTI >
KR1020120144965A 2012-12-12 2012-12-12 Scratchpad memory management system and method KR101422083B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120144965A KR101422083B1 (en) 2012-12-12 2012-12-12 Scratchpad memory management system and method
PCT/KR2013/011201 WO2014092381A1 (en) 2012-12-12 2013-12-05 System and method for managing scratchpad memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120144965A KR101422083B1 (en) 2012-12-12 2012-12-12 Scratchpad memory management system and method

Publications (2)

Publication Number Publication Date
KR20140076454A KR20140076454A (en) 2014-06-20
KR101422083B1 true KR101422083B1 (en) 2014-07-23

Family

ID=50934611

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120144965A KR101422083B1 (en) 2012-12-12 2012-12-12 Scratchpad memory management system and method

Country Status (2)

Country Link
KR (1) KR101422083B1 (en)
WO (1) WO2014092381A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110059024A (en) * 2019-04-19 2019-07-26 中国科学院微电子研究所 A kind of memory headroom data cache method and device

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101700315B1 (en) * 2014-12-12 2017-01-26 국민대학교산학협력단 Scratchpad memory management method, scratchpad memory management apparatus performing the same and storage medium storing the same
CN110007858B (en) * 2019-03-13 2022-12-06 新华三技术有限公司成都分公司 Storage space allocation method and device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070017951A (en) * 2003-09-23 2007-02-13 코닌클리즈케 필립스 일렉트로닉스 엔.브이. Method and apparatus for master/slave direct memory access hardware and software control
KR101334176B1 (en) * 2007-01-19 2013-11-28 삼성전자주식회사 Method for managing a memory in a multi processor system on chip
KR101612780B1 (en) * 2009-11-13 2016-04-18 삼성전자주식회사 Computing system and method for controling memory of computing system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
홍대영 외 1인,"스크래치패드 메모리 기반 임베디드 시스템에서 데이터 기밀성 보장을 위한 동적 메모리 할당기법", 정보과학회논문지: 시스템 및 이론 제 38 권 제 6 호 (2011.12) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110059024A (en) * 2019-04-19 2019-07-26 中国科学院微电子研究所 A kind of memory headroom data cache method and device
CN110059024B (en) * 2019-04-19 2021-09-21 中国科学院微电子研究所 Memory space data caching method and device

Also Published As

Publication number Publication date
WO2014092381A1 (en) 2014-06-19
KR20140076454A (en) 2014-06-20

Similar Documents

Publication Publication Date Title
US11656853B2 (en) Techniques for distributed operation of secure controllers
JP5073673B2 (en) Prioritizing performance on multithreaded processors
JP6412583B2 (en) Modified memory compression
KR101629879B1 (en) Multicore computer system with cache use based adaptive scheduling
US20110078760A1 (en) Secure direct memory access
US9058212B2 (en) Combining memory pages having identical content
US7844779B2 (en) Method and system for intelligent and dynamic cache replacement management based on efficient use of cache for individual processor core
US20110072214A1 (en) Read and Write Aware Cache
US11494220B2 (en) Scalable techniques for data transfer between virtual machines
JP2007026094A (en) Execution device and application program
US20060047959A1 (en) System and method for secure computing
JP2004220608A (en) Dynamic allocation of computer resource based on thread type
WO2006065694A2 (en) Programmable transaction initiator architecture for systems with secure and non-secure modes
KR20180125976A (en) Time-varying address space layout randomization
KR101700315B1 (en) Scratchpad memory management method, scratchpad memory management apparatus performing the same and storage medium storing the same
KR101422083B1 (en) Scratchpad memory management system and method
CN114175005A (en) Programmable network interface device including a host computing device and a network interface device
JP2010238193A (en) Information processing program, information processor and information processing method
US7904688B1 (en) Memory management unit for field programmable gate array boards
US9772776B2 (en) Per-memory group swap device
JP2006309763A (en) Memory mapped page priority
US20070011096A1 (en) Method and apparatus for managing DRM rights object in low-performance storage device
KR101535792B1 (en) Apparatus for configuring operating system and method thereof
KR101198400B1 (en) Memory management apparatus and method
CN105074677A (en) Accelerator buffer access

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
FPAY Annual fee payment

Payment date: 20170710

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180627

Year of fee payment: 5