KR102222934B1 - Method and apparatus for memory allocation in a multi-core processor system, and recoding medium therefor - Google Patents

Method and apparatus for memory allocation in a multi-core processor system, and recoding medium therefor Download PDF

Info

Publication number
KR102222934B1
KR102222934B1 KR1020190101333A KR20190101333A KR102222934B1 KR 102222934 B1 KR102222934 B1 KR 102222934B1 KR 1020190101333 A KR1020190101333 A KR 1020190101333A KR 20190101333 A KR20190101333 A KR 20190101333A KR 102222934 B1 KR102222934 B1 KR 102222934B1
Authority
KR
South Korea
Prior art keywords
data
memory
core
access time
memory access
Prior art date
Application number
KR1020190101333A
Other languages
Korean (ko)
Other versions
KR20210021849A (en
KR102222934B9 (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 KR1020190101333A priority Critical patent/KR102222934B1/en
Priority to US16/997,160 priority patent/US11640321B2/en
Publication of KR20210021849A publication Critical patent/KR20210021849A/en
Application granted granted Critical
Publication of KR102222934B1 publication Critical patent/KR102222934B1/en
Publication of KR102222934B9 publication Critical patent/KR102222934B9/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

본 발명에서는 멀티코어 프로세서 시스템에서 메모리 할당 방법 및 장치, 이를 위한 기록매체가 개시된다. 구체적으로, 멀티코어(multi-core) 프로세서 시스템에서 공유 데이터의 메모리 할당 방법에 있어서, 데이터 정보 및 코어 별 메모리 접근 시간 정보를 입력 받는 단계, 상기 데이터 정보 및 상기 코어 별 메모리 접근 시간 정보를 기반으로 코어 별 데이터 접근 횟수와 메모리 접근 시간을 계산함으로써 데이터-메모리 테이블을 생성하는 단계, 상기 데이터-메모리 테이블을 기반으로 데이터 별 메모리 접근 시간의 최소값을 결정하는 단계, 상기 결정된 최소값과 상기 데이터 별 메모리 접근 시간 간의 차이를 내림차순으로 정렬하는 단계 및 상기 정렬된 순서에 따라 순차적으로 데이터를 메모리에 할당하는 단계를 포함할 수 있다.In the present invention, a method and apparatus for allocating a memory in a multi-core processor system, and a recording medium therefor are disclosed. Specifically, in a memory allocation method for shared data in a multi-core processor system, receiving data information and memory access time information for each core, based on the data information and memory access time information for each core Creating a data-memory table by calculating the number of data access times and memory access times for each core, determining a minimum value of the memory access time for each data based on the data-memory table, the determined minimum value and the memory access for each data It may include sorting the difference between times in descending order, and sequentially allocating data to the memory according to the sorted order.

Description

멀티코어 프로세서 시스템에서 메모리 할당 방법 및 장치, 이를 위한 기록매체 {Method and apparatus for memory allocation in a multi-core processor system, and recoding medium therefor}[Method and apparatus for memory allocation in a multi-core processor system, and recoding medium therefor}

본 발명은 멀티코어 프로세서(multi-core processor) 시스템에서 메모리 할당 방법 및 장치, 이를 위한 기록매체에 관한 것으로서, 보다 상세하게 멀티코어 프로세서 시스템에서 공유 데이터의 메모리 할당 최적화 방법 및 장치, 이를 위한 기록매체에 관한 것이다.The present invention relates to a method and apparatus for allocating a memory in a multi-core processor system, and to a recording medium therefor, and more particularly, a method and apparatus for optimizing memory allocation for shared data in a multi-core processor system, and a recording medium therefor. It is about.

기존 데이터 무결성 확보 방법에 관하여, 데이터 처리 시스템에서 공유 데이터 복사 사용을 통해 데이터의 무결성을 확보하는 장치 및 그 방법에 관한 것으로서, 구체적으로는 목적 코드 프로세서(Object Code Processor)에서 공유 데이터에 대한 정보를 획득하고, 링커(LINKER)에서 공유 데이터의 복사본 심볼을 메모리에 할당하여 데이터의 무결성을 확보하는 장치 및 그 방법이 공개되었다. 그러나 기존 방법은 공유 데이터의 복사 사용을 통해 데이터의 무결성을 확보하는 방법을 제시하였지만, 공유 데이터 복사 사용 시 메모리에 접근하는 오버헤드를 최소화하는 방법은 제시하지 못하여 코어 및 메모리 사용에 대한 최적화 된 결과를 도출하지 못한다.Regarding the existing data integrity securing method, it relates to an apparatus and method for securing the integrity of data through the use of copying shared data in a data processing system, and specifically, information on shared data in an object code processor. An apparatus and method for securing data integrity by acquiring and allocating a copy symbol of shared data to a memory in a linker have been disclosed. However, the existing method suggested a method of securing the integrity of the data through the use of copying shared data, but the method to minimize the overhead of accessing the memory when using the copy of shared data was not suggested, resulting in an optimized result for the use of core and memory. Does not derive.

상기 문제를 해결하기 위해서는 각 공유 데이터에 접근하는 태스크 및 코어에 대한 정보를 획득하여 각 코어 별 메모리 접근 시간을 최소화하는 방법이 요구된다. In order to solve the above problem, there is a need for a method of minimizing memory access time for each core by acquiring information on a task and core accessing each shared data.

미국등록특허 제8,464,236호, 2013년 06월 11일 등록 (명칭: DATA CONSISTENCY IN DATA PROCESSING SYSTEMS)US Patent No. 8,464,236, registered on June 11, 2013 (Name: DATA CONSISTENCY IN DATA PROCESSING SYSTEMS)

본 발명의 목적은 멀티코어 프로세서(multi-core processor) 시스템에서 데이터 무결성을 위한 공유 데이터의 복사 사용에 있어서, 공유 데이터를 적절한 위치에 저장하여 메모리 접근 시간을 최소화하기 위한 장치 및 그 방법을 제공하기 위함이다. An object of the present invention is to provide an apparatus and method for minimizing memory access time by storing shared data in an appropriate location in copying use of shared data for data integrity in a multi-core processor system. It is for sake.

본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical problems to be achieved in the present invention are not limited to the technical problems mentioned above, and other technical problems that are not mentioned will be clearly understood by those of ordinary skill in the technical field to which the present invention belongs from the following description. I will be able to.

본 발명의 일 양상은, 멀티코어(multi-core) 프로세서 시스템에서 공유 데이터의 메모리 할당 방법에 있어서, 데이터 정보 및 코어 별 메모리 접근 시간 정보를 입력 받는 단계, 상기 데이터 정보 및 상기 코어 별 메모리 접근 시간 정보를 기반으로 코어 별 데이터 접근 횟수와 메모리 접근 시간을 계산함으로써 데이터-메모리 테이블을 생성하는 단계, 상기 데이터-메모리 테이블을 기반으로 데이터 별 메모리 접근 시간의 최소값을 결정하는 단계, 상기 결정된 최소값과 상기 데이터 별 메모리 접근 시간 간의 차이를 내림차순으로 정렬하는 단계 및 상기 정렬된 순서에 따라 순차적으로 데이터를 메모리에 할당하는 단계를 포함할 수 있다.According to an aspect of the present invention, in a method of allocating a shared data memory in a multi-core processor system, receiving data information and memory access time information for each core, the data information and memory access time for each core Creating a data-memory table by calculating the number of data access times and memory access times for each core based on information, determining a minimum value of the memory access time for each data based on the data-memory table, the determined minimum value and the Arranging the difference between the memory access times for each data in descending order, and sequentially allocating data to the memory according to the sorted order.

본 발명의 다른 일 양상은, 멀티코어(multi-core) 프로세서 시스템에서 공유 데이터의 메모리 할당 장치에 있어서, 데이터 정보 및 코어 별 메모리 접근 시간 정보를 입력 받고, 상기 데이터 정보 및 상기 코어 별 메모리 접근 시간 정보를 기반으로 코어 별 데이터 접근 횟수와 메모리 접근 시간을 계산함으로써 데이터-메모리 테이블을 생성하고, 상기 데이터-메모리 테이블을 기반으로 데이터 별 메모리 접근 시간의 최소값을 결정하고, 상기 결정된 최소값과 상기 데이터 별 메모리 접근 시간 간의 차이를 내림차순으로 정렬하는 메모리 할당 제어부 및 상기 정렬된 순서에 따라 순차적으로 데이터를 메모리에 할당하는 연결부를 포함할 수 있다. Another aspect of the present invention is an apparatus for allocating shared data in a multi-core processor system, receiving data information and memory access time information for each core, and receiving the data information and memory access time for each core A data-memory table is created by calculating the number of data access times and memory access times for each core based on the information, and a minimum value of the memory access time for each data is determined based on the data-memory table, and the determined minimum value and the data access time are A memory allocation control unit that sorts differences between memory access times in descending order, and a connection unit that sequentially allocates data to the memory according to the sorted order.

본 발명의 또 다른 일 양상은, 멀티코어(multi-core) 프로세서 시스템에서 공유 데이터의 메모리 할당 프로그램을 기록한 저장한 기록매체 있어서, 데이터 정보 및 코어 별 메모리 접근 시간 정보를 입력 받는 단계, 상기 데이터 정보 및 상기 코어 별 메모리 접근 시간 정보를 기반으로 코어 별 데이터 접근 횟수와 메모리 접근 시간을 계산함으로써 데이터-메모리 테이블을 생성하는 단계, 상기 데이터-메모리 테이블을 기반으로 데이터 별 메모리 접근 시간의 최소값을 결정하는 단계, 상기 결정된 최소값과 상기 데이터 별 메모리 접근 시간 간의 차이를 내림차순으로 정렬하는 단계 및 상기 정렬된 순서에 따라 순차적으로 데이터를 메모리에 할당하는 단계를 포함하는 메모리 할당 프로그램을 포함할 수 있다. Another aspect of the present invention is a storage recording medium recording a memory allocation program for shared data in a multi-core processor system, receiving data information and memory access time information for each core, the data information And generating a data-memory table by calculating the number of data access times and memory access times for each core based on the memory access time information for each core, determining a minimum value of the memory access time for each data based on the data-memory table. A memory allocation program comprising: sorting the difference between the determined minimum value and the memory access time for each data in descending order, and sequentially allocating data to the memory according to the sorted order.

바람직하게, 상기 데이터 정보는 데이터와 연관된 태스크의 주기 및 상기 태스크가 할당된 코어 정보를 포함할 수 있다. Preferably, the data information may include a period of a task associated with data and core information to which the task is allocated.

바람직하게, 상기 데이터를 상기 메모리에 할당할 때, 상기 메모리의 크기가 메모리 임계값보다 작은지 여부를 판단할 수 있다. Preferably, when allocating the data to the memory, it may be determined whether the size of the memory is smaller than a memory threshold.

바람직하게, 상기 메모리의 크기가 상기 메모리 임계값보다 작으면, 상기 데이터는 상기 메모리 접근시간이 최소가 되는 메모리에 할당될 수 있다. Preferably, when the size of the memory is smaller than the memory threshold, the data may be allocated to a memory whose memory access time is minimum.

바람직하게, 상기 메모리의 크기가 상기 메모리 임계값보다 같거나 크면, 상기 데이터는 상기 메모리 접근시간이 차 순위인 메모리에 할당될 수 있다.Preferably, if the size of the memory is equal to or greater than the memory threshold value, the data may be allocated to a memory having a second priority in the memory access time.

본 발명의 실시예에 따르면, 멀티코어 프로세서(multi-core processor) 시스템에서 공유 데이터의 메모리 할당 제어 장치는 공유 데이터의 정보를 입력 받고, 저장 위치에 따른 접근시간 정보에 따라 공유 데이터의 저장 위치를 설정한다. According to an embodiment of the present invention, in a multi-core processor system, an apparatus for controlling memory allocation of shared data receives information on shared data, and determines a storage location of shared data according to access time information according to the storage location. Set.

이를 통해 메모리 접근 오버헤드를 최소화하여 지연시간을 줄일 수 있으며, 부하 증가량의 감소를 통해 시스템의 최적화가 가능하다. Through this, the delay time can be reduced by minimizing the memory access overhead, and the system can be optimized by reducing the amount of increase in the load.

또한, 멀티코어 프로세서 기반 데이터 처리 시스템에서 다수의 메모리에 적절한 공유 데이터의 분배를 통해 메모리 사용의 최적화가 가능하다.In addition, in a data processing system based on a multi-core processor, it is possible to optimize memory use through appropriate distribution of shared data to a plurality of memories.

본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtainable in the present invention are not limited to the above-mentioned effects, and other effects not mentioned will be clearly understood by those of ordinary skill in the art from the following description. .

본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 특징을 설명한다.
도 1은 멀티코어(multi-core) 이주 시 데이터의 메모리 할당을 나타낸다.
도 2는 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템에서 공유 데이터의 메모리 할당 장치를 예시하는 도면이다.
도 3은 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템에서 공유 데이터의 메모리 할당 최적화 방법을 예시하는 도면이다.
도 4는 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템에서 공유 데이터의 메모리 할당 최적화 방법을 설명하기 위한 도면이다.
BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are included as part of the detailed description to aid in understanding of the present invention, provide embodiments of the present invention, and together with the detailed description, the technical features of the present invention are described.
1 shows memory allocation of data during multi-core migration.
2 is a diagram illustrating a memory allocation apparatus for shared data in a multi-core processor system according to an embodiment of the present invention.
3 is a diagram illustrating a method of optimizing memory allocation for shared data in a multi-core processor system according to an embodiment of the present invention.
4 is a diagram illustrating a method of optimizing memory allocation for shared data in a multi-core processor system according to an embodiment of the present invention.

이하, 본 발명에 따른 바람직한 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 발명의 예시적인 실시형태를 설명하고자 하는 것이며, 본 발명이 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다. 이하의 상세한 설명은 본 발명의 완전한 이해를 제공하기 위해서 구체적 세부사항을 포함한다. 그러나, 당업자는 본 발명이 이러한 구체적 세부사항 없이도 실시될 수 있음을 안다. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. DETAILED DESCRIPTION OF THE INVENTION The detailed description to be disclosed below together with the accompanying drawings is intended to describe exemplary embodiments of the present invention and is not intended to represent the only embodiments in which the present invention may be practiced. The following detailed description includes specific details to provide a thorough understanding of the present invention. However, one of ordinary skill in the art appreciates that the invention may be practiced without these specific details.

몇몇 경우, 본 발명의 개념이 모호해지는 것을 피하기 위하여 공지의 구조 및 장치는 생략되거나, 각 구조 및 장치의 핵심기능을 중심으로 한 블록도 형식으로 도시될 수 있다. In some cases, in order to avoid obscuring the concept of the present invention, well-known structures and devices may be omitted, or may be illustrated in a block diagram form centering on core functions of each structure and device.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함(comprising 또는 including)"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "??부", "??기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, "일(a 또는 an)", "하나(one)", "그(the)" 및 유사 관련어는 본 발명을 기술하는 문맥에 있어서(특히, 이하의 청구항의 문맥에서) 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.Throughout the specification, when a part is said to "comprising or including" a certain component, it means that other components may be further included rather than excluding other components unless specifically stated to the contrary. do. In addition, terms such as "?? unit", "?? group", and "module" described in the specification mean a unit that processes at least one function or operation, which is implemented by hardware or software or a combination of hardware and software. Can be. In addition, "a or an", "one", "the" and similar related words are different from the present specification in the context of describing the present invention (especially in the context of the following claims). Unless indicated or clearly contradicted by context, it may be used in the sense of including both the singular and the plural.

이하의 설명에서 사용되는 특정 용어들은 본 발명의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 본 발명의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.Specific terms used in the following description are provided to aid understanding of the present invention, and the use of these specific terms may be changed in other forms without departing from the technical spirit of the present invention.

도 1은 멀티코어(multi-core) 이주 시 데이터의 을 나타낸다.FIG. 1 shows of data during multi-core migration.

도 1은 싱글코어(single-core) 기반의 차량 전자 제어 장치(ECU: Electronic Control Unit)의 동작을 예시하는 도면이다. 현재 싱글코어 기반의 ECU는 컴퓨팅 파워의 제약으로 코어의 부하율이 한계에 도달하고 있다. 이러한 코어의 높은 부하율로 인해 차량 내 제어기의 신규 제어 로직(logic) 적용에 어려움을 겪고 있다. 1 is a diagram illustrating an operation of a single-core based electronic control unit (ECU). Currently, single-core-based ECUs are reaching the limit of the core load ratio due to the limitation of computing power. Due to the high load factor of the core, it is difficult to apply a new control logic to a controller in a vehicle.

이로 인해 차량 개발자들은 차량 멀티코어 기술에 관심이 높아졌으며, 상기 문제를 해결하기 위해 멀티코어 소프트웨어를 개발 및 연구 중에 있다. 멀티코어 기반의 전자 제어 장치는 태스크의 병렬 실행을 통해 코어의 부하를 절감할 수 있고, 따라서 신규 제어 로직 적용에 대한 문제를 해결할 수 있다. As a result, vehicle developers have increased their interest in vehicle multi-core technology, and are developing and researching multi-core software to solve the above problem. The multi-core-based electronic control device can reduce the load on the core through parallel execution of tasks, and thus solve the problem of applying a new control logic.

이러한 차량 멀티코어 시스템의 개발에 있어서, 데이터의 무결성을 확보하는 것은 매우 중요하다. 다만, 공유 데이터를 복사 사용하여 데이터의 무결성을 확보할 때, 공유 데이터의 저장 위치에 따라 접근 오버헤드가 발생하며 이로 인해 지연시간이 증가하게 된다. 이러한 지연시간의 증가는 각 코어 부하의 증가를 야기한다. In the development of such a vehicle multi-core system, it is very important to ensure data integrity. However, when the integrity of data is secured by copying shared data, access overhead occurs depending on the storage location of the shared data, which increases the delay time. This increase in delay time causes an increase in the load of each core.

이러한 부하의 증가량의 최소화를 통해 데이터 처리 시스템의 최적화가 가능하다. 기존의 기술은 데이터 무결성을 확보하는 방법을 제시하지만, 복사 사용을 하기 위해 공유 데이터에 접근 시 발생하는 오버헤드와 그에 따른 지연시간을 최소화하는 방법을 제시하지 못하여 가장 최적화된 시스템이라고 할 수 없다.It is possible to optimize the data processing system by minimizing the amount of increase in the load. Existing technologies provide a method of securing data integrity, but it cannot be said to be the most optimized system because it cannot provide a method of minimizing the overhead and delay time that occurs when accessing shared data for copy use.

무결성 확보를 위해 공유 데이터를 복사 사용 시, 메모리 접근 시간의 최소화를 통해 코어 부하의 증가량을 최소화 및 최적화 할 수 있다. When copying shared data to ensure integrity, it is possible to minimize and optimize the amount of increase in core load by minimizing memory access time.

따라서, 종래의 기술의 문제점을 해결하기 위하여, 본 발명에서는 데이터 무결성을 위한 공유 데이터의 복사 사용에 있어서, 공유 데이터를 적절한 위치에 저장하여 메모리 접근 시간을 최소화하기 위한 장치 및 그 방법을 제공한다. Accordingly, in order to solve the problems of the prior art, the present invention provides an apparatus and method for minimizing memory access time by storing shared data in an appropriate location in copying and using shared data for data integrity.

본 발명은 상기 문제를 해결하기 위해 공유 데이터의 메모리 할당 제어 장치를 제안하며, 이는 공유 데이터의 정보를 입력 받고, 저장 위치에 따른 접근시간 정보에 따라 공유 데이터의 저장 위치를 설정한다. In order to solve the above problem, the present invention proposes an apparatus for controlling memory allocation of shared data, which receives information of shared data and sets a storage location of the shared data according to access time information according to the storage location.

다시 말해, 본 발명에서는 멀티코어 프로세서 시스템에서 공유 데이터의 메모리 할당 최적화 방법을 제안하며, 이를 위하여 메모리 할당 최적화를 위한 공유 데이터의 메모리 할당 제어 장치 및 데이터 접근 오버헤드를 최소화하기 위한 메모리 할당 알고리즘을 제안한다. 메모리 할당 제어 장치는 코어 별 데이터 접근 횟수와 코어 별 메모리 접근 시간을 입력해 데이터-메모리 테이블을 생성한다. 그리고, 메모리 할당 제어 장치는 생성된 테이블과 메모리 할당 알고리즘을 통해 적절한 공유 데이터를 분배하고 메모리 사용을 최적화한다.In other words, the present invention proposes a memory allocation optimization method for shared data in a multi-core processor system, and for this purpose, a memory allocation control device for shared data for memory allocation optimization and a memory allocation algorithm for minimizing data access overhead. do. The memory allocation control device creates a data-memory table by inputting the number of data accesses per core and memory access time per core. In addition, the memory allocation control device distributes appropriate shared data and optimizes memory use through the generated table and memory allocation algorithm.

본 발명은 데이터 무결성을 위한 공유 데이터의 복사 사용에 있어서, 공유 데이터를 적절한 위치에 저장하여 메모리 접근 시간을 최소화하기 위한 장치 및 그 방법을 제공한다. 이에 대하여 아래 도면을 참조하여 보다 상세히 살펴본다. The present invention provides an apparatus and a method for minimizing a memory access time by storing shared data in an appropriate location in copy use of shared data for data integrity. This will be described in more detail with reference to the drawings below.

도 2는 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템에서 공유 데이터의 메모리 할당 장치를 예시하는 도면이다. 2 is a diagram illustrating a memory allocation apparatus for shared data in a multi-core processor system according to an embodiment of the present invention.

도 2에서 도시된 본 발명에 따른 멀티코어 프로세서 시스템에서 공유 데이터의 메모리 할당 장치(200)는 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 어느 하나 이상의 구성이 실제 물리적으로는 서로 통합되거나 분리되어 구현될 수도 있다.The memory allocation apparatus 200 for shared data in the multi-core processor system according to the present invention shown in FIG. 2 represents functional elements that are functionally divided, and any one or more components may be physically integrated or separated from each other. May be.

도 2를 참조하면, 메모리 할당 장치(200)는 메모리 할당 제어부(210) 및 연결부(LINKER)(220)를 포함하여 구성될 수 있다. Referring to FIG. 2, the memory allocation device 200 may include a memory allocation control unit 210 and a linker 220.

메모리 할당 제어부(210)는 각 공유 데이터에 대한 최적의 메모리 저장 위치 정보(즉, 데이터-메모리 테이블)를 생성한다. The memory allocation control unit 210 generates optimal memory storage location information (ie, data-memory table) for each shared data.

보다 구체적으로 살펴보면, 메모리 할당 제어부(210)는 각 코어 별 메모리 접근 시간(201)과 공유 데이터 정보(202)를 입력 받아 메모리 별로 총 접근 시간을 계산하여 데이터-메모리 테이블을 생성한다. More specifically, the memory allocation control unit 210 receives the memory access time 201 and shared data information 202 for each core, calculates the total access time for each memory, and generates a data-memory table.

여기서, 코어 별 메모리 접근시간 정보(201)는 실제 임베디드 시스템(embedded system)에서 측정한 데이터이며, 공유 데이터 정보(202)는 각 데이터에 접근하는(연관된) 태스크(task)의 주기와 태스크가 할당된 코어 정보를 포함한다. Here, the memory access time information 201 for each core is data measured in an actual embedded system, and the shared data information 202 is the cycle of the task accessing (associated) each data and the task is allocated. Contains the core information.

메모리 할당 제어부(210)는 코어 별 메모리 접근 시간 정보(201)과 공유 데이터 정보(202)를 입력 받고, 입력 정보를 이용하여 코어 별 데이터 접근 횟수와 메모리 접근 시간을 계산하며, 계산된 결과를 기반으로 메모리-데이터 테이블을 생성한다. The memory allocation control unit 210 receives memory access time information 201 and shared data information 202 for each core, calculates the number of data accesses and memory access time for each core using the input information, and based on the calculated result. Create a memory-data table.

또한, 메모리 할당 제어부(210)는 메모리-데이터 테이블 정보를 기반으로 데이터 별 메모리 접근 시간의 최소값을 결정한다. 그리고, 메모리 할당 제어부(210)는 선택된 최소값과 각각의 데이터 별 메모리 접근시간의 차이를 계산한다. 그리고, 메모리 할당 제어부(210)는 각 데이터 별로 계산된 결과(즉, 결정된 최소값과 각각의 데이터 별 메모리 접근시간의 차이) 중 최소값의 차 순위 값을 추출하여 내림차순으로 정렬한다. In addition, the memory allocation control unit 210 determines a minimum value of the memory access time for each data based on the memory-data table information. In addition, the memory allocation control unit 210 calculates a difference between the selected minimum value and the memory access time for each data. In addition, the memory allocation control unit 210 extracts the difference order value of the minimum value among the calculated results for each data (ie, the difference between the determined minimum value and the memory access time for each data) and sorts it in descending order.

연결부(LINKER)(220)는 메모리 할당 제어부(210)에 의해 생성된 메모리-데이터 테이블 정보를 기반으로 각 공유 데이터를 최적의 메모리 위치에 할당함으로써 실행 파일(203)을 생성한다. 즉, 내림차순으로 정렬된 순서에 따라 순차적으로 각 데이터를 메모리를 할당한다. The LINKER 220 creates an executable file 203 by allocating each shared data to an optimal memory location based on the memory-data table information generated by the memory allocation control unit 210. That is, memory is sequentially allocated for each data according to the order in which it is sorted in descending order.

이때, 연결부(LINKER)(220)는 데이터의 메모리 할당 시 메모리의 크기가 임계값 보다 작은지 여부를 판단할 수 있다. 만약, 데이터의 메모리 할당 시 메모리의 크기가 메모리 임계값보다 작을 경우, 연결부(LINKER)(220)는 해당 데이터를 메모리 접근시간이 최소가 되는 메모리에 할당할 수 있다. 반면, 메모리의 할당 가능 데이터 량이 초과되는 경우(즉, 데이터의 메모리 할당 시 메모리의 크기가 메모리 임계값보다 같거나 큰 경우), 연결부(LINKER)(220)는 메모리 할당 장치는 해당 데이터를 메모리 접근시간이 차 순위인 메모리에 할당할 수 있다. At this time, the LINKER 220 may determine whether the size of the memory is smaller than a threshold value when allocating data to the memory. If the size of the memory is smaller than the memory threshold value during data memory allocation, the LINKER 220 may allocate the corresponding data to a memory whose memory access time is minimum. On the other hand, when the amount of allocable data in the memory is exceeded (that is, when the size of the memory is equal to or greater than the memory threshold when data is allocated), the LINKER 220 accesses the data to the memory. You can allocate it to memory where time is the second priority.

연결부(LINKER)(220)는 모든 데이터에 대하여 메모리를 할당하였는지 판단하고, 모든 데이터에 대하여 메모리를 할당할 때까지 앞서 설명한 과정을 반복할 수 있다. The LINKER 220 may determine whether memory has been allocated for all data, and may repeat the above-described process until all data has been allocated memory.

도 3은 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템에서 공유 데이터의 메모리 할당 최적화 방법을 예시하는 도면이다. 3 is a diagram illustrating a method of optimizing memory allocation for shared data in a multi-core processor system according to an embodiment of the present invention.

도 3에서는 본 발명에서 제안하는 데이터 접근 오버헤드를 최소화하기 위한 메모리 할당 방법의 일례를 나타낸다. 3 shows an example of a memory allocation method for minimizing data access overhead proposed by the present invention.

도 3을 참조하면, 메모리 할당 장치는 데이터 관련 정보(즉, 공유 데이터 정보)를 입력 받고(S301), 또한 코어 별 메모리 접근 시간 정보를 입력 받는다(S302). Referring to FIG. 3, the memory allocation apparatus receives data-related information (ie, shared data information) (S301), and also receives memory access time information for each core (S302).

여기서, 데이터 관련 정보(즉, 공유 데이터 정보)는 각 데이터에 접근하는(연관된) 태스크(task)의 주기와 태스트가 할당된 코어 정보를 포함한다. Here, the data-related information (ie, shared data information) includes a period of a task accessing (associated with) each data and core information to which the task is allocated.

메모리 할당 장치는 입력 받은 정보를 이용하여 코어 별 데이터 접근 횟수와 메모리 접근 시간을 계산하여 데이터-메모리 테이블을 생성한다(S303).The memory allocation device generates a data-memory table by calculating the number of data access times and memory access times for each core using the received information (S303).

메모리 할당 장치는 생성된 테이블을 이용하여 데이터 별 메모리 접근 시간의 최소값을 결정하고(S304), 선택된 최소값과 각각의 데이터 별 메모리 접근시간의 차이를 계산한다(S305). The memory allocation apparatus determines a minimum value of the memory access time for each data using the generated table (S304), and calculates a difference between the selected minimum value and the memory access time for each data (S305).

메모리 할당 장치는 각 데이터 별로 계산된 결과(즉, 결정된 최소값과 각각의 데이터 별 메모리 접근시간의 차이) 중 최소값의 차 순위 값을 추출하여 내림차순으로 정렬한 후(S306), 순차적으로 각 데이터를 메모리를 할당한다(S307). The memory allocation device extracts the difference rank value of the minimum value among the calculated results for each data (i.e., the difference between the determined minimum value and the memory access time for each data), sorts it in descending order (S306), and sequentially stores each data into memory. Is assigned (S307).

이때, 메모리 할당 장치는 데이터의 메모리 할당 시 메모리의 크기가 임계값 보다 작은지 여부를 판단할 수 있다(S508). In this case, the memory allocating apparatus may determine whether the size of the memory is smaller than the threshold value when allocating data in memory (S508).

만약, 데이터의 메모리 할당 시 메모리의 크기가 메모리 임계값보다 작을 경우, 메모리 할당 장치는 해당 데이터를 메모리 접근시간이 최소가 되는 메모리에 할당할 수 있다(S309). If the size of the memory is smaller than the memory threshold value during data memory allocation, the memory allocating device may allocate the corresponding data to a memory whose memory access time is the minimum (S309).

반면, 메모리의 할당 가능 데이터 량이 초과되는 경우(즉, 데이터의 메모리 할당 시 메모리의 크기가 메모리 임계값보다 같거나 큰 경우), 메모리 할당 장치는 해당 데이터를 메모리 접근시간이 차 순위인 메모리에 할당할 수 있다(S310). On the other hand, when the amount of allocable data in the memory is exceeded (that is, when the size of the memory is equal to or greater than the memory threshold when the data is allocated), the memory allocation device allocates the data to the memory with the second priority in the memory access time It can be done (S310).

메모리 할당 장치는 모든 데이터에 대하여 메모리를 할당하였는지 판단하고(S311), 모든 데이터에 대하여 메모리를 할당할 때까지 앞서 S307 단계 내지 S310 단계를 반복할 수 있다. The memory allocating apparatus may determine whether memory has been allocated for all data (S311), and may repeat steps S307 to S310 above until all data is allocated memory.

도 4는 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템에서 공유 데이터의 메모리 할당 최적화 방법을 설명하기 위한 도면이다. 4 is a diagram illustrating a method of optimizing memory allocation for shared data in a multi-core processor system according to an embodiment of the present invention.

도 4에서는 코어 별 메모리 접근 시간 정보와 데이터 정보를 이용한 데이터 할당에 대한 일례이다. 4 is an example of data allocation using memory access time information and data information for each core.

도 4의 표 1은 각 코어에서 데이터에 접근하는 횟수, 도 4의 표 2는 각 코어에서 메모리에 접근하는 시간에 대한 테이블이다. Table 1 of FIG. 4 is a table of the number of times each core accesses data, and Table 2 of FIG. 4 is a table of times when each core accesses a memory.

두 테이블을 각각 행렬로 생각하여 곱함으로써, 메모리 할당 제어부는 도 4의 표 3과 같이 데이터-메모리 테이블을 생성할 수 있다. 생성된 테이블에 본 발명의 알고리즘을 적용하면, 메모리 할당 제어부는 도 4의 표 4와 같이 데이터와 메모리 정보를 순차적으로 정리할 수 있다. 도 4의 표 3에서 공유 데이터 D1을 메모리 M1에 할당 시, 22 * 10 + 12 * 20 = 460의 접근 시간을 가진다. 같은 방식으로, 각 데이터가 각 메모리에 할당 되었을 때 접근 횟수를 표 3처럼 구한다. 이 때, 각 메모리의 용량 한계치를 고려하여, 각 데이터가 메모리에 저장될 우선순위를 구하여준다. 먼저 표 3 예시에서 D1은 M1에 할당되었을 때, 가장 접근 시간이 짧으므로, 효율성이 가장 좋다. 마찬가지로 D2는 M2에 할당되었을 때, D3는 M1에 할당되었을 때 효율성이 가장 좋다. 이 때, D1과 D3가 M1에 할당되는 것이 좋은데, 메모리의 용량은 한계가 있으므로, M1에 저장될 데이터의 우선순위가 필요하다. 본 발명에서 제시하는 방법은, 각 데이터가 최우선으로 저장될 영역 외로 차순위 할당될 데이터의 시간과의 차이를 고려하여 우선순위를 부여한다. 예시로, D1은 M1 외 차순위로 M2에 저장되는 것이 효율이 좋다. 이 때 560의 총 접근 시간이 걸리는데, M1에 저장되었을 때 대비 100 (560-460)의 시간 효율이 저하된다. 마찬가지로, D3는 M1 외차순위로 M2에 저장되는 것이 효율이 좋다. 이 때 260의 총 접근 시간이 걸리는데, M1에 저장되었을 때 대비 40(260-220)의 시간 효율이 저하된다. 100과 40의 시간 효율 저하를 고려하였을 때, D1의 시간 저하 효율이 더 크므로, D1의 M1 배치 우선순위를 D3보다 더 높여준다. 같은 방식으로 배치 우선순위를 정한다면 표 4와 같이 내림차순으로 정렬시켜준다. By thinking of each of the two tables as a matrix and multiplying them, the memory allocation control unit can generate a data-memory table as shown in Table 3 of FIG. 4. When the algorithm of the present invention is applied to the generated table, the memory allocation control unit can sequentially arrange data and memory information as shown in Table 4 of FIG. 4. In Table 3 of FIG. 4, when the shared data D1 is allocated to the memory M1, the access time is 22 * 10 + 12 * 20 = 460. In the same way, when each data is allocated to each memory, the number of accesses is obtained as shown in Table 3. At this time, the priority of each data to be stored in the memory is obtained by considering the capacity limit of each memory. First, in the example of Table 3, when D1 is allocated to M1, the access time is shortest, so the efficiency is the best. Similarly, when D2 is assigned to M2 and D3 is assigned to M1, the efficiency is best. At this time, D1 and D3 are preferably allocated to M1. However, since the memory capacity is limited, the priority of data to be stored in M1 is required. In the method proposed in the present invention, priority is given in consideration of a difference between the time of the data to be allocated with the next priority outside the area where each data is to be stored with the highest priority. For example, it is efficient to store D1 in M2 in a second order other than M1. At this time, it takes a total access time of 560, which reduces the time efficiency of 100 (560-460) compared to when stored in M1. Likewise, it is efficient to store D3 in M2 in the order of M1 out-of-order. At this time, it takes a total access time of 260, and the time efficiency of 40 (260-220) decreases compared to when stored in M1. Considering the decrease in time efficiency of 100 and 40, since the time decrease efficiency of D1 is greater, the priority of M1 placement of D1 is higher than that of D3. If the placement priority is determined in the same way, they are sorted in descending order as shown in Table 4.

이후, 연결부(LINKER)는 도 4의 표 4의 정보를 이용하여 각 메모리에 데이터를 할당할 수 있다. 도 4의 데이터 D1은 도 4의 메모리 M1에 할당되는 것이 최적화 측면에서 가장 유리하며, 본 발명 적용 시 코어 및 메모리에 대해 최적화된 시스템을 설계 할 수 있음을 예측할 수 있다.Thereafter, the LINKER may allocate data to each memory using the information in Table 4 of FIG. 4. It is most advantageous in terms of optimization that the data D1 of FIG. 4 is allocated to the memory M1 of FIG. 4, and it can be predicted that a system optimized for the core and the memory can be designed when the present invention is applied.

이상에서 설명된 실시예들은 본 발명의 구성요소들과 특징들이 소정 형태로 결합된 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려되어야 한다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및/또는 특징들을 결합하여 본 발명의 실시예를 구성하는 것도 가능하다. 본 발명의 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다. 특허청구범위에서 명시적인 인용 관계가 있지 않은 청구항들을 결합하여 실시예를 구성하거나 출원 후의 보정에 의해 새로운 청구항으로 포함시킬 수 있음은 자명하다.The embodiments described above are those in which constituent elements and features of the present invention are combined in a predetermined form. Each component or feature should be considered optional unless explicitly stated otherwise. Each component or feature may be implemented in a form that is not combined with other components or features. In addition, it is also possible to constitute an embodiment of the present invention by combining some components and/or features. The order of operations described in the embodiments of the present invention may be changed. Some configurations or features of one embodiment may be included in other embodiments, or may be replaced with corresponding configurations or features of other embodiments. It is obvious that the embodiments may be configured by combining claims that do not have an explicit citation relationship in the claims or may be included as new claims by amendment after filing.

본 발명에 따른 실시예는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 본 발명의 일 실시예는 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.The embodiment according to the present invention may be implemented by various means, for example, hardware, firmware, software, or a combination thereof. In the case of implementation by hardware, an embodiment of the present invention is one or more ASICs (application specific integrated circuits), DSPs (digital signal processors), DSPDs (digital signal processing devices), PLDs (programmable logic devices), FPGAs ( field programmable gate arrays), processors, controllers, microcontrollers, microprocessors, etc.

펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 일 실시예는 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차, 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리는 상기 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고 받을 수 있다.In the case of implementation by firmware or software, an embodiment of the present invention may be implemented in the form of a module, procedure, or function that performs the functions or operations described above. The software code can be stored in a memory and driven by a processor. The memory may be located inside or outside the processor, and may exchange data with the processor through various known means.

본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다. 따라서, 상술한 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니 되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다. It is apparent to those skilled in the art that the present invention can be embodied in other specific forms without departing from the spirit and essential features of the present invention. Therefore, the above detailed description should not be construed as restrictive in all respects, but should be considered as illustrative. The scope of the present invention should be determined by reasonable interpretation of the appended claims, and all changes within the equivalent scope of the present invention are included in the scope of the present invention.

본 발명에 따른 공유 데이터의 메모리 할당 방법은 다양한 멀티코어(multi-core) 프로세서 시스템에 적용될 수 있다. The memory allocation method for shared data according to the present invention can be applied to various multi-core processor systems.

200: 메모리 할당 장치
201: 코어 별 메모리 접근시간 정보
202: 데이터 정보
203: 실행 파일
210: 메모리 할당 제어부
220: 연결부
200: memory allocation device
201: Memory access time information for each core
202: data information
203: executable file
210: memory allocation control unit
220: connection

Claims (7)

멀티코어(multi-core) 프로세서 시스템에서 공유 데이터의 메모리 할당 방법에 있어서,
코어별 데이터 접근 횟수를 나타내는 데이터 정보 및 코어 별 메모리 접근 시간 정보를 입력 받는 단계;
상기 데이터 정보를 포함하는 제1 테이블 및 상기 코어 별 메모리 접근 시간 정보를 포함하는 제2 테이블을 각각 행렬로 간주하고, 상기 제1 테이블 및 상기 제2 테이블을 서로 곱하여 데이터-메모리 테이블을 생성하는 단계;
상기 데이터-메모리 테이블을 기반으로 데이터 별 메모리 접근 시간의 최소값을 결정하는 단계;
상기 결정된 최소값과 상기 데이터 별 메모리 접근 시간 간의 차이를 내림차순으로 정렬하는 단계; 및
상기 정렬된 순서에 따라 순차적으로 데이터를 메모리에 할당하는 단계를 포함하는 메모리 할당 방법.
In the memory allocation method of shared data in a multi-core (multi-core) processor system,
Receiving data information indicating the number of data accesses for each core and memory access time information for each core;
Generating a data-memory table by considering the first table including the data information and the second table including the memory access time information for each core as a matrix, and multiplying the first table and the second table with each other ;
Determining a minimum value of a memory access time for each data based on the data-memory table;
Sorting the difference between the determined minimum value and the memory access time for each data in descending order; And
And sequentially allocating data to the memory according to the sorted order.
제 1 항에 있어서,
상기 데이터 정보는 데이터와 연관된 태스크의 주기 및 상기 태스크가 할당된 코어 정보를 포함하는 메모리 할당 방법.
The method of claim 1,
The data information includes a period of a task associated with data and information on a core to which the task is allocated.
제 1 항에 있어서,
상기 데이터를 상기 메모리에 할당할 때, 상기 메모리의 크기가 메모리 임계값보다 작은지 여부를 판단하는 단계를 더 포함하는 메모리 할당 방법.
The method of claim 1,
When allocating the data to the memory, determining whether the size of the memory is smaller than a memory threshold.
제 3 항에 있어서,
상기 메모리의 크기가 상기 메모리 임계값보다 작으면, 상기 데이터는 상기 메모리 접근시간이 최소가 되는 메모리에 할당되는 메모리 할당 방법.
The method of claim 3,
When the size of the memory is less than the memory threshold, the data is allocated to a memory whose memory access time is minimum.
제 3 항에 있어서,
상기 메모리의 크기가 상기 메모리 임계값보다 같거나 크면, 상기 데이터는 상기 메모리 접근시간이 차 순위인 메모리에 할당되는 메모리 할당 방법.
The method of claim 3,
When the size of the memory is equal to or greater than the memory threshold value, the data is allocated to a memory whose memory access time is a difference priority.
멀티코어(multi-core) 프로세서 시스템에서 공유 데이터의 메모리 할당 장치에 있어서,
데이터 정보 및 코어 별 메모리 접근 시간 정보를 입력 받고, 상기 데이터 정보 및 상기 코어 별 메모리 접근 시간 정보를 기반으로 코어 별 데이터 접근 횟수와 메모리 접근 시간을 계산함으로써 데이터-메모리 테이블을 생성하고, 상기 데이터-메모리 테이블을 기반으로 데이터 별 메모리 접근 시간의 최소값을 결정하고, 상기 결정된 최소값과 상기 데이터 별 메모리 접근 시간 간의 차이를 내림차순으로 정렬하는 메모리 할당 제어부; 및
상기 정렬된 순서에 따라 순차적으로 데이터를 메모리에 할당하는 연결부를 포함하는 장치.
In the memory allocation apparatus for shared data in a multi-core (multi-core) processor system,
By receiving data information and memory access time information for each core, and calculating the number of data accesses and memory access time for each core based on the data information and the memory access time information for each core, a data-memory table is created, and the data- A memory allocation control unit that determines a minimum value of a memory access time for each data based on a memory table, and arranges a difference between the determined minimum value and the memory access time for each data in descending order; And
Apparatus comprising a connection unit for sequentially allocating data to the memory according to the sorted order.
멀티코어(multi-core) 프로세서 시스템에서 공유 데이터의 메모리 할당 프로그램을 기록한 저장한 기록매체 있어서,
코어별 데이터 접근 횟수를 나타내는 데이터 정보 및 코어 별 메모리 접근 시간 정보를 입력 받는 단계;
상기 데이터 정보를 포함하는 제1 테이블 및 상기 코어 별 메모리 접근 시간 정보를 포함하는 제2 테이블을 각각 행렬로 간주하고, 상기 제1 테이블 및 상기 제2 테이블을 서로 곱하여 데이터-메모리 테이블을 생성하는 단계;
상기 데이터-메모리 테이블을 기반으로 데이터 별 메모리 접근 시간의 최소값을 결정하는 단계;
상기 결정된 최소값과 상기 데이터 별 메모리 접근 시간 간의 차이를 내림차순으로 정렬하는 단계; 및
상기 정렬된 순서에 따라 순차적으로 데이터를 메모리에 할당하는 단계를 포함하는 메모리 할당 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
In a recording medium storing a memory allocation program of shared data in a multi-core processor system,
Receiving data information indicating the number of data accesses for each core and memory access time information for each core;
Generating a data-memory table by considering the first table including the data information and the second table including the memory access time information for each core as a matrix, and multiplying the first table and the second table with each other ;
Determining a minimum value of a memory access time for each data based on the data-memory table;
Sorting the difference between the determined minimum value and the memory access time for each data in descending order; And
A computer-readable recording medium recording a memory allocation program comprising the step of sequentially allocating data to a memory according to the sorted order.
KR1020190101333A 2019-08-19 2019-08-19 Method and apparatus for memory allocation in a multi-core processor system, and recoding medium therefor KR102222934B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190101333A KR102222934B1 (en) 2019-08-19 2019-08-19 Method and apparatus for memory allocation in a multi-core processor system, and recoding medium therefor
US16/997,160 US11640321B2 (en) 2019-08-19 2020-08-19 Method and apparatus for memory allocation in a multi-core processor system, and recording medium therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190101333A KR102222934B1 (en) 2019-08-19 2019-08-19 Method and apparatus for memory allocation in a multi-core processor system, and recoding medium therefor

Publications (3)

Publication Number Publication Date
KR20210021849A KR20210021849A (en) 2021-03-02
KR102222934B1 true KR102222934B1 (en) 2021-03-04
KR102222934B9 KR102222934B9 (en) 2022-04-11

Family

ID=75169442

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190101333A KR102222934B1 (en) 2019-08-19 2019-08-19 Method and apparatus for memory allocation in a multi-core processor system, and recoding medium therefor

Country Status (1)

Country Link
KR (1) KR102222934B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011141703A (en) 2010-01-06 2011-07-21 Renesas Electronics Corp System, method and program for arranging resource

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101440107B1 (en) * 2008-01-28 2014-09-12 삼성전자주식회사 Memory management method and apparatus based on access time in many-core system
KR101198400B1 (en) * 2008-12-16 2012-11-07 한국전자통신연구원 Memory management apparatus and method
KR101356033B1 (en) * 2011-12-16 2014-01-29 한국과학기술원 Hybrid Main Memory System and Task Scheduling Method therefor
KR20160046223A (en) * 2014-10-20 2016-04-28 한국전자통신연구원 Apparatus and Method for performing multi-core emulation based on multi-threading

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011141703A (en) 2010-01-06 2011-07-21 Renesas Electronics Corp System, method and program for arranging resource

Also Published As

Publication number Publication date
KR20210021849A (en) 2021-03-02
KR102222934B9 (en) 2022-04-11

Similar Documents

Publication Publication Date Title
JP5934094B2 (en) Mapping across multiple processors of processing logic with data parallel threads
CN101743534A (en) By increasing and shrinking resources allocation and dispatch
US8997071B2 (en) Optimized division of work among processors in a heterogeneous processing system
CN104980454A (en) Method, server and system for sharing resource data
US10936377B2 (en) Distributed database system and resource management method for distributed database system
Iturbe et al. Runtime Scheduling, Allocation, and Execution of Real‐Time Hardware Tasks onto Xilinx FPGAs Subject to Fault Occurrence
Kim et al. Operation and data mapping for CGRAs with multi-bank memory
US9218198B2 (en) Method and system for specifying the layout of computer system resources
US9471387B2 (en) Scheduling in job execution
US10223269B2 (en) Method and apparatus for preventing bank conflict in memory
CN111352735A (en) Data acceleration method, device, storage medium and equipment
CN108139929B (en) Task scheduling apparatus and method for scheduling a plurality of tasks
US7991962B2 (en) System and method of using threads and thread-local storage
US9710427B2 (en) Verification of distributed symmetric multi-processing systems
KR102222934B1 (en) Method and apparatus for memory allocation in a multi-core processor system, and recoding medium therefor
CN109582461A (en) A kind of calculation resource disposition method and system for linux container
KR101848418B1 (en) A Memory Policy Aware Thread Placement policy for NUMA-based Linux Servers
US11640321B2 (en) Method and apparatus for memory allocation in a multi-core processor system, and recording medium therefor
CN108984105B (en) Method and device for distributing replication tasks in network storage device
US20140317627A1 (en) Scheduling apparatus and method of dynamically setting the size of a rotating register
Peluso et al. Supports for transparent object-migration in PDES systems
US11163594B2 (en) Rescheduling JIT compilation based on jobs of parallel distributed computing framework
CN108241508B (en) Method for processing OpenCL kernel and computing device for same
CN104809078A (en) Exiting and avoiding mechanism based on hardware resource access method of shared cache
KR101669567B1 (en) Method for managing a placement of virtual machine

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
G170 Re-publication after modification of scope of protection [patent]