KR20220085578A - System and method of linking core in muti-core environment - Google Patents

System and method of linking core in muti-core environment Download PDF

Info

Publication number
KR20220085578A
KR20220085578A KR1020200175754A KR20200175754A KR20220085578A KR 20220085578 A KR20220085578 A KR 20220085578A KR 1020200175754 A KR1020200175754 A KR 1020200175754A KR 20200175754 A KR20200175754 A KR 20200175754A KR 20220085578 A KR20220085578 A KR 20220085578A
Authority
KR
South Korea
Prior art keywords
core
function
interworking
scheduling table
interrupt
Prior art date
Application number
KR1020200175754A
Other languages
Korean (ko)
Other versions
KR102497255B1 (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 KR1020200175754A priority Critical patent/KR102497255B1/en
Publication of KR20220085578A publication Critical patent/KR20220085578A/en
Application granted granted Critical
Publication of KR102497255B1 publication Critical patent/KR102497255B1/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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/5038Allocation 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 the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
  • Exchange Systems With Centralized Control (AREA)

Abstract

본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 코어 연동 시스템 은, 멀티 코어의 연동 요구시, 멀티 코어 중에서 어느 하나의 코어에 인터럽트를 발생시키는 API부, 인터럽트 발생한 코어에서 현재 기능을 수행한 후 다음 수행될 기능이 있는지 확인하고, 다음 수행될 기능의 유무에 따라 다음 기능을 수행할 코어에 인터럽트를 발생시키거나 멀티 코어의 연동을 종료하는 인터럽트 서비스 루틴부, 및 상기 멀티 코어의 기능 수행 순서, 및 기능을 수행할 코어 정보를 포함하는 스케줄링 테이블이 저장되는 스케줄링 테이블부를 포함한다.The core interworking system in a multi-core environment according to a preferred embodiment of the present invention performs the current function in the API unit that generates an interrupt to any one of the multi-core cores when the interworking of the multi-cores is requested, and then performs the current function in the core where the interrupt occurred. An interrupt service routine unit that checks whether there is a function to be performed, generates an interrupt to the core to perform the next function or terminates interworking of the multi-cores according to the presence or absence of the function to be performed next, and the order of performing the functions of the multi-cores, and and a scheduling table unit in which a scheduling table including core information to perform a function is stored.

Figure P1020200175754
Figure P1020200175754

Description

멀티 코어 환경에서 코어 연동 시스템 및 방법{SYSTEM AND METHOD OF LINKING CORE IN MUTI-CORE ENVIRONMENT}Core interlocking system and method in a multi-core environment {SYSTEM AND METHOD OF LINKING CORE IN MUTI-CORE ENVIRONMENT}

본 발명은 멀티 코어 환경에서 코어 연동 시스템 및 방법에 관한 것이다.The present invention relates to a core interworking system and method in a multi-core environment.

일반적으로 차량의 멀티 코어(Multi-Core) 환경에서는 코어 각각의 로직이 개별적으로 동작하며, 코어 각각은 차량 제어 시스템의 특성에 따라 특정 기능을 수행하도록 역할이 분담되어 있다.In general, in a multi-core environment of a vehicle, the logic of each core operates individually, and each of the cores is assigned a role to perform a specific function according to the characteristics of the vehicle control system.

이러한 멀티 코어 환경에서 코어 각각은 특정 기능이 상호 연관되어 수행되도록 요구되는 경우가 있다.In such a multi-core environment, each core may be required to perform a specific function in correlation with each other.

예를 들면, 3 개의 코어가 존재하는 멀티 코어 환경에서, 첫 번째 코어가 제1 기능을 수행한 이후에 두 번째 코어가 제2 기능을 수행하고, 다시 첫 번째 코어가 제3 기능을 수행한 이후에, 마지막으로 세 번째 코어가 제4 기능을 수행하도록 요구되는 경우가 있을 수 있다.For example, in a multi-core environment in which three cores exist, after the first core performs a first function, the second core performs a second function, and after the first core performs a third function, Finally, there may be a case where the third core is required to perform the fourth function.

이러한 기능 수행 순서에 대한 예의 경우, 멀티 코어 환경에서 코어 각각의 로직이 개별적으로 동작함에 따라 특별한 메커니즘 없이는 구현이 불가능한 문제가 있다.In the case of an example of the order of performing these functions, there is a problem that it is impossible to implement without a special mechanism as the logic of each core operates individually in a multi-core environment.

종래의 멀티 코어 기술의 경우, 일반적인 멀티 코어의 스케줄러를 이용하여 코어 각각의 로직 동작에 대한 스케줄링을 지원하였으나, 코어 각각의 기능 수행 순서, 및 코어 로직의 동작 종료에 따른 즉각적인 기능 수행을 위한 타이밍 제어는 지원하지 않는다.In the case of the conventional multi-core technology, scheduling of each logic operation was supported using a general multi-core scheduler. does not support

즉 종래의 멀티 코어 기술의 경우, 상술한 바 있는 기능 수행 순서 예에 대한 구현이 불가하였으며, 상세한 설계로 이를 구현하더라도 그 강건성을 확보하는데 한계가 있다.That is, in the case of the conventional multi-core technology, it is impossible to implement the above-described example of the function execution sequence, and even if it is implemented with a detailed design, there is a limit in securing its robustness.

대한민국 공개특허 제10-2016-0076270호Republic of Korea Patent Publication No. 10-2016-0076270

이에 본 발명은 상기한 사정을 감안하여 안출된 것으로, 멀티 코어 환경에서 코어 각각의 기능이 연동 수행되도록 이를 지원할 수 있는 메커니즘을 제공하는 멀티 코어 환경에서 코어 연동 시스템 및 방법을 제공하는 것을 목적으로 한다.Accordingly, the present invention has been devised in view of the above circumstances, and an object of the present invention is to provide a core interworking system and method in a multi-core environment that provides a mechanism to support the function of each core to be interlocked in a multi-core environment. .

상기 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 코어 연동 시스템은, 멀티 코어의 연동 요구시, 멀티 코어 중에서 어느 하나의 코어에 인터럽트를 발생시키는 API부; 인터럽트 발생한 코어에서 현재 기능을 수행한 후 다음 수행될 기능이 있는지 확인하고, 다음 수행될 기능의 유무에 따라 다음 기능을 수행할 코어에 인터럽트를 발생시키거나 멀티 코어의 연동을 종료하는 인터럽트 서비스 루틴부; 및 상기 멀티 코어의 기능 수행 순서, 및 기능을 수행할 코어 정보를 포함하는 스케줄링 테이블이 저장되는 스케줄링 테이블부;를 포함한다.In order to achieve the above object, a core interworking system in a multi-core environment according to a preferred embodiment of the present invention includes: an API unit for generating an interrupt to any one of the multi-core cores when the interworking of the multi-cores is requested; Interrupt service routine unit that performs the current function in the interrupted core, checks if there is a function to be performed next, and generates an interrupt in the core that will perform the next function or terminates the interworking of multi-cores depending on whether there is a function to be performed next. ; and a scheduling table unit in which a scheduling table including information on a core to perform a function and a function execution order of the multi-core is stored.

상기 API부는, 상기 스케줄링 테이블을 기초로 멀티 코어의 연동이 진행 중인지를 확인하는 비지 체크 API를 포함할 수 있다.The API unit may include a busy check API for checking whether multi-core interworking is in progress based on the scheduling table.

상기 API부는, 멀티 코어의 연동이 미진행 중인 것으로 확인되면, 멀티 코어의 연동이 동시에 요구되지 않도록 상기 스케줄링 테이블의 수정 방지 플래그의 상태를 변경하는 수정 방지 API를 포함할 수 있다.The API unit may include a modification prevention API for changing the state of the modification prevention flag of the scheduling table so that interworking of the multi-cores is not required at the same time when it is confirmed that the interworking of the multi-cores is not in progress.

상기 API부는, 멀티 코어의 연동에 이용되는 코어 ID와 기능 수행 순서를 상기 스케줄링 테이블에 저장하는 기능 정보 추가 API를 포함할 수 있다.The API unit may include a function information addition API for storing a core ID and a function execution order used for interworking of multi-cores in the scheduling table.

상기 API부는, 멀티 코어의 연동 실행을 요청받으면, 멀티 코어의 연동이 진행 중임을 알리도록 상기 스케줄링 테이블의 비지 플래그의 상태를 변경하는 실행 요청 API를 포함할 수 있다.The API unit may include an execution request API for changing a state of a busy flag of the scheduling table to notify that multi-core interworking is in progress when a multi-core interworking execution request is received.

상기 실행 요청 API는, 상기 스케줄링 테이블을 통해 기능이 수행될 코어를 확인하고, 확인되는 코어에 인터럽트를 발생시킬 수 있다.The execution request API may identify a core on which a function is to be performed through the scheduling table, and may generate an interrupt in the checked core.

상기 인터럽트 서비스 루틴부는, 인터럽트 발생한 코어에 의해 호출되면, 상기 스케줄링 테이블의 기능 주소에 따른 기능을 수행하고, 상시 스케줄링 테이블을 통해 다음 수행할 기능이 있는지를 확인할 수 있다.When the interrupt service routine unit is called by the interrupt generating core, it may perform a function according to the function address of the scheduling table and check whether there is a function to be performed next through the regular scheduling table.

상기 인터럽트 서비스 루틴부는, 다음 수행할 기능이 있는 경우, 상기 스케줄링 테이블의 요소 개수를 저감하고, 다음 기능을 수행할 코어에 인터럽트를 발생시킬 수 있다.When there is a function to be performed next, the interrupt service routine unit may reduce the number of elements in the scheduling table and generate an interrupt to a core that will perform the next function.

상기 인터럽트 서비스 루틴부는, 다음 수행할 기능이 없는 경우, 상기 스케줄링 테이블에서 타겟 요소의 포인터를 초기화시키고, 비지 플래그와 수정 방지 플래그의 상태를 변경하며, 멀티 코어의 연동을 종료할 수 있다.The interrupt service routine unit may initialize a pointer of a target element in the scheduling table, change states of a busy flag and a modification prevention flag, and terminate the interworking of the multi-cores, when there is no function to be performed next.

상기 스케줄링 테이블은, 코어의 기능 수행 순서에 대응하는 타겟 요소 포인터, 수행될 기능 정보의 개수에 대응하는 요소의 개수, 멀티 코어의 연동이 진행 중임을 알리는 비지 플래그, 및 스케줄링 테이블의 수정을 방지하는 수정 방지 플래그를 포함할 수 있다.The scheduling table includes a target element pointer corresponding to the function execution order of the core, the number of elements corresponding to the number of function information to be performed, a busy flag indicating that interworking of multi-cores is in progress, and preventing modification of the scheduling table May include anti-modification flags.

상기 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 코어 연동 방법은, 멀티 코어의 연동 요구에 따라, 멀티 코어의 기능 수행 순서와 기능을 수행할 코어 정보를 스케줄링 테이블에 저장하는 정보 수정 단계; 상기 스케줄링 테이블에 따라, 현재 기능을 수행할 코어에 인터럽트를 발생시키는 인터럽트 단계; 인터럽트 발생한 코어에서 상기 스케줄링 테이블을 기초로 현재 기능을 수행하는 기능 수행 단계; 및 상기 기능 수행 단계 이후에, 상기 스케줄링 테이블을 기초로 다음 수행될 기능의 유무에 따라 다음 기능을 수행할 코어에 인터럽트를 발생시키거나, 멀티 코어의 연동을 종료하는 인터럽트 서비스 루틴 단계;를 포함한다.In a core interworking method in a multi-core environment according to a preferred embodiment of the present invention for achieving the above object, according to the interworking request of the multi-core, the function execution order of the multi-core and the core information to perform the function are stored in a scheduling table. information correction; an interrupt step of generating an interrupt to a core to perform a current function according to the scheduling table; a function execution step of performing a current function based on the scheduling table in the interrupted core; and an interrupt service routine step of generating an interrupt to the core to perform the next function or terminating the interworking of the multi-cores after the function execution step, depending on whether a function to be performed next is based on the scheduling table. .

상기 정보 수정 단계 이전에, 상기 스케줄링 테이블을 기초로 멀티 코어의 연동이 진행 중인지를 확인하는 비지 체크 단계를 더 포함할 수 있다.The method may further include a busy check step of confirming whether multi-core interworking is in progress based on the scheduling table before the information modification step.

상기 멀티 코어의 연동이 미진행 중인 것으로 확인되면, 멀티 코어의 연동이 동시에 요구되지 않도록 상기 스케줄링 테이블의 수정 방지 플래그의 상태를 변경하는 수정 방지 단계를 더 포함할 수 있다.If it is confirmed that the interworking of the multi-cores is not in progress, the method may further include a modification prevention step of changing the state of the modification prevention flag of the scheduling table so that interworking of the multi-cores is not required at the same time.

상기 정보 수정 단계는, 상기 멀티 코어의 연동 실행을 요청받으면, 멀티 코어의 연동이 진행 중임을 알리도록 상기 스케줄링 테이블의 비지 플래그의 상태를 변경할 수 있다.The information modification step may change the state of the busy flag of the scheduling table to inform that the multi-core interworking is in progress when the multi-core interworking is requested.

본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 코어 연동 시스템 및 방법에 의하면, 멀티 코어 환경에서 코어 각각의 기능이 연동 수행될 수 있으며, 코어 로직의 동작 종료에 따른 즉각적인 기능 수행을 위한 타이밍 제어가 가능하다.According to the core interworking system and method in a multi-core environment according to a preferred embodiment of the present invention, each function of each core can be interlocked in a multi-core environment, and timing control for immediate function execution according to the end of the operation of the core logic is possible. It is possible.

또한, 멀티 코어의 연동이 필요한 차량 제어 시스템에서 타이밍 또는 기능 수행 순서에 민감한 로직에 대한 핸들링이 가능하도록 함으로써, 제어 효율이 향상되고 로직의 강건성을 확보하는 효과가 있다.In addition, by enabling handling of logic sensitive to timing or function execution order in a vehicle control system requiring interworking of multi-cores, control efficiency is improved and logic robustness is secured.

도 1은 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 코어 연동 시스템의 블록도이다.
도 2는 도 1의 스케줄링 테이블부의 기능 수행 순서에 따른 멀티 코어의 동작 순서를 나타내는 도면이다.
도 3은 도 1의 API부의 동작 순서 및 동작 순서에 따른 스케줄링 테이블의 데이터의 일 예를 보여주는 도면이다.
도 4는 도 3의 첫 번째 인터럽트 발생한 코어의 동작 순서 및 동작 순서에 따른 스케줄링 테이블의 데이터의 일 예를 보여주는 도면이다.
도 5는 도 3의 두 번째 인터럽트 발생한 코어의 동작 순서 및 동작 순서에 따른 스케줄링 테이블의 데이터의 일 예를 보여주는 도면이다.
도 6은 도 3의 세 번째 인터럽트 발생한 코어의 동작 순서 및 동작 순서에 따른 스케줄링 테이블의 데이터의 일 예를 보여주는 도면이다.
도 7은 도 3의 네 번째 인터럽트 발생한 코어의 동작 순서 및 동작 순서에 따른 스케줄링 테이블의 데이터의 일 예를 보여주는 도면이다.
도 8은 도 1의 API부의 메커니즘의 일 예를 설명하기 위한 도면이다.
도 9는 도 1의 인터럽트 서비스 루틴부의 메커니즘의 일 예를 설명하기 위한 도면이다.
도 10은 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 코어 연동 방법의 순서도이다.
1 is a block diagram of a core interworking system in a multi-core environment according to a preferred embodiment of the present invention.
FIG. 2 is a diagram illustrating an operation sequence of a multi-core according to a function execution sequence of the scheduling table unit of FIG. 1 .
FIG. 3 is a diagram illustrating an example of an operation sequence of the API unit of FIG. 1 and data of a scheduling table according to the operation sequence;
FIG. 4 is a diagram illustrating an operation sequence of the first interrupt generated core of FIG. 3 and an example of data of a scheduling table according to the operation sequence;
FIG. 5 is a diagram illustrating an example of an operation sequence of a core that has generated a second interrupt of FIG. 3 and data of a scheduling table according to the operation sequence;
FIG. 6 is a diagram illustrating an operation sequence of a core in which a third interrupt has occurred in FIG. 3 and an example of data of a scheduling table according to the operation sequence;
FIG. 7 is a diagram illustrating an operation sequence of a core in which a fourth interrupt has occurred in FIG. 3 and an example of data of a scheduling table according to the operation sequence.
FIG. 8 is a diagram for explaining an example of the mechanism of the API unit of FIG. 1 .
FIG. 9 is a diagram for explaining an example of a mechanism of the interrupt service routine unit of FIG. 1 .
10 is a flowchart of a core interworking method in a multi-core environment according to a preferred embodiment of the present invention.

이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 우선 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 이하에서 본 발명의 바람직한 실시예를 설명할 것이나, 본 발명의 기술적 사상은 이에 한정하거나 제한되지 않고 당업자에 의해 변형되어 다양하게 실시될 수 있음은 물론이다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. First of all, it should be noted that in adding reference numerals to the components of each drawing, the same components are given the same reference numerals as much as possible even though they are indicated on different drawings. In addition, preferred embodiments of the present invention will be described below, but the technical spirit of the present invention is not limited thereto and may be variously implemented by those skilled in the art without being limited thereto.

도 1은 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 코어 연동 시스템의 블록도이다.1 is a block diagram of a core interworking system in a multi-core environment according to a preferred embodiment of the present invention.

도 1을 참고하면, 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 코어 연동 시스템(100)은 멀티 코어의 순차적인 기능 수행이 가능하도록, 인터럽트 서비스 콜(Interrupt Service Call) 기능을 통해 멀티 코어를 연동시키고, 멀티 코어의 기능에 대해 스케줄링하는 것을 특징으로 한다.Referring to FIG. 1 , in a multi-core environment according to a preferred embodiment of the present invention, the core interworking system 100 connects multiple cores through an Interrupt Service Call function so that the sequential functions of the multi-cores can be performed. It is characterized by interworking and scheduling for multi-core functions.

따른 멀티 코어 환경에서 코어 연동 시스템(100)은, API부(110), 인터럽트 서비스 루틴부(120), 및 스케줄링 테이블부(130)를 포함한다.In the multi-core environment, the core interworking system 100 includes an API unit 110 , an interrupt service routine unit 120 , and a scheduling table unit 130 .

API부(110)는 멀티 코어 환경하의 특정 코어에서 멀티 코어 연동을 요구하는 경우, 스케줄링 테이블을 이용하여 멀티 코어의 연동을 실행할 수 있다.When a specific core under a multi-core environment requests multi-core interworking, the API unit 110 may execute multi-core interworking by using a scheduling table.

API부(110)는 스케줄링 테이블을 조작하여 기능 정보를 추가하는 기능 정보 추가(Add Function Information) API(111), 멀티 코어의 연동이 진행 중인지를 확인하는 비지 체크(Check Busy) API(113), 멀티 코어의 연동 실행을 요청하는 실행 요청(Execution Request) API(115), 및 다른 코어에서 멀티 코어의 연동을 동시에 요구하지 않도록, 스케줄링 테이블의 정보 수정을 방지하는 수정 방지(Protect Modification) API(117)을 포함할 수 있다.The API unit 110 includes an Add Function Information API 111 for adding function information by manipulating a scheduling table, a Check Busy API 113 for checking whether multi-core interworking is in progress, Execution Request API 115 for requesting interworking execution of multi-cores, and Protect Modification API 117 for preventing modification of information in the scheduling table so as not to simultaneously request interworking of multi-cores from other cores ) may be included.

인터럽트 서비스 루틴부(120)는 멀티 코어 각각에 구비될 수 있다. 인터럽트 서비스 루틴부(120)는 API부(110)에 의한 인터럽트 발생시, 인터럽트 서비스 콜 기능을 통해 수행할 기능을 불러올 수 있다. 인터럽트 서비스 루틴부(120)는 불러온 기능을 수행한 후 다음 수행될 기능이 있는지 확인할 수 있다. 인터럽트 서비스 루틴부(120)는 다음 수행될 기능의 유무에 따라 멀티 코어 중에서 다른 어느 하나의 코어에 인터럽트를 발생시키거나 기능 수행을 종료할 수 있다. 인터럽트 서비스 루틴부(120)는 실행이 보장될 수 있도록 높은 우선순위를 가질 수 있다. 여기서, 우선순위의 레벨은 차량 제어 시스템의 요구 사항에 따라 적절히 적용될 수 있다.The interrupt service routine unit 120 may be provided in each of the multi-cores. The interrupt service routine unit 120 may call a function to be performed through an interrupt service call function when an interrupt is generated by the API unit 110 . After performing the called function, the interrupt service routine unit 120 may check whether there is a function to be performed next. The interrupt service routine unit 120 may generate an interrupt in any one of the multi-core cores or end function execution according to the presence or absence of a function to be performed next. The interrupt service routine unit 120 may have a high priority so that execution can be guaranteed. Here, the level of priority may be appropriately applied according to the requirements of the vehicle control system.

스케줄링 테이블부(130)는 인터럽트 서비스 콜 기능에 따른 멀티 코어의 기능 수행 순서, 및 기능을 수행할 코어 정보를 포함하는 스케줄링 테이블(Scheduling Table)이 저장된다. 스케줄링 테이블에는 기능 정보 어레이(Function Information Array)와 제어 데이터(Control Datas)가 포함될 수 있다.The scheduling table unit 130 stores a scheduling table including information on a multi-core function execution order according to an interrupt service call function, and core information to perform a function. The scheduling table may include a function information array and control data.

기능 정보 어레이는 코어 ID, 기능 주소(Function Address)를 가지는 기능 어레이(Function Array)를 포함할 수 있다.The function information array may include a function array having a core ID and a function address.

제어 데이터는 코어의 기능 수행 순서를 나타내는 타겟 요소 포인터(Pointer of Target element), 요소의 개수(Number of Element), 멀티 코어의 연동이 진행중임을 알리는 비지 플래그(Busy Flag), 및 스케줄링 테이블의 수정을 방지하는 수정 방지 플래그(Modification Protection Flag)를 포함할 수 있다.The control data includes a pointer of a target element indicating the order in which the core functions perform, the number of elements, a busy flag indicating that multi-core interworking is in progress, and modification of the scheduling table. It may include a modification protection flag to prevent it.

인터럽트 서비스 루틴부(120)는 스케줄링 테이블의 데이터를 참조할 수 있다. 스케줄링 테이블은 멀티 코어 각각의 인터럽트 서비스 루틴부(120)에서 접근할 수 있도록 공유 메모리(Shared Memory) 영역에 저장된다.The interrupt service routine unit 120 may refer to data of the scheduling table. The scheduling table is stored in a shared memory area to be accessed by the interrupt service routine unit 120 of each multi-core.

이하에서는, 기능 수행 순서의 일 예에 따른 멀티 코어의 동작 순서를 설명한다.Hereinafter, the operation sequence of the multi-core according to an example of the function execution sequence will be described.

도 2는 도 1의 스케줄링 테이블의 기능 수행 순서에 따른 멀티 코어의 동작 순서를 나타내는 도면이다.FIG. 2 is a diagram illustrating an operation sequence of a multi-core according to a function execution sequence of the scheduling table of FIG. 1 .

도 2를 참고하면, 멀티 코어는 제1 코어(Core #1), 제2 코어(Core #2), 및 제3 코어(Core #3)를 포함할 수 있다.Referring to FIG. 2 , a multi-core may include a first core (Core #1), a second core (Core #2), and a third core (Core #3).

제1 기능(Function #1), 제2 기능(Function #2), 제3 기능(Function #3), 제4 기능(Function #4), 및 제5 기능(Function #5)의 순서로 기능 수행 순서(Sequence)가 마련될 수 있다. 여기서, 제1 기능(Function #1)과 제5 기능(Function #5)은 제1 코어(Core #1)에 의해 수행될 수 있다. 또한, 제2 기능(Function #2)과 제4 기능(Function #4)은 제2 코어(Core #2)에 의해 수행될 수 있다. 또한, 제3 기능(Function #3) 은 제3 코어(Core #3)에 의해 수행될 수 있다.Functions are performed in the order of the first function (Function #1), the second function (Function #2), the third function (Function #3), the fourth function (Function #4), and the fifth function (Function #5). A sequence may be provided. Here, the first function (Function #1) and the fifth function (Function #5) may be performed by the first core (Core #1). Also, the second function (Function #2) and the fourth function (Function #4) may be performed by the second core (Core #2). Also, the third function (Function #3) may be performed by the third core (Core #3).

멀티 코어 환경에서 코어 연동 시스템(100)은 특정 코어에서 멀티 코어의 연동 요구시, 멀티 코어 각각의 태스크 스케줄링과 상관없이, 스케줄링 테이블의 기능 수행 순서 및 타이밍으로 멀티 코어 각각의 로직이 유기적으로 동작되도록 할 수 있다.In a multi-core environment, the core interworking system 100 enables the logic of each of the multi-cores to be organically operated with the function execution order and timing of the scheduling table, regardless of task scheduling of each multi-core, when the interworking of the multi-cores is requested in a specific core. can do.

일 실시예에 있어서, 제1 코어(Core #1)는 멀티 코어의 기능 수행 순서를 설정하고, API부(110)를 이용하여 스케줄링 테이블의 기능 수행 순서 및 코어 정보를 수정할 수 있다. 제1 코어(Core #1)는 멀티 코어의 연동 실행을 API부(110)에 요청할 수 있다. API부(110)에 의해 멀티 코어의 연동이 실행되면, 제1 코어(Core #1)는 기능 수행 순서(Sequence)에 따라 제1 기능(Function #1)을 수행할 수 있다.In an embodiment, the first core (Core #1) may set the function execution order of the multi-core, and may use the API unit 110 to modify the function execution order and core information of the scheduling table. The first core (Core #1) may request the multi-core interworking execution from the API unit 110 . When the multi-core interworking is executed by the API unit 110 , the first core Core #1 may perform the first function Function #1 according to the function execution sequence.

제1 코어(Core #1)의 제1 기능(Function #1) 수행이 종료되면, 제3 코어(Core #3)는 하던 작업을 멈추고 제2 기능(Function #2)을 수행할 수 있다.When the performance of the first function (Function #1) of the first core (Core #1) is finished, the third core (Core #3) may stop the current work and perform the second function (Function #2).

제3 코어(Core #3)의 제2 기능(Function #2) 수행이 종료되면, 제2 코어(Core #2)는 하던 작업을 멈추고 제3 기능(Function #3)을 수행할 수 있다.When the execution of the second function (Function #2) of the third core (Core #3) is finished, the second core (Core #2) may stop the current work and perform the third function (Function #3).

제2 코어(Core #2)의 제3 기능(Function #3) 수행이 종료되면, 제3 코어(Core #3)는 하던 작업을 멈추고 제4 기능(Function #4)을 수행할 수 있다.When the execution of the third function (Function #3) of the second core (Core #2) is finished, the third core (Core #3) may stop the current work and perform the fourth function (Function #4).

제3 코어(Core #3)의 제4 기능(Function #4) 수행이 종료되면, 제1 코어(Core #1)는 하던 작업을 멈추고 제5 기능(Function #5)을 수행할 수 있다.When the execution of the fourth function (Function #4) of the third core (Core #3) is finished, the first core (Core #1) may stop the current work and perform the fifth function (Function #5).

이하에서는, 멀티 코어의 연동 요구시, API부(110)의 동작을 설명한다.Hereinafter, the operation of the API unit 110 when a multi-core interworking request is made will be described.

도 3은 도 1의 API부의 동작 순서 및 동작 순서에 따른 스케줄링 테이블의 데이터의 일 예를 보여주는 도면이다.FIG. 3 is a diagram showing an example of an operation sequence of the API unit of FIG. 1 and data of a scheduling table according to the operation sequence;

도 3을 참고하면, 특정 코어에서 멀티 코어의 연동 요구에 따른 API부(110)의 동작 순서를 확인할 수 있다.Referring to FIG. 3 , an operation sequence of the API unit 110 according to a multi-core interworking request in a specific core may be checked.

먼저, 특정 코어에서 동작 중 멀티 코어의 연동이 필요한 경우, 해당 특정 코어는 멀티 코어의 연동이 진행 중인지를 확인하는 비지 체크 API(113)를 호출한다.First, when interworking of multi-cores is required during operation in a specific core, the specific core calls the busy check API 113 to check whether interworking of multi-cores is in progress.

비지 체크 API(113)는 스케줄링 테이블의 비지 플래그를 통해 멀티 코어의 연동이 진행 중인지를 확인하고, 멀티 코어의 연동 진행 여부를 해당 특정 코어에 전달한다. 해당 특정 코어는 멀티 코어의 연동이 미진행 중으로 확인되면, 멀티 코어의 연동 실행 관련한 조작을 금지하는 수정 방지 API(117)를 호출한다.The busy check API 113 checks whether multi-core interworking is in progress through the busy flag of the scheduling table, and transmits whether multi-core interworking is in progress to the specific core. When it is confirmed that the interworking of the multi-core is not in progress, the specific core calls the modification prevention API 117 that prohibits the operation related to the interworking of the multi-core.

수정 방지 API(117)는 멀티 코어의 연동이 동시에 요구되지 않도록, 스케줄링 테이블의 수정 방지 플래그(Modification Protection Flag)의 상태를 거짓(FALSE)에서 참(TRUE)으로 변경한다. 이를 통해, 해당 특정 코어가 아닌 다른 코어에서 참으로 상태 변경된 수정 방지 플래그를 확인하는 경우, 멀티 코어의 연동을 요구하지 않게 된다.The modification protection API 117 changes the state of the modification protection flag of the scheduling table from FALSE to TRUE so that interworking of multiple cores is not required at the same time. Through this, when the state-changed modification prevention flag is checked in a core other than the specific core, interworking of multi-cores is not required.

이와 같은 과정이 완료되면, 해당 특정 코어는 스케줄링 테이블의 데이터를 수정하기 위해 기능 정보 추가 API(111)를 호출한다. 해당 특정 코어는 기능 수행 순서와 기능이 수행될 코어 ID를 기능 정보 추가 API(111)로 전달한다.When this process is completed, the specific core calls the function information addition API 111 to modify the data of the scheduling table. The specific core transmits the function execution order and the core ID on which the function is to be performed to the function information addition API 111 .

기능 정보 추가 API(111)는 전달받은 코어 ID, 기능 수행 순서, 및 요소의 개수를 스케줄링 테이블에 저장한다. 여기서, 기능 정보 추가 API(111)는 전달받은 기능 정보의 개수에 따라 요소의 개수를 스케줄링 테이블에 저장할 수 있다.The function information addition API 111 stores the received core ID, function execution order, and the number of elements in the scheduling table. Here, the function information addition API 111 may store the number of elements in the scheduling table according to the number of the received function information.

일 실시예에 있어서, 기능 정보 추가 API(111)는 제1 코어(Core #1)의 제1 기능(Function #1)을 기능 정보 어레이의 첫 번째 기능 주소(Function Address [0])에 저장할 수 있다.In one embodiment, the function information addition API 111 may store the first function (Function #1) of the first core (Core #1) in the first function address (Function Address [0]) of the function information array. have.

그런 다음, 기능 정보 추가 API(111)는 제3 코어(Core #3)의 제2 기능(Function #2)을 기능 정보 어레이의 두 번째 기능 주소(Function Address [1])에 저장할 수 있다.Then, the function information addition API 111 may store the second function (Function #2) of the third core (Core #3) in the second function address (Function Address [1]) of the function information array.

그런 다음, 기능 정보 추가 API(111)는 제2 코어(Core #2)의 제3 기능(Function #3)을 기능 정보 어레이의 세 번째 기능 주소(Function Address [2])에 저장할 수 있다.Then, the function information addition API 111 may store the third function (Function #3) of the second core (Core #2) in the third function address (Function Address [2]) of the function information array.

마지막으로, 기능 정보 추가 API(111)는 제1 코어(Core #1)의 제4 기능(Function #4)을 기능 정보 어레이의 네 번째 기능 주소(Function Address [3])에 저장할 수 있다.Finally, the function information addition API 111 may store the fourth function (Function #4) of the first core (Core #1) in the fourth function address (Function Address [3]) of the function information array.

해당 특정 코어는 모든 정보의 등록이 완료되면, 실행 요청 API(115)에 연동 실행을 요청한다.When the registration of all information is completed, the specific core requests interworking execution to the execution request API 115 .

실행 요청 API(115)는 연동 실행을 요청받으면, 멀티 코어의 연동이 진행중임을 알리는 비지 플래그의 상태를 거짓(FALSE)에서 참(TRUE)으로 변경한다.When the execution request API 115 receives a request for interworking execution, it changes the state of the busy flag indicating that interworking of multi-cores is in progress from FALSE to TRUE.

실행 요청 API(115)는 스케줄링 테이블을 통해 가장 먼저 수행되어야 할 코어의 정보를 확인한다. 실행 요청 API(115)는 기능이 수행될 코어에 인터럽트를 발생시킨다.The execution request API 115 checks information on the core to be executed first through the scheduling table. The execution request API 115 generates an interrupt to the core in which the function is to be performed.

이하에서는, 도 4 내지 도 7을 참고하여 인터럽트가 발생한 코어의 동작을 설명한다.Hereinafter, the operation of the core in which the interrupt has occurred will be described with reference to FIGS. 4 to 7 .

도 4는 도 3의 첫 번째 인터럽트 발생한 코어의 동작 순서 및 동작 순서에 따른 스케줄링 테이블의 데이터의 일 예를 보여주는 도면이다.FIG. 4 is a diagram showing an operation sequence of the first interrupt generated core of FIG. 3 and an example of data of a scheduling table according to the operation sequence;

도 4를 참고하면, 실행 요청 API(115)에 의해 첫 번째 인터럽트 발생한 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)의 동작 순서를 확인할 수 있다.Referring to FIG. 4 , the operation sequence of the interrupt service routine unit 120 of the first core (Core #1) in which the first interrupt is generated by the execution request API 115 may be checked.

제1 코어(Core #1)는 실행 요청 API(115)에 의해 인터럽트가 발생하면, 인터럽트 서비스 루틴부(120)를 호출한다. 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 인터럽트 발생에 의해 동작하며, 스케줄링 테이블의 첫 번째 기능 주소(Function Address [0])를 불러온다. 이때 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 다음 타겟 요소를 지시하도록 스케줄링 테이블의 타겟 요소 포인터를 ‘1’ 증가시키고, 요소의 개수를 ‘1’ 차감한다.When an interrupt is generated by the execution request API 115 , the first core (Core #1) calls the interrupt service routine unit 120 . The interrupt service routine unit 120 of the first core (Core #1) operates by generating an interrupt and calls the first function address (Function Address [0]) of the scheduling table. At this time, the interrupt service routine unit 120 of the first core (Core #1) increments the target element pointer of the scheduling table by '1' to indicate the next target element, and subtracts the number of elements by '1'.

그런 다음, 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 첫 번째 기능 주소(Function Address [0])에 따라 제1 기능(Function #1)을 수행한다.Then, the interrupt service routine unit 120 of the first core (Core #1) performs the first function (Function #1) according to the first function address (Function Address [0]).

그런 다음, 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 스케줄링 테이블을 통해 다음으로 수행될 기능이 있는지 확인한다.Then, the interrupt service routine unit 120 of the first core (Core #1) checks whether there is a function to be performed next through the scheduling table.

일 실시예에 있어서, 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 다음 진행할 기능이 있는 경우, 다음 기능을 수행할 제3 코어(Core #3)에 인터럽트를 발생시키고 제1 코어(Core #1)의 기능 수행을 종료한다.In one embodiment, when there is a function to proceed next, the interrupt service routine unit 120 of the first core (Core #1) generates an interrupt to the third core (Core #3) that will perform the next function and generates the first Terminates the function of the core (Core #1).

도 5는 도 3의 두 번째 인터럽트 발생한 코어의 동작 순서 및 동작 순서에 따른 스케줄링 테이블의 데이터의 일 예를 보여주는 도면이다.FIG. 5 is a diagram illustrating an operation sequence of a core in which a second interrupt occurs in FIG. 3 and an example of data of a scheduling table according to the operation sequence;

도 5를 참고하면, 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)에 의해 두 번째 인터럽트 발생한 제3 코어(Core #3)의 인터럽트 서비스 루틴부(120)의 동작 순서를 확인할 수 있다.Referring to FIG. 5 , the operation sequence of the interrupt service routine unit 120 of the third core (Core #3) in which the second interrupt is generated by the interrupt service routine unit 120 of the first core (Core #1) can be checked. have.

제3 코어(Core #3)는 인터럽트가 발생하면, 인터럽트 서비스 루틴부(120)를 호출한다. 제3 코어(Core #3)의 인터럽트 서비스 루틴부(120)는 인터럽트 발생에 의해 동작하며, 스케줄링 테이블의 두 번째 기능 주소(Function Address [1])를 불러온다. 이때 제3 코어(Core #3)의 인터럽트 서비스 루틴부(120)는 다음 타겟 요소를 지시하도록 스케줄링 테이블의 타겟 요소 포인터를 ‘1’ 증가시키고, 요소의 개수를 ‘1’ 차감한다.When an interrupt occurs, the third core (Core #3) calls the interrupt service routine unit 120 . The interrupt service routine unit 120 of the third core (Core #3) operates by generating an interrupt and calls the second function address (Function Address [1]) of the scheduling table. At this time, the interrupt service routine unit 120 of the third core (Core #3) increments the target element pointer of the scheduling table by '1' to indicate the next target element, and subtracts the number of elements by '1'.

그런 다음, 제3 코어(Core #3)의 인터럽트 서비스 루틴부(120)는 두 번째 기능 주소(Function Address [1])에 따라 제2 기능(Function #2)을 수행한다.Then, the interrupt service routine unit 120 of the third core (Core #3) performs the second function (Function #2) according to the second function address (Function Address [1]).

그런 다음, 제3 코어(Core #3)의 인터럽트 서비스 루틴부(120)는 스케줄링 테이블을 통해 다음으로 수행될 기능이 있는지 확인한다.Then, the interrupt service routine unit 120 of the third core (Core #3) checks whether there is a function to be performed next through the scheduling table.

일 실시예에 있어서, 제3 코어(Core #3)의 인터럽트 서비스 루틴부(120)는 다음 진행할 기능이 있는 경우, 다음 기능을 수행할 제2 코어(Core #2)에 인터럽트를 발생시키고 제3 코어(Core #3)의 기능 수행을 종료한다.In one embodiment, when there is a function to proceed next, the interrupt service routine unit 120 of the third core (Core #3) generates an interrupt to the second core (Core #2) that will perform the next function and generates a third Terminates the execution of the function of the core (Core #3).

도 6은 도 3의 세 번째 인터럽트 발생한 코어의 동작 순서 및 동작 순서에 따른 스케줄링 테이블의 데이터의 일 예를 보여주는 도면이다.FIG. 6 is a diagram illustrating an operation sequence of a core that has generated a third interrupt of FIG. 3 and an example of data of a scheduling table according to the operation sequence;

도 6을 참고하면, 제3 코어(Core #3)의 인터럽트 서비스 루틴부(120)에 의해 세 번째 인터럽트 발생한 제2 코어(Core #2)의 인터럽트 서비스 루틴부(120)의 동작 순서를 확인할 수 있다.Referring to FIG. 6 , the operation sequence of the interrupt service routine unit 120 of the second core (Core #2) in which the third interrupt is generated by the interrupt service routine unit 120 of the third core (Core #3) can be checked. have.

제2 코어(Core #2)는 인터럽트가 발생하면, 인터럽트 서비스 루틴부(120)를 호출한다. 제2 코어(Core #2)의 인터럽트 서비스 루틴부(120)는 인터럽트 발생에 의해 동작하며, 스케줄링 테이블의 세 번째 기능 주소(Function Address [2])를 불러온다. 이때 제2 코어(Core #2)의 인터럽트 서비스 루틴부(120)는 다음 타겟 요소를 지시하도록 스케줄링 테이블의 타겟 요소 포인터를 ‘1’ 증가시키고, 요소의 개수를 ‘1’ 차감한다.When an interrupt occurs, the second core (Core #2) calls the interrupt service routine unit 120 . The interrupt service routine unit 120 of the second core (Core #2) operates by generating an interrupt and calls the third function address (Function Address [2]) of the scheduling table. At this time, the interrupt service routine unit 120 of the second core (Core #2) increments the target element pointer of the scheduling table by '1' to indicate the next target element, and subtracts the number of elements by '1'.

그런 다음, 제2 코어(Core #2)의 인터럽트 서비스 루틴부(120)는 세 번째 기능 주소(Function Address [2])에 따라 제3 기능(Function #3)을 수행한다.Then, the interrupt service routine unit 120 of the second core (Core #2) performs a third function (Function #3) according to the third function address (Function Address [2]).

그런 다음, 제2 코어(Core #2)의 인터럽트 서비스 루틴부(120)는 스케줄링 테이블을 통해 다음으로 수행될 기능이 있는지 확인한다.Then, the interrupt service routine unit 120 of the second core (Core #2) checks whether there is a function to be performed next through the scheduling table.

일 실시예에 있어서, 제2 코어(Core #2)의 인터럽트 서비스 루틴부(120)는 다음 진행할 기능이 있는 경우, 다음 기능을 수행할 제1 코어(Core #1)에 인터럽트를 발생시키고 제2 코어(Core #2)의 기능 수행을 종료한다.In one embodiment, when there is a function to proceed next, the interrupt service routine unit 120 of the second core (Core #2) generates an interrupt to the first core (Core #1) that will perform the next function and generates a second Terminates the function of the core (Core #2).

도 7은 도 3의 네 번째 인터럽트 발생한 코어의 동작 순서 및 동작 순서에 따른 스케줄링 테이블의 데이터의 일 예를 보여주는 도면이다.FIG. 7 is a diagram illustrating an operation sequence of a core in which a fourth interrupt has occurred in FIG. 3 and an example of data of a scheduling table according to the operation sequence;

도 7을 참고하면, 제2 코어(Core #2)의 인터럽트 서비스 루틴부(120)에 의해 네 번째 인터럽트 발생한 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)의 동작 순서를 확인할 수 있다.Referring to FIG. 7 , the operation sequence of the interrupt service routine unit 120 of the first core (Core #1) in which the fourth interrupt is generated by the interrupt service routine unit 120 of the second core (Core #2) can be checked. have.

제1 코어(Core #1)는 인터럽트가 발생하면, 인터럽트 서비스 루틴부(120)를 호출한다. 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 인터럽트 발생에 의해 동작하며, 스케줄링 테이블의 네 번째 기능 주소(Function Address [3])를 불러온다. 이때 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 스케줄링 테이블의 요소의 개수를 ‘1’ 차감한다. 또한 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 요소의 개수가 0이 되는 경우, 스케줄링 테이블의 타겟 요소 포인터를 ‘1’ 증가시키지 않고, ‘0’으로 초기화시킬 수 있다.When an interrupt occurs, the first core (Core #1) calls the interrupt service routine unit 120 . The interrupt service routine unit 120 of the first core (Core #1) operates by generating an interrupt and calls the fourth function address (Function Address [3]) of the scheduling table. At this time, the interrupt service routine unit 120 of the first core (Core #1) subtracts '1' from the number of elements in the scheduling table. Also, when the number of elements becomes 0, the interrupt service routine unit 120 of the first core (Core #1) may initialize the target element pointer of the scheduling table to '0' without increasing '1'.

그런 다음, 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 네 번째 기능 주소(Function Address [3])에 따라 제4 기능(Function #3)을 수행한다.Then, the interrupt service routine unit 120 of the first core (Core #1) performs the fourth function (Function #3) according to the fourth function address (Function Address [3]).

그런 다음, 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 스케줄링 테이블을 통해 다음으로 수행될 기능이 있는지 확인한다.Then, the interrupt service routine unit 120 of the first core (Core #1) checks whether there is a function to be performed next through the scheduling table.

일 실시예에 있어서, 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 더 이상 진행할 기능이 없는 경우, 멀티 코어의 연동이 진행 상태가 아님을 알리도록 비지 플래그의 상태를 참에서 거짓으로 변환하고, 스케줄링 테이블의 정보 수정이 가능하도록 수정 방지 플래그의 상태를 참에서 거짓으로 변환한 후 멀티 코어의 연동을 종료한다.In one embodiment, when there is no further function to proceed, the interrupt service routine unit 120 of the first core (Core #1) sets the state of the busy flag from true to inform that the interworking of the multi-core is not in progress. It is converted to false, and the state of the modification prevention flag is changed from true to false so that the information of the scheduling table can be modified, and then the interworking of the multi-core is terminated.

도 4 내지 도 7에서 설명한 과정은 스케줄링 테이블의 요소가 모두 사라질 때까지 반복되며, 이러한 과정을 통해 멀티 코어의 연동이 진행된다.The process described with reference to FIGS. 4 to 7 is repeated until all elements of the scheduling table disappear, and multi-core interworking is performed through this process.

도 8은 도 1의 API부의 메커니즘의 일 예를 설명하기 위한 도면이다.FIG. 8 is a diagram for explaining an example of the mechanism of the API unit of FIG. 1 .

도 8을 참고하면, API부(110)는 비지 체크 API(113), 수정 방지 API(117), 기능 정보 추가 API(111), 및 실행 요청 API(115) 순서로 설계될 수 있다.Referring to FIG. 8 , the API unit 110 may be designed in the order of a busy check API 113 , a modification prevention API 117 , a function information addition API 111 , and an execution request API 115 .

비지 체크 API(113)는 스케줄링 테이블의 비지 플래그를 통해 멀티 코어의 연동이 진행 중임을 확인할 수 있다.The busy check API 113 may confirm that multi-core interworking is in progress through the busy flag of the scheduling table.

수정 방지 API(117)는 스케줄링 테이블의 수정 방지 플래그의 상태를 거짓(FALSE)에서 참(TRUE)으로 변경함으로써 다른 코어에서 멀티 코어의 연동 요구가 이루어지지 않도록 할 수 있다.The modification protection API 117 may change the state of the modification protection flag of the scheduling table from false (FALSE) to true (TRUE) so that the interworking request of the multi-core is not made in another core.

기능 정보 추가 API(111)는 코어 ID와 기능 주소를 스케줄링 테이블의 기능 정보 어레이에 추가할 수 있다. 또한, 기능 정보 추가 API(111)는 기능 정보의 개수에 따라 요소의 개수를 증가시킬 수 있다.The function information addition API 111 may add a core ID and a function address to the function information array of the scheduling table. Also, the function information addition API 111 may increase the number of elements according to the number of function information.

실행 요청 API(115)는 요소의 개수가 ‘0’으로 스케줄링 테이블이 비어 있는 상태에서 호출되는 경우, 스케줄링 테이블의 수정 방지 플래그의 상태를 참(TRUE)에서 거짓(FALSE)으로 변경할 수 있다.When the execution request API 115 is called while the number of elements is '0' and the scheduling table is empty, the state of the modification prevention flag of the scheduling table may be changed from TRUE to FALSE.

실행 요청 API(115)는 요소의 개수가 ‘1’ 이상으로 스케줄링 테이블이 비어있지 않은 상태에서 호출되는 경우, 스케줄링 테이블의 비지 플래그의 상태를 거짓(FALSE)에서 참(TRUE)으로 변경할 수 있다. 또한, 실행 요청 API(115)는 기능 정보 어레이로부터 기능 수행될 코어 ID를 불러온 뒤 해당 코어에 인터럽트를 발생시킬 수 있다.When the number of elements is '1' or more and the execution request API 115 is called while the scheduling table is not empty, the state of the busy flag of the scheduling table may be changed from FALSE to TRUE. In addition, the execution request API 115 may generate an interrupt to the corresponding core after calling the ID of the core to which the function is to be performed from the function information array.

도 9는 도 1의 인터럽트 서비스 루틴부의 메커니즘의 일 예를 설명하기 위한 도면이다.FIG. 9 is a diagram for explaining an example of a mechanism of the interrupt service routine unit of FIG. 1 .

도 9를 참고하면, 인터럽트 서비스 루틴부(120)는 스케줄링 테이블을 통해 해당 코어에서 수행할 기능 주소를 불러온다. 이 때, 인터럽트 서비스 루틴부(120)는 요소의 개수를 ‘1’ 감소할 수 있다. 일 실시예에 있어서, 요소의 개수가 ‘0’에 도달하는 경우, 인터럽트 서비스 루틴부(120)는 타겟 요소의 포인터를 ‘0’으로 리셋시킬 수 있다. 인터럽트 서비스 루틴부(120)는 요소의 개수가 ‘0’ 도달하지 않은 경우, 타겟 요소의 포인터를 ‘1’ 증가시켜 다음 요소를 지시할 수 있다. 이후, 인터럽트 서비스 루틴부(120)는 기능 주소에 따라 기능을 수행한다.Referring to FIG. 9 , the interrupt service routine unit 120 calls a function address to be performed by the corresponding core through the scheduling table. In this case, the interrupt service routine unit 120 may decrease the number of elements by '1'. In an embodiment, when the number of elements reaches '0', the interrupt service routine unit 120 may reset the pointer of the target element to '0'. When the number of elements does not reach '0', the interrupt service routine unit 120 may indicate the next element by increasing the pointer of the target element by '1'. Thereafter, the interrupt service routine unit 120 performs a function according to the function address.

그런 다음 인터럽트 서비스 루틴부(120)는 요소의 개수를 통해 다음으로 수행될 기능이 있는지 확인한다.Then, the interrupt service routine unit 120 checks whether there is a function to be performed next through the number of elements.

일 실시예에 있어서, 인터럽트 서비스 루틴부(120)는 다음으로 수행될 기능이 있는 경우, 다음 기능을 수행할 코어에 인터럽트를 발생시킨 뒤 동작을 종료한다.In one embodiment, when there is a function to be performed next, the interrupt service routine unit 120 generates an interrupt in the core to perform the next function and then ends the operation.

인터럽트 서비스 루틴부(120)는 다음으로 수행될 기능이 없는 경우, 비지 플래그와 수정 방지 플래그를 초기화시킨 후 멀티 코어의 연동을 종료한다.When there is no function to be performed next, the interrupt service routine unit 120 initializes the busy flag and the modification prevention flag and ends the interworking of the multi-cores.

도 10은 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 코어 연동 방법의 순서도이다.10 is a flowchart of a core interworking method in a multi-core environment according to a preferred embodiment of the present invention.

도 1, 및 10을 참고하면, 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 코어 연동 방법은, 연동 요구 단계(S110), 정보 수정 단계(S120), 인터럽트 단계(S130), 기능 수행 단계(S140), 기능 유무 판단 단계(S150), 인터럽트 발생 단계(S160), 및 연동 종료 단계(S170)를 포함할 수 있다.1 and 10, the core interworking method in a multi-core environment according to a preferred embodiment of the present invention includes an interworking request step (S110), an information modification step (S120), an interrupt step (S130), and a function execution step ( S140), a function determination step (S150), an interrupt generation step (S160), and an interworking end step (S170) may be included.

연동 요구 단계(S110)에서, 특정 코어는 멀티 코어의 연동을 요구하여 API부(110)를 호출할 수 있다.In the interworking request step ( S110 ), a specific core may call the API unit 110 by requesting interworking of multiple cores.

정보 수정 단계(S120)에서, API부(110)는 멀티 코어의 연동 요구에 따라, 멀티 코어의 기능 수행 순서와 기능을 수행할 코어 정보를 스케줄링 테이블에 저장할 수 있다.In the information correction step ( S120 ), the API unit 110 may store, in the scheduling table, the order of performing the functions of the multi-cores and information on the cores to perform the functions according to the interworking request of the multi-cores.

한편, 정보 수정 단계(S120) 이전에, API부(110)는 스케줄링 테이블을 기초로 멀티 코어의 연동이 진행 중인지를 확인할 수 있다. 또한, API부(110)는 멀티 코어의 연동이 미진행 중인 것으로 확인되면, 멀티 코어의 연동이 동시에 요구되지 않도록 스케줄링 테이블의 수정 방지 플래그의 상태를 변경할 수 있다. 또한, API부(110)는 멀티 코어의 연동 실행을 요청받으면, 멀티 코어의 연동이 진행 중임을 알리도록 스케줄링 테이블의 비지 플래그의 상태를 변경할 수 있다.Meanwhile, before the information correction step ( S120 ), the API unit 110 may check whether multi-core interworking is in progress based on the scheduling table. Also, when it is confirmed that the interworking of the multi-cores is not in progress, the API unit 110 may change the state of the modification prevention flag of the scheduling table so that interworking of the multi-cores is not required at the same time. In addition, when receiving a request for interworking of multi-cores, the API unit 110 may change the state of the busy flag of the scheduling table to notify that interworking of multi-cores is in progress.

정부 수정 단계(S120) 이후 인터럽트 단계(S130)에서, API부(110)는 스케줄링 테이블에 따라 현재 기능을 수행할 코어에 인터럽트를 발생시킬 수 있다.In the interrupt step (S130) after the government correction step (S120), the API unit 110 may generate an interrupt to the core to perform the current function according to the scheduling table.

기능 수행 단계(S140)에서, 인터럽트 서비스 루틴부(120)는 인터럽트 발생한 코어에서 스케줄링 테이블을 기초로 현재 기능을 수행할 수 있다.In the function execution step S140 , the interrupt service routine unit 120 may perform a current function based on the scheduling table in the core where the interrupt has occurred.

기능 유무 판단 단계(S150)에서, 인터럽트 서비스 루틴부(120)는 현재 기능을 수행한 이후에 스케줄링 테이블을 기초로 다음 수행될 기능의 유무를 확인할 수 있다.In the function presence determination step ( S150 ), the interrupt service routine unit 120 may check whether a function to be performed next is based on the scheduling table after the current function is performed.

인터럽트 발생 단계(S160)에서, 인터럽트 서비스 루틴부(120)는 스케줄링 테이블로부터 다음 수행될 기능이 확인되는 경우, 다음 기능을 수행할 코어에 인터럽트를 발생시킬 수 있다.In the interrupt generation step ( S160 ), when the function to be performed next is confirmed from the scheduling table, the interrupt service routine unit 120 may generate an interrupt to the core that will perform the next function.

연동 종료 단계(S170)에서, 인터럽트 서비스 루틴부(120)는 스케줄링 테이블로부터 다음 수행될 기능이 확인되지 않는 경우, 멀티 코어의 연동을 종료할 수 있다. 이때 인터럽트 서비스 루틴부(120)는 스케줄링 테이블에서 타겟 요소의 포인터를 초기화시키고, 비지 플래그와 수정 방지 플래그의 상태를 변경할 수 있다.In the interworking termination step ( S170 ), the interrupt service routine unit 120 may terminate the interworking of the multi-core if a function to be performed next is not confirmed from the scheduling table. In this case, the interrupt service routine unit 120 may initialize the pointer of the target element in the scheduling table and change the states of the busy flag and the modification prevention flag.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다.The above description is merely illustrative of the technical idea of the present invention, and various modifications, changes, and substitutions are possible within the range that does not depart from the essential characteristics of the present invention by those of ordinary skill in the art to which the present invention pertains. will be. Accordingly, the embodiments disclosed in the present invention and the accompanying drawings are for explaining, not limiting, the technical spirit of the present invention, and the scope of the technical spirit of the present invention is not limited by these embodiments and the accompanying drawings .

본 발명에 따른 단계들 및/또는 동작들은 기술분야의 통상의 기술자에 의해 이해될 수 있는 것과 같이, 다른 순서로, 또는 병렬적으로, 또는 다른 에포크(epoch) 등을 위해 다른 실시 예들에서 동시에 일어날 수 있다.Steps and/or operations according to the present invention may occur concurrently in different embodiments, either in a different order, or in parallel, or for different epochs, etc., as would be understood by one of ordinary skill in the art. can

실시 예에 따라서는, 단계들 및/또는 동작들의 일부 또는 전부는 하나 이상의 비-일시적 컴퓨터-판독가능 매체에 저장된 명령, 프로그램, 상호작용 데이터 구조(interactive data structure), 클라이언트 및/또는 서버를 구동하는 하나 이상의 프로세서들을 사용하여 적어도 일부가 구현되거나 또는 수행될 수 있다. 하나 이상의 비-일시적 컴퓨터-판독가능 매체는 예시적으로 소프트웨어, 펌웨어, 하드웨어, 및/또는 그것들의 어떠한 조합일 수 있다. 또한, 본 명세서에서 논의된 "모듈"의 기능은 소프트웨어, 펌웨어, 하드웨어, 및/또는 그것들의 어떠한 조합으로 구현될 수 있다.Depending on the embodiment, some or all of the steps and/or operations run instructions, a program, an interactive data structure, a client and/or a server stored in one or more non-transitory computer-readable media. At least some may be implemented or performed using one or more processors. The one or more non-transitory computer-readable media may be illustratively software, firmware, hardware, and/or any combination thereof. Further, the functionality of a “module” discussed herein may be implemented in software, firmware, hardware, and/or any combination thereof.

100: 코어 연동 시스템
110: API부
111: 기능 정보 추가 API
113: 비지 체크 API
115: 실행 요청 API
117: 수정 방지 API
120: 인터럽트 서비스 루틴부
130: 스케줄링 테이블부
100: core interlocking system
110: API unit
111: API for adding feature information
113: Busy Check API
115: Execute Request API
117: Anti-Modification API
120: interrupt service routine unit
130: scheduling table unit

Claims (14)

멀티 코어의 연동 요구시, 멀티 코어 중에서 어느 하나의 코어에 인터럽트를 발생시키는 API부;
인터럽트 발생한 코어에서 현재 기능을 수행한 후 다음 수행될 기능이 있는지 확인하고, 다음 수행될 기능의 유무에 따라 다음 기능을 수행할 코어에 인터럽트를 발생시키거나 멀티 코어의 연동을 종료하는 인터럽트 서비스 루틴부; 및
상기 멀티 코어의 기능 수행 순서, 및 기능을 수행할 코어 정보를 포함하는 스케줄링 테이블이 저장되는 스케줄링 테이블부;
를 포함하는 멀티 코어 환경에서 코어 연동 시스템.
an API unit for generating an interrupt to any one of the multi-cores when requesting interworking of the multi-cores;
Interrupt service routine unit that performs the current function in the interrupted core, checks if there is a function to be performed next, and generates an interrupt to the core that will perform the next function or terminates the interworking of multi-cores depending on whether the next function is to be performed. ; and
a scheduling table unit for storing a scheduling table including information on a core to perform a function and a function execution order of the multi-core;
In a multi-core environment that includes a core interlocking system.
제 1 항에 있어서,
상기 API부는,
상기 스케줄링 테이블을 기초로 멀티 코어의 연동이 진행 중인지를 확인하는 비지 체크 API를 포함하는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 시스템.
The method of claim 1,
The API unit,
The core interworking system in a multi-core environment, characterized in that it includes a busy check API for checking whether interworking of multi-cores is in progress based on the scheduling table.
제 1 항에 있어서,
상기 API부는,
멀티 코어의 연동이 미진행 중인 것으로 확인되면, 멀티 코어의 연동이 동시에 요구되지 않도록 상기 스케줄링 테이블의 수정 방지 플래그의 상태를 변경하는 수정 방지 API를 포함하는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 시스템.
The method of claim 1,
The API unit,
When it is confirmed that the interworking of multi-cores is not in progress, the core interworking system in a multi-core environment, characterized in that it includes a modification prevention API for changing the state of the modification prevention flag of the scheduling table so that interworking of multi-cores is not required at the same time .
제 1 항에 있어서,
상기 API부는,
멀티 코어의 연동에 이용되는 코어 ID와 기능 수행 순서를 상기 스케줄링 테이블에 저장하는 기능 정보 추가 API를 포함하는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 시스템.
The method of claim 1,
The API unit,
A core interworking system in a multi-core environment, characterized in that it comprises a function information addition API for storing the core ID and function execution order used for interworking of multi-cores in the scheduling table.
제 1 항에 있어서,
상기 API부는,
멀티 코어의 연동 실행을 요청받으면, 멀티 코어의 연동이 진행 중임을 알리도록 상기 스케줄링 테이블의 비지 플래그의 상태를 변경하는 실행 요청 API를 포함하는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 시스템.
The method of claim 1,
The API unit,
and an execution request API for changing the state of the busy flag of the scheduling table to inform that multi-core interworking is in progress when a multi-core interworking execution request is received.
제 5 항에 있어서,
상기 실행 요청 API는,
상기 스케줄링 테이블을 통해 기능이 수행될 코어를 확인하고, 확인되는 코어에 인터럽트를 발생시키는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 시스템.
6. The method of claim 5,
The execution request API is
A core interworking system in a multi-core environment, characterized in that by checking a core on which a function is to be performed through the scheduling table, and generating an interrupt to the checked core.
제 1 항에 있어서,
상기 인터럽트 서비스 루틴부는,
인터럽트 발생한 코어에 의해 호출되면, 상기 스케줄링 테이블의 기능 주소에 따른 기능을 수행하고, 상기 스케줄링 테이블을 통해 다음 수행할 기능이 있는지를 확인하는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 시스템.
The method of claim 1,
The interrupt service routine unit,
A core interworking system in a multi-core environment, characterized in that when a call is made by an interrupt-generated core, a function according to the function address of the scheduling table is performed, and whether there is a next function to be performed through the scheduling table.
제 7 항에 있어서,
상기 인터럽트 서비스 루틴부는,
다음 수행할 기능이 있는 경우, 상기 스케줄링 테이블의 요소 개수를 저감하고, 다음 기능을 수행할 코어에 인터럽트를 발생시키는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 시스템.
8. The method of claim 7,
The interrupt service routine unit,
When there is a function to be performed next, the core interworking system in a multi-core environment, characterized in that by reducing the number of elements in the scheduling table, and generating an interrupt to a core to perform the next function.
제 8 항에 있어서,
상기 인터럽트 서비스 루틴부는,
다음 수행할 기능이 없는 경우, 상기 스케줄링 테이블에서 타겟 요소의 포인터를 초기화시키고, 비지 플래그와 수정 방지 플래그의 상태를 변경하며, 멀티 코어의 연동을 종료하는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 시스템.
9. The method of claim 8,
The interrupt service routine unit,
Core interworking system in a multi-core environment, characterized in that when there is no function to perform next, the pointer of the target element in the scheduling table is initialized, the states of the busy flag and the modification prevention flag are changed, and the interworking of the multi-core is terminated .
제 1 항에 있어서,
상기 스케줄링 테이블은,
코어의 기능 수행 순서에 대응하는 타겟 요소 포인터, 수행될 기능 정보의 개수에 대응하는 요소의 개수, 멀티 코어의 연동이 진행 중임을 알리는 비지 플래그, 및 스케줄링 테이블의 수정을 방지하는 수정 방지 플래그를 포함하는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 시스템.
The method of claim 1,
The scheduling table is
Includes a target element pointer corresponding to the function execution order of the core, the number of elements corresponding to the number of function information to be performed, a busy flag indicating that multi-core interworking is in progress, and a modification prevention flag to prevent modification of the scheduling table A core interlocking system in a multi-core environment, characterized in that
멀티 코어의 연동 요구에 따라, 멀티 코어의 기능 수행 순서와 기능을 수행할 코어 정보를 스케줄링 테이블에 저장하는 정보 수정 단계;
상기 스케줄링 테이블에 따라, 현재 기능을 수행할 코어에 인터럽트를 발생시키는 인터럽트 단계;
인터럽트 발생한 코어에서 상기 스케줄링 테이블을 기초로 현재 기능을 수행하는 기능 수행 단계; 및
상기 기능 수행 단계 이후에, 상기 스케줄링 테이블을 기초로 다음 수행될 기능의 유무에 따라 다음 기능을 수행할 코어에 인터럽트를 발생시키거나, 멀티 코어의 연동을 종료하는 인터럽트 서비스 루틴 단계;
를 포함하는 멀티 코어 환경에서 코어 연동 방법.
an information modification step of storing, in a scheduling table, information on a multi-core function execution order and core to perform a function according to a multi-core interworking request;
an interrupt step of generating an interrupt to a core to perform a current function according to the scheduling table;
a function execution step of performing a current function based on the scheduling table in the interrupted core; and
an interrupt service routine step of generating an interrupt to a core to perform a next function or terminating interworking of multi-cores according to the existence of a function to be performed next based on the scheduling table, after the function execution step;
A core interworking method in a multi-core environment comprising a.
제 11 항에 있어서,
상기 정보 수정 단계 이전에, 상기 스케줄링 테이블을 기초로 멀티 코어의 연동이 진행 중인지를 확인하는 비지 체크 단계를 더 포함하는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 방법.
12. The method of claim 11,
Prior to the step of modifying the information, the method of claim 1, further comprising a busy check step of checking whether multi-core interworking is in progress based on the scheduling table.
제 12 항에 있어서,
상기 멀티 코어의 연동이 미진행 중인 것으로 확인되면, 멀티 코어의 연동이 동시에 요구되지 않도록 상기 스케줄링 테이블의 수정 방지 플래그의 상태를 변경하는 수정 방지 단계를 더 포함하는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 방법.
13. The method of claim 12,
When it is confirmed that the interworking of the multi-cores is not in progress, the method further comprises a modification prevention step of changing the state of the modification prevention flag of the scheduling table so that interworking of the multi-cores is not required at the same time. linkage method.
제 13 항에 있어서,
상기 정보 수정 단계는,
상기 멀티 코어의 연동 실행을 요청받으면, 멀티 코어의 연동이 진행 중임을 알리도록 상기 스케줄링 테이블의 비지 플래그의 상태를 변경하는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 방법.
14. The method of claim 13,
The step of modifying the information is
The core interworking method in a multi-core environment, characterized in that when a request for interworking of the multi-core is received, the state of the busy flag of the scheduling table is changed to inform that interworking of the multi-core is in progress.
KR1020200175754A 2020-12-15 2020-12-15 System and method of linking core in muti-core environment KR102497255B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200175754A KR102497255B1 (en) 2020-12-15 2020-12-15 System and method of linking core in muti-core environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200175754A KR102497255B1 (en) 2020-12-15 2020-12-15 System and method of linking core in muti-core environment

Publications (2)

Publication Number Publication Date
KR20220085578A true KR20220085578A (en) 2022-06-22
KR102497255B1 KR102497255B1 (en) 2023-02-06

Family

ID=82216358

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200175754A KR102497255B1 (en) 2020-12-15 2020-12-15 System and method of linking core in muti-core environment

Country Status (1)

Country Link
KR (1) KR102497255B1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010244332A (en) * 2009-04-07 2010-10-28 Nec Corp Means of task assignment for multi-core system, method of the same, and program of the same
JP2011237929A (en) * 2010-05-07 2011-11-24 Toyota Motor Corp Multi-core processor
WO2012120654A1 (en) * 2011-03-08 2012-09-13 富士通株式会社 Task scheduling method and multi-core system
KR20150118035A (en) * 2014-04-11 2015-10-21 르네사스 일렉트로닉스 가부시키가이샤 Semiconductor device, diagnostic test, and diagnostic test circuit
KR20160076270A (en) 2014-12-22 2016-06-30 현대모비스 주식회사 Multi Core system for the Vehicles
JP6156379B2 (en) * 2012-08-13 2017-07-05 日本電気株式会社 Scheduling apparatus and scheduling method
KR20180093199A (en) * 2017-02-10 2018-08-21 한국전자통신연구원 Method and apparatus for task scheduling in multi-core embedded system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010244332A (en) * 2009-04-07 2010-10-28 Nec Corp Means of task assignment for multi-core system, method of the same, and program of the same
JP2011237929A (en) * 2010-05-07 2011-11-24 Toyota Motor Corp Multi-core processor
WO2012120654A1 (en) * 2011-03-08 2012-09-13 富士通株式会社 Task scheduling method and multi-core system
JP6156379B2 (en) * 2012-08-13 2017-07-05 日本電気株式会社 Scheduling apparatus and scheduling method
KR20150118035A (en) * 2014-04-11 2015-10-21 르네사스 일렉트로닉스 가부시키가이샤 Semiconductor device, diagnostic test, and diagnostic test circuit
KR20160076270A (en) 2014-12-22 2016-06-30 현대모비스 주식회사 Multi Core system for the Vehicles
KR20180093199A (en) * 2017-02-10 2018-08-21 한국전자통신연구원 Method and apparatus for task scheduling in multi-core embedded system

Also Published As

Publication number Publication date
KR102497255B1 (en) 2023-02-06

Similar Documents

Publication Publication Date Title
US6874149B1 (en) Hooking of replacement and augmented API functions
US9454401B2 (en) Resource allocation method and apparatus of GPU
CN107436799B (en) Method and device for realizing consistency of distributed transactions
US20160335135A1 (en) Method for minimizing lock contention among threads when tasks are distributed in multithreaded system and appratus using the same
CN110795222A (en) Multithreading task scheduling method, device, equipment and readable medium
US20100262810A1 (en) Concurrent instruction operation method and device
CN110187985B (en) Communication method, system and device
EP2256627A2 (en) Queuing for locks on data
CN111367694B (en) Event processing method, server and computer storage medium
KR20220085578A (en) System and method of linking core in muti-core environment
CN111159298B (en) Service request processing method and device, electronic equipment and storage medium
CN112818336A (en) Data access method, data access device and computer readable storage medium
US10303523B2 (en) Method and apparatus to migrate stacks for thread execution
US8689200B1 (en) Method and system for optimizing an executable program by generating special operations for identical program entities
CN111913804A (en) Pre-visit report generation method and device, electronic equipment and storage medium
CN108062224B (en) Data reading and writing method and device based on file handle and computing equipment
CN107203339B (en) Data storage method and device
CN110543360A (en) Task processing method and system
CN113535439B (en) Service request processing method, device, equipment and storage medium
CN115629920A (en) Data request exception handling method and device and computer readable storage medium
CN110543349B (en) Application starting acceleration method and device and computer readable storage medium
CN113032118A (en) Asynchronous operation processing method for computer application program and corresponding system
CN113961366A (en) Kernel function calling method of operating system and computer equipment
CN106897089B (en) System operation execution method and device
CN116756048B (en) Code analysis method, device, computer equipment and storage medium

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant