KR102497255B1 - 멀티 코어 환경에서 코어 연동 시스템 및 방법 - Google Patents

멀티 코어 환경에서 코어 연동 시스템 및 방법 Download PDF

Info

Publication number
KR102497255B1
KR102497255B1 KR1020200175754A KR20200175754A KR102497255B1 KR 102497255 B1 KR102497255 B1 KR 102497255B1 KR 1020200175754 A KR1020200175754 A KR 1020200175754A KR 20200175754 A KR20200175754 A KR 20200175754A KR 102497255 B1 KR102497255 B1 KR 102497255B1
Authority
KR
South Korea
Prior art keywords
core
function
scheduling table
interworking
interrupt
Prior art date
Application number
KR1020200175754A
Other languages
English (en)
Other versions
KR20220085578A (ko
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/ko
Publication of KR20220085578A publication Critical patent/KR20220085578A/ko
Application granted granted Critical
Publication of KR102497255B1 publication Critical patent/KR102497255B1/ko

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)
  • Exchange Systems With Centralized Control (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)

Abstract

본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 코어 연동 시스템 은, 멀티 코어의 연동 요구시, 멀티 코어 중에서 어느 하나의 코어에 인터럽트를 발생시키는 API부, 인터럽트 발생한 코어에서 현재 기능을 수행한 후 다음 수행될 기능이 있는지 확인하고, 다음 수행될 기능의 유무에 따라 다음 기능을 수행할 코어에 인터럽트를 발생시키거나 멀티 코어의 연동을 종료하는 인터럽트 서비스 루틴부, 및 상기 멀티 코어의 기능 수행 순서, 및 기능을 수행할 코어 정보를 포함하는 스케줄링 테이블이 저장되는 스케줄링 테이블부를 포함한다.

Description

멀티 코어 환경에서 코어 연동 시스템 및 방법{SYSTEM AND METHOD OF LINKING CORE IN MUTI-CORE ENVIRONMENT}
본 발명은 멀티 코어 환경에서 코어 연동 시스템 및 방법에 관한 것이다.
일반적으로 차량의 멀티 코어(Multi-Core) 환경에서는 코어 각각의 로직이 개별적으로 동작하며, 코어 각각은 차량 제어 시스템의 특성에 따라 특정 기능을 수행하도록 역할이 분담되어 있다.
이러한 멀티 코어 환경에서 코어 각각은 특정 기능이 상호 연관되어 수행되도록 요구되는 경우가 있다.
예를 들면, 3 개의 코어가 존재하는 멀티 코어 환경에서, 첫 번째 코어가 제1 기능을 수행한 이후에 두 번째 코어가 제2 기능을 수행하고, 다시 첫 번째 코어가 제3 기능을 수행한 이후에, 마지막으로 세 번째 코어가 제4 기능을 수행하도록 요구되는 경우가 있을 수 있다.
이러한 기능 수행 순서에 대한 예의 경우, 멀티 코어 환경에서 코어 각각의 로직이 개별적으로 동작함에 따라 특별한 메커니즘 없이는 구현이 불가능한 문제가 있다.
종래의 멀티 코어 기술의 경우, 일반적인 멀티 코어의 스케줄러를 이용하여 코어 각각의 로직 동작에 대한 스케줄링을 지원하였으나, 코어 각각의 기능 수행 순서, 및 코어 로직의 동작 종료에 따른 즉각적인 기능 수행을 위한 타이밍 제어는 지원하지 않는다.
즉 종래의 멀티 코어 기술의 경우, 상술한 바 있는 기능 수행 순서 예에 대한 구현이 불가하였으며, 상세한 설계로 이를 구현하더라도 그 강건성을 확보하는데 한계가 있다.
대한민국 공개특허 제10-2016-0076270호
이에 본 발명은 상기한 사정을 감안하여 안출된 것으로, 멀티 코어 환경에서 코어 각각의 기능이 연동 수행되도록 이를 지원할 수 있는 메커니즘을 제공하는 멀티 코어 환경에서 코어 연동 시스템 및 방법을 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 코어 연동 시스템은, 멀티 코어의 연동 요구시, 멀티 코어 중에서 어느 하나의 코어에 인터럽트를 발생시키는 API부; 인터럽트 발생한 코어에서 현재 기능을 수행한 후 다음 수행될 기능이 있는지 확인하고, 다음 수행될 기능의 유무에 따라 다음 기능을 수행할 코어에 인터럽트를 발생시키거나 멀티 코어의 연동을 종료하는 인터럽트 서비스 루틴부; 및 상기 멀티 코어의 기능 수행 순서, 및 기능을 수행할 코어 정보를 포함하는 스케줄링 테이블이 저장되는 스케줄링 테이블부;를 포함한다.
상기 API부는, 상기 스케줄링 테이블을 기초로 멀티 코어의 연동이 진행 중인지를 확인하는 비지 체크 API를 포함할 수 있다.
상기 API부는, 멀티 코어의 연동이 미진행 중인 것으로 확인되면, 멀티 코어의 연동이 동시에 요구되지 않도록 상기 스케줄링 테이블의 수정 방지 플래그의 상태를 변경하는 수정 방지 API를 포함할 수 있다.
상기 API부는, 멀티 코어의 연동에 이용되는 코어 ID와 기능 수행 순서를 상기 스케줄링 테이블에 저장하는 기능 정보 추가 API를 포함할 수 있다.
상기 API부는, 멀티 코어의 연동 실행을 요청받으면, 멀티 코어의 연동이 진행 중임을 알리도록 상기 스케줄링 테이블의 비지 플래그의 상태를 변경하는 실행 요청 API를 포함할 수 있다.
상기 실행 요청 API는, 상기 스케줄링 테이블을 통해 기능이 수행될 코어를 확인하고, 확인되는 코어에 인터럽트를 발생시킬 수 있다.
상기 인터럽트 서비스 루틴부는, 인터럽트 발생한 코어에 의해 호출되면, 상기 스케줄링 테이블의 기능 주소에 따른 기능을 수행하고, 상시 스케줄링 테이블을 통해 다음 수행할 기능이 있는지를 확인할 수 있다.
상기 인터럽트 서비스 루틴부는, 다음 수행할 기능이 있는 경우, 상기 스케줄링 테이블의 요소 개수를 저감하고, 다음 기능을 수행할 코어에 인터럽트를 발생시킬 수 있다.
상기 인터럽트 서비스 루틴부는, 다음 수행할 기능이 없는 경우, 상기 스케줄링 테이블에서 타겟 요소의 포인터를 초기화시키고, 비지 플래그와 수정 방지 플래그의 상태를 변경하며, 멀티 코어의 연동을 종료할 수 있다.
상기 스케줄링 테이블은, 코어의 기능 수행 순서에 대응하는 타겟 요소 포인터, 수행될 기능 정보의 개수에 대응하는 요소의 개수, 멀티 코어의 연동이 진행 중임을 알리는 비지 플래그, 및 스케줄링 테이블의 수정을 방지하는 수정 방지 플래그를 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 코어 연동 방법은, 멀티 코어의 연동 요구에 따라, 멀티 코어의 기능 수행 순서와 기능을 수행할 코어 정보를 스케줄링 테이블에 저장하는 정보 수정 단계; 상기 스케줄링 테이블에 따라, 현재 기능을 수행할 코어에 인터럽트를 발생시키는 인터럽트 단계; 인터럽트 발생한 코어에서 상기 스케줄링 테이블을 기초로 현재 기능을 수행하는 기능 수행 단계; 및 상기 기능 수행 단계 이후에, 상기 스케줄링 테이블을 기초로 다음 수행될 기능의 유무에 따라 다음 기능을 수행할 코어에 인터럽트를 발생시키거나, 멀티 코어의 연동을 종료하는 인터럽트 서비스 루틴 단계;를 포함한다.
상기 정보 수정 단계 이전에, 상기 스케줄링 테이블을 기초로 멀티 코어의 연동이 진행 중인지를 확인하는 비지 체크 단계를 더 포함할 수 있다.
상기 멀티 코어의 연동이 미진행 중인 것으로 확인되면, 멀티 코어의 연동이 동시에 요구되지 않도록 상기 스케줄링 테이블의 수정 방지 플래그의 상태를 변경하는 수정 방지 단계를 더 포함할 수 있다.
상기 정보 수정 단계는, 상기 멀티 코어의 연동 실행을 요청받으면, 멀티 코어의 연동이 진행 중임을 알리도록 상기 스케줄링 테이블의 비지 플래그의 상태를 변경할 수 있다.
본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 코어 연동 시스템 및 방법에 의하면, 멀티 코어 환경에서 코어 각각의 기능이 연동 수행될 수 있으며, 코어 로직의 동작 종료에 따른 즉각적인 기능 수행을 위한 타이밍 제어가 가능하다.
또한, 멀티 코어의 연동이 필요한 차량 제어 시스템에서 타이밍 또는 기능 수행 순서에 민감한 로직에 대한 핸들링이 가능하도록 함으로써, 제어 효율이 향상되고 로직의 강건성을 확보하는 효과가 있다.
도 1은 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 코어 연동 시스템의 블록도이다.
도 2는 도 1의 스케줄링 테이블부의 기능 수행 순서에 따른 멀티 코어의 동작 순서를 나타내는 도면이다.
도 3은 도 1의 API부의 동작 순서 및 동작 순서에 따른 스케줄링 테이블의 데이터의 일 예를 보여주는 도면이다.
도 4는 도 3의 첫 번째 인터럽트 발생한 코어의 동작 순서 및 동작 순서에 따른 스케줄링 테이블의 데이터의 일 예를 보여주는 도면이다.
도 5는 도 3의 두 번째 인터럽트 발생한 코어의 동작 순서 및 동작 순서에 따른 스케줄링 테이블의 데이터의 일 예를 보여주는 도면이다.
도 6은 도 3의 세 번째 인터럽트 발생한 코어의 동작 순서 및 동작 순서에 따른 스케줄링 테이블의 데이터의 일 예를 보여주는 도면이다.
도 7은 도 3의 네 번째 인터럽트 발생한 코어의 동작 순서 및 동작 순서에 따른 스케줄링 테이블의 데이터의 일 예를 보여주는 도면이다.
도 8은 도 1의 API부의 메커니즘의 일 예를 설명하기 위한 도면이다.
도 9는 도 1의 인터럽트 서비스 루틴부의 메커니즘의 일 예를 설명하기 위한 도면이다.
도 10은 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 코어 연동 방법의 순서도이다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 우선 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 이하에서 본 발명의 바람직한 실시예를 설명할 것이나, 본 발명의 기술적 사상은 이에 한정하거나 제한되지 않고 당업자에 의해 변형되어 다양하게 실시될 수 있음은 물론이다.
도 1은 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 코어 연동 시스템의 블록도이다.
도 1을 참고하면, 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 코어 연동 시스템(100)은 멀티 코어의 순차적인 기능 수행이 가능하도록, 인터럽트 서비스 콜(Interrupt Service Call) 기능을 통해 멀티 코어를 연동시키고, 멀티 코어의 기능에 대해 스케줄링하는 것을 특징으로 한다.
따른 멀티 코어 환경에서 코어 연동 시스템(100)은, API부(110), 인터럽트 서비스 루틴부(120), 및 스케줄링 테이블부(130)를 포함한다.
API부(110)는 멀티 코어 환경하의 특정 코어에서 멀티 코어 연동을 요구하는 경우, 스케줄링 테이블을 이용하여 멀티 코어의 연동을 실행할 수 있다.
API부(110)는 스케줄링 테이블을 조작하여 기능 정보를 추가하는 기능 정보 추가(Add Function Information) API(111), 멀티 코어의 연동이 진행 중인지를 확인하는 비지 체크(Check Busy) API(113), 멀티 코어의 연동 실행을 요청하는 실행 요청(Execution Request) API(115), 및 다른 코어에서 멀티 코어의 연동을 동시에 요구하지 않도록, 스케줄링 테이블의 정보 수정을 방지하는 수정 방지(Protect Modification) API(117)을 포함할 수 있다.
인터럽트 서비스 루틴부(120)는 멀티 코어 각각에 구비될 수 있다. 인터럽트 서비스 루틴부(120)는 API부(110)에 의한 인터럽트 발생시, 인터럽트 서비스 콜 기능을 통해 수행할 기능을 불러올 수 있다. 인터럽트 서비스 루틴부(120)는 불러온 기능을 수행한 후 다음 수행될 기능이 있는지 확인할 수 있다. 인터럽트 서비스 루틴부(120)는 다음 수행될 기능의 유무에 따라 멀티 코어 중에서 다른 어느 하나의 코어에 인터럽트를 발생시키거나 기능 수행을 종료할 수 있다. 인터럽트 서비스 루틴부(120)는 실행이 보장될 수 있도록 높은 우선순위를 가질 수 있다. 여기서, 우선순위의 레벨은 차량 제어 시스템의 요구 사항에 따라 적절히 적용될 수 있다.
스케줄링 테이블부(130)는 인터럽트 서비스 콜 기능에 따른 멀티 코어의 기능 수행 순서, 및 기능을 수행할 코어 정보를 포함하는 스케줄링 테이블(Scheduling Table)이 저장된다. 스케줄링 테이블에는 기능 정보 어레이(Function Information Array)와 제어 데이터(Control Datas)가 포함될 수 있다.
기능 정보 어레이는 코어 ID, 기능 주소(Function Address)를 가지는 기능 어레이(Function Array)를 포함할 수 있다.
제어 데이터는 코어의 기능 수행 순서를 나타내는 타겟 요소 포인터(Pointer of Target element), 요소의 개수(Number of Element), 멀티 코어의 연동이 진행중임을 알리는 비지 플래그(Busy Flag), 및 스케줄링 테이블의 수정을 방지하는 수정 방지 플래그(Modification Protection Flag)를 포함할 수 있다.
인터럽트 서비스 루틴부(120)는 스케줄링 테이블의 데이터를 참조할 수 있다. 스케줄링 테이블은 멀티 코어 각각의 인터럽트 서비스 루틴부(120)에서 접근할 수 있도록 공유 메모리(Shared Memory) 영역에 저장된다.
이하에서는, 기능 수행 순서의 일 예에 따른 멀티 코어의 동작 순서를 설명한다.
도 2는 도 1의 스케줄링 테이블의 기능 수행 순서에 따른 멀티 코어의 동작 순서를 나타내는 도면이다.
도 2를 참고하면, 멀티 코어는 제1 코어(Core #1), 제2 코어(Core #2), 및 제3 코어(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)에 의해 수행될 수 있다.
멀티 코어 환경에서 코어 연동 시스템(100)은 특정 코어에서 멀티 코어의 연동 요구시, 멀티 코어 각각의 태스크 스케줄링과 상관없이, 스케줄링 테이블의 기능 수행 순서 및 타이밍으로 멀티 코어 각각의 로직이 유기적으로 동작되도록 할 수 있다.
일 실시예에 있어서, 제1 코어(Core #1)는 멀티 코어의 기능 수행 순서를 설정하고, API부(110)를 이용하여 스케줄링 테이블의 기능 수행 순서 및 코어 정보를 수정할 수 있다. 제1 코어(Core #1)는 멀티 코어의 연동 실행을 API부(110)에 요청할 수 있다. API부(110)에 의해 멀티 코어의 연동이 실행되면, 제1 코어(Core #1)는 기능 수행 순서(Sequence)에 따라 제1 기능(Function #1)을 수행할 수 있다.
제1 코어(Core #1)의 제1 기능(Function #1) 수행이 종료되면, 제3 코어(Core #3)는 하던 작업을 멈추고 제2 기능(Function #2)을 수행할 수 있다.
제3 코어(Core #3)의 제2 기능(Function #2) 수행이 종료되면, 제2 코어(Core #2)는 하던 작업을 멈추고 제3 기능(Function #3)을 수행할 수 있다.
제2 코어(Core #2)의 제3 기능(Function #3) 수행이 종료되면, 제3 코어(Core #3)는 하던 작업을 멈추고 제4 기능(Function #4)을 수행할 수 있다.
제3 코어(Core #3)의 제4 기능(Function #4) 수행이 종료되면, 제1 코어(Core #1)는 하던 작업을 멈추고 제5 기능(Function #5)을 수행할 수 있다.
이하에서는, 멀티 코어의 연동 요구시, API부(110)의 동작을 설명한다.
도 3은 도 1의 API부의 동작 순서 및 동작 순서에 따른 스케줄링 테이블의 데이터의 일 예를 보여주는 도면이다.
도 3을 참고하면, 특정 코어에서 멀티 코어의 연동 요구에 따른 API부(110)의 동작 순서를 확인할 수 있다.
먼저, 특정 코어에서 동작 중 멀티 코어의 연동이 필요한 경우, 해당 특정 코어는 멀티 코어의 연동이 진행 중인지를 확인하는 비지 체크 API(113)를 호출한다.
비지 체크 API(113)는 스케줄링 테이블의 비지 플래그를 통해 멀티 코어의 연동이 진행 중인지를 확인하고, 멀티 코어의 연동 진행 여부를 해당 특정 코어에 전달한다. 해당 특정 코어는 멀티 코어의 연동이 미진행 중으로 확인되면, 멀티 코어의 연동 실행 관련한 조작을 금지하는 수정 방지 API(117)를 호출한다.
수정 방지 API(117)는 멀티 코어의 연동이 동시에 요구되지 않도록, 스케줄링 테이블의 수정 방지 플래그(Modification Protection Flag)의 상태를 거짓(FALSE)에서 참(TRUE)으로 변경한다. 이를 통해, 해당 특정 코어가 아닌 다른 코어에서 참으로 상태 변경된 수정 방지 플래그를 확인하는 경우, 멀티 코어의 연동을 요구하지 않게 된다.
이와 같은 과정이 완료되면, 해당 특정 코어는 스케줄링 테이블의 데이터를 수정하기 위해 기능 정보 추가 API(111)를 호출한다. 해당 특정 코어는 기능 수행 순서와 기능이 수행될 코어 ID를 기능 정보 추가 API(111)로 전달한다.
기능 정보 추가 API(111)는 전달받은 코어 ID, 기능 수행 순서, 및 요소의 개수를 스케줄링 테이블에 저장한다. 여기서, 기능 정보 추가 API(111)는 전달받은 기능 정보의 개수에 따라 요소의 개수를 스케줄링 테이블에 저장할 수 있다.
일 실시예에 있어서, 기능 정보 추가 API(111)는 제1 코어(Core #1)의 제1 기능(Function #1)을 기능 정보 어레이의 첫 번째 기능 주소(Function Address [0])에 저장할 수 있다.
그런 다음, 기능 정보 추가 API(111)는 제3 코어(Core #3)의 제2 기능(Function #2)을 기능 정보 어레이의 두 번째 기능 주소(Function Address [1])에 저장할 수 있다.
그런 다음, 기능 정보 추가 API(111)는 제2 코어(Core #2)의 제3 기능(Function #3)을 기능 정보 어레이의 세 번째 기능 주소(Function Address [2])에 저장할 수 있다.
마지막으로, 기능 정보 추가 API(111)는 제1 코어(Core #1)의 제4 기능(Function #4)을 기능 정보 어레이의 네 번째 기능 주소(Function Address [3])에 저장할 수 있다.
해당 특정 코어는 모든 정보의 등록이 완료되면, 실행 요청 API(115)에 연동 실행을 요청한다.
실행 요청 API(115)는 연동 실행을 요청받으면, 멀티 코어의 연동이 진행중임을 알리는 비지 플래그의 상태를 거짓(FALSE)에서 참(TRUE)으로 변경한다.
실행 요청 API(115)는 스케줄링 테이블을 통해 가장 먼저 수행되어야 할 코어의 정보를 확인한다. 실행 요청 API(115)는 기능이 수행될 코어에 인터럽트를 발생시킨다.
이하에서는, 도 4 내지 도 7을 참고하여 인터럽트가 발생한 코어의 동작을 설명한다.
도 4는 도 3의 첫 번째 인터럽트 발생한 코어의 동작 순서 및 동작 순서에 따른 스케줄링 테이블의 데이터의 일 예를 보여주는 도면이다.
도 4를 참고하면, 실행 요청 API(115)에 의해 첫 번째 인터럽트 발생한 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)의 동작 순서를 확인할 수 있다.
제1 코어(Core #1)는 실행 요청 API(115)에 의해 인터럽트가 발생하면, 인터럽트 서비스 루틴부(120)를 호출한다. 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 인터럽트 발생에 의해 동작하며, 스케줄링 테이블의 첫 번째 기능 주소(Function Address [0])를 불러온다. 이때 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 다음 타겟 요소를 지시하도록 스케줄링 테이블의 타겟 요소 포인터를 ‘1’ 증가시키고, 요소의 개수를 ‘1’ 차감한다.
그런 다음, 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 첫 번째 기능 주소(Function Address [0])에 따라 제1 기능(Function #1)을 수행한다.
그런 다음, 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 스케줄링 테이블을 통해 다음으로 수행될 기능이 있는지 확인한다.
일 실시예에 있어서, 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 다음 진행할 기능이 있는 경우, 다음 기능을 수행할 제3 코어(Core #3)에 인터럽트를 발생시키고 제1 코어(Core #1)의 기능 수행을 종료한다.
도 5는 도 3의 두 번째 인터럽트 발생한 코어의 동작 순서 및 동작 순서에 따른 스케줄링 테이블의 데이터의 일 예를 보여주는 도면이다.
도 5를 참고하면, 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)에 의해 두 번째 인터럽트 발생한 제3 코어(Core #3)의 인터럽트 서비스 루틴부(120)의 동작 순서를 확인할 수 있다.
제3 코어(Core #3)는 인터럽트가 발생하면, 인터럽트 서비스 루틴부(120)를 호출한다. 제3 코어(Core #3)의 인터럽트 서비스 루틴부(120)는 인터럽트 발생에 의해 동작하며, 스케줄링 테이블의 두 번째 기능 주소(Function Address [1])를 불러온다. 이때 제3 코어(Core #3)의 인터럽트 서비스 루틴부(120)는 다음 타겟 요소를 지시하도록 스케줄링 테이블의 타겟 요소 포인터를 ‘1’ 증가시키고, 요소의 개수를 ‘1’ 차감한다.
그런 다음, 제3 코어(Core #3)의 인터럽트 서비스 루틴부(120)는 두 번째 기능 주소(Function Address [1])에 따라 제2 기능(Function #2)을 수행한다.
그런 다음, 제3 코어(Core #3)의 인터럽트 서비스 루틴부(120)는 스케줄링 테이블을 통해 다음으로 수행될 기능이 있는지 확인한다.
일 실시예에 있어서, 제3 코어(Core #3)의 인터럽트 서비스 루틴부(120)는 다음 진행할 기능이 있는 경우, 다음 기능을 수행할 제2 코어(Core #2)에 인터럽트를 발생시키고 제3 코어(Core #3)의 기능 수행을 종료한다.
도 6은 도 3의 세 번째 인터럽트 발생한 코어의 동작 순서 및 동작 순서에 따른 스케줄링 테이블의 데이터의 일 예를 보여주는 도면이다.
도 6을 참고하면, 제3 코어(Core #3)의 인터럽트 서비스 루틴부(120)에 의해 세 번째 인터럽트 발생한 제2 코어(Core #2)의 인터럽트 서비스 루틴부(120)의 동작 순서를 확인할 수 있다.
제2 코어(Core #2)는 인터럽트가 발생하면, 인터럽트 서비스 루틴부(120)를 호출한다. 제2 코어(Core #2)의 인터럽트 서비스 루틴부(120)는 인터럽트 발생에 의해 동작하며, 스케줄링 테이블의 세 번째 기능 주소(Function Address [2])를 불러온다. 이때 제2 코어(Core #2)의 인터럽트 서비스 루틴부(120)는 다음 타겟 요소를 지시하도록 스케줄링 테이블의 타겟 요소 포인터를 ‘1’ 증가시키고, 요소의 개수를 ‘1’ 차감한다.
그런 다음, 제2 코어(Core #2)의 인터럽트 서비스 루틴부(120)는 세 번째 기능 주소(Function Address [2])에 따라 제3 기능(Function #3)을 수행한다.
그런 다음, 제2 코어(Core #2)의 인터럽트 서비스 루틴부(120)는 스케줄링 테이블을 통해 다음으로 수행될 기능이 있는지 확인한다.
일 실시예에 있어서, 제2 코어(Core #2)의 인터럽트 서비스 루틴부(120)는 다음 진행할 기능이 있는 경우, 다음 기능을 수행할 제1 코어(Core #1)에 인터럽트를 발생시키고 제2 코어(Core #2)의 기능 수행을 종료한다.
도 7은 도 3의 네 번째 인터럽트 발생한 코어의 동작 순서 및 동작 순서에 따른 스케줄링 테이블의 데이터의 일 예를 보여주는 도면이다.
도 7을 참고하면, 제2 코어(Core #2)의 인터럽트 서비스 루틴부(120)에 의해 네 번째 인터럽트 발생한 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)의 동작 순서를 확인할 수 있다.
제1 코어(Core #1)는 인터럽트가 발생하면, 인터럽트 서비스 루틴부(120)를 호출한다. 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 인터럽트 발생에 의해 동작하며, 스케줄링 테이블의 네 번째 기능 주소(Function Address [3])를 불러온다. 이때 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 스케줄링 테이블의 요소의 개수를 ‘1’ 차감한다. 또한 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 요소의 개수가 0이 되는 경우, 스케줄링 테이블의 타겟 요소 포인터를 ‘1’ 증가시키지 않고, ‘0’으로 초기화시킬 수 있다.
그런 다음, 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 네 번째 기능 주소(Function Address [3])에 따라 제4 기능(Function #3)을 수행한다.
그런 다음, 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 스케줄링 테이블을 통해 다음으로 수행될 기능이 있는지 확인한다.
일 실시예에 있어서, 제1 코어(Core #1)의 인터럽트 서비스 루틴부(120)는 더 이상 진행할 기능이 없는 경우, 멀티 코어의 연동이 진행 상태가 아님을 알리도록 비지 플래그의 상태를 참에서 거짓으로 변환하고, 스케줄링 테이블의 정보 수정이 가능하도록 수정 방지 플래그의 상태를 참에서 거짓으로 변환한 후 멀티 코어의 연동을 종료한다.
도 4 내지 도 7에서 설명한 과정은 스케줄링 테이블의 요소가 모두 사라질 때까지 반복되며, 이러한 과정을 통해 멀티 코어의 연동이 진행된다.
도 8은 도 1의 API부의 메커니즘의 일 예를 설명하기 위한 도면이다.
도 8을 참고하면, API부(110)는 비지 체크 API(113), 수정 방지 API(117), 기능 정보 추가 API(111), 및 실행 요청 API(115) 순서로 설계될 수 있다.
비지 체크 API(113)는 스케줄링 테이블의 비지 플래그를 통해 멀티 코어의 연동이 진행 중임을 확인할 수 있다.
수정 방지 API(117)는 스케줄링 테이블의 수정 방지 플래그의 상태를 거짓(FALSE)에서 참(TRUE)으로 변경함으로써 다른 코어에서 멀티 코어의 연동 요구가 이루어지지 않도록 할 수 있다.
기능 정보 추가 API(111)는 코어 ID와 기능 주소를 스케줄링 테이블의 기능 정보 어레이에 추가할 수 있다. 또한, 기능 정보 추가 API(111)는 기능 정보의 개수에 따라 요소의 개수를 증가시킬 수 있다.
실행 요청 API(115)는 요소의 개수가 ‘0’으로 스케줄링 테이블이 비어 있는 상태에서 호출되는 경우, 스케줄링 테이블의 수정 방지 플래그의 상태를 참(TRUE)에서 거짓(FALSE)으로 변경할 수 있다.
실행 요청 API(115)는 요소의 개수가 ‘1’ 이상으로 스케줄링 테이블이 비어있지 않은 상태에서 호출되는 경우, 스케줄링 테이블의 비지 플래그의 상태를 거짓(FALSE)에서 참(TRUE)으로 변경할 수 있다. 또한, 실행 요청 API(115)는 기능 정보 어레이로부터 기능 수행될 코어 ID를 불러온 뒤 해당 코어에 인터럽트를 발생시킬 수 있다.
도 9는 도 1의 인터럽트 서비스 루틴부의 메커니즘의 일 예를 설명하기 위한 도면이다.
도 9를 참고하면, 인터럽트 서비스 루틴부(120)는 스케줄링 테이블을 통해 해당 코어에서 수행할 기능 주소를 불러온다. 이 때, 인터럽트 서비스 루틴부(120)는 요소의 개수를 ‘1’ 감소할 수 있다. 일 실시예에 있어서, 요소의 개수가 ‘0’에 도달하는 경우, 인터럽트 서비스 루틴부(120)는 타겟 요소의 포인터를 ‘0’으로 리셋시킬 수 있다. 인터럽트 서비스 루틴부(120)는 요소의 개수가 ‘0’ 도달하지 않은 경우, 타겟 요소의 포인터를 ‘1’ 증가시켜 다음 요소를 지시할 수 있다. 이후, 인터럽트 서비스 루틴부(120)는 기능 주소에 따라 기능을 수행한다.
그런 다음 인터럽트 서비스 루틴부(120)는 요소의 개수를 통해 다음으로 수행될 기능이 있는지 확인한다.
일 실시예에 있어서, 인터럽트 서비스 루틴부(120)는 다음으로 수행될 기능이 있는 경우, 다음 기능을 수행할 코어에 인터럽트를 발생시킨 뒤 동작을 종료한다.
인터럽트 서비스 루틴부(120)는 다음으로 수행될 기능이 없는 경우, 비지 플래그와 수정 방지 플래그를 초기화시킨 후 멀티 코어의 연동을 종료한다.
도 10은 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 코어 연동 방법의 순서도이다.
도 1, 및 10을 참고하면, 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 코어 연동 방법은, 연동 요구 단계(S110), 정보 수정 단계(S120), 인터럽트 단계(S130), 기능 수행 단계(S140), 기능 유무 판단 단계(S150), 인터럽트 발생 단계(S160), 및 연동 종료 단계(S170)를 포함할 수 있다.
연동 요구 단계(S110)에서, 특정 코어는 멀티 코어의 연동을 요구하여 API부(110)를 호출할 수 있다.
정보 수정 단계(S120)에서, API부(110)는 멀티 코어의 연동 요구에 따라, 멀티 코어의 기능 수행 순서와 기능을 수행할 코어 정보를 스케줄링 테이블에 저장할 수 있다.
한편, 정보 수정 단계(S120) 이전에, API부(110)는 스케줄링 테이블을 기초로 멀티 코어의 연동이 진행 중인지를 확인할 수 있다. 또한, API부(110)는 멀티 코어의 연동이 미진행 중인 것으로 확인되면, 멀티 코어의 연동이 동시에 요구되지 않도록 스케줄링 테이블의 수정 방지 플래그의 상태를 변경할 수 있다. 또한, API부(110)는 멀티 코어의 연동 실행을 요청받으면, 멀티 코어의 연동이 진행 중임을 알리도록 스케줄링 테이블의 비지 플래그의 상태를 변경할 수 있다.
정부 수정 단계(S120) 이후 인터럽트 단계(S130)에서, API부(110)는 스케줄링 테이블에 따라 현재 기능을 수행할 코어에 인터럽트를 발생시킬 수 있다.
기능 수행 단계(S140)에서, 인터럽트 서비스 루틴부(120)는 인터럽트 발생한 코어에서 스케줄링 테이블을 기초로 현재 기능을 수행할 수 있다.
기능 유무 판단 단계(S150)에서, 인터럽트 서비스 루틴부(120)는 현재 기능을 수행한 이후에 스케줄링 테이블을 기초로 다음 수행될 기능의 유무를 확인할 수 있다.
인터럽트 발생 단계(S160)에서, 인터럽트 서비스 루틴부(120)는 스케줄링 테이블로부터 다음 수행될 기능이 확인되는 경우, 다음 기능을 수행할 코어에 인터럽트를 발생시킬 수 있다.
연동 종료 단계(S170)에서, 인터럽트 서비스 루틴부(120)는 스케줄링 테이블로부터 다음 수행될 기능이 확인되지 않는 경우, 멀티 코어의 연동을 종료할 수 있다. 이때 인터럽트 서비스 루틴부(120)는 스케줄링 테이블에서 타겟 요소의 포인터를 초기화시키고, 비지 플래그와 수정 방지 플래그의 상태를 변경할 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다.
본 발명에 따른 단계들 및/또는 동작들은 기술분야의 통상의 기술자에 의해 이해될 수 있는 것과 같이, 다른 순서로, 또는 병렬적으로, 또는 다른 에포크(epoch) 등을 위해 다른 실시 예들에서 동시에 일어날 수 있다.
실시 예에 따라서는, 단계들 및/또는 동작들의 일부 또는 전부는 하나 이상의 비-일시적 컴퓨터-판독가능 매체에 저장된 명령, 프로그램, 상호작용 데이터 구조(interactive data structure), 클라이언트 및/또는 서버를 구동하는 하나 이상의 프로세서들을 사용하여 적어도 일부가 구현되거나 또는 수행될 수 있다. 하나 이상의 비-일시적 컴퓨터-판독가능 매체는 예시적으로 소프트웨어, 펌웨어, 하드웨어, 및/또는 그것들의 어떠한 조합일 수 있다. 또한, 본 명세서에서 논의된 "모듈"의 기능은 소프트웨어, 펌웨어, 하드웨어, 및/또는 그것들의 어떠한 조합으로 구현될 수 있다.
100: 코어 연동 시스템
110: API부
111: 기능 정보 추가 API
113: 비지 체크 API
115: 실행 요청 API
117: 수정 방지 API
120: 인터럽트 서비스 루틴부
130: 스케줄링 테이블부

Claims (14)

  1. 멀티 코어의 연동 요구시, 멀티 코어 중에서 어느 하나의 코어에 인터럽트를 발생시키는 API부;
    인터럽트 발생한 코어에서 현재 기능을 수행한 후 다음 수행될 기능이 있는지 확인하고, 다음 수행될 기능의 유무에 따라 다음 기능을 수행할 코어에 인터럽트를 발생시키거나 멀티 코어의 연동을 종료하는 인터럽트 서비스 루틴부; 및
    상기 멀티 코어의 기능 수행 순서, 및 기능을 수행할 코어 정보를 포함하는 스케줄링 테이블이 저장되는 스케줄링 테이블부;
    를 포함하고,
    상기 스케줄링 테이블은,
    코어의 기능 수행 순서에 대응하는 타겟 요소 포인터, 수행될 기능 정보의 개수에 대응하는 요소의 개수, 멀티 코어의 연동이 진행 중임을 알리는 비지 플래그, 및 스케줄링 테이블의 수정을 방지하는 수정 방지 플래그를 포함하는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 시스템.
  2. 제 1 항에 있어서,
    상기 API부는,
    상기 스케줄링 테이블을 기초로 멀티 코어의 연동이 진행 중인지를 확인하는 비지 체크 API를 포함하는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 시스템.
  3. 제 1 항에 있어서,
    상기 API부는,
    멀티 코어의 연동이 미진행 중인 것으로 확인되면, 멀티 코어의 연동이 동시에 요구되지 않도록 상기 스케줄링 테이블의 수정 방지 플래그의 상태를 변경하는 수정 방지 API를 포함하는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 시스템.
  4. 제 1 항에 있어서,
    상기 API부는,
    멀티 코어의 연동에 이용되는 코어 ID와 기능 수행 순서를 상기 스케줄링 테이블에 저장하는 기능 정보 추가 API를 포함하는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 시스템.
  5. 제 1 항에 있어서,
    상기 API부는,
    멀티 코어의 연동 실행을 요청받으면, 멀티 코어의 연동이 진행 중임을 알리도록 상기 스케줄링 테이블의 비지 플래그의 상태를 변경하는 실행 요청 API를 포함하는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 시스템.
  6. 제 5 항에 있어서,
    상기 실행 요청 API는,
    상기 스케줄링 테이블을 통해 기능이 수행될 코어를 확인하고, 확인되는 코어에 인터럽트를 발생시키는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 시스템.
  7. 제 1 항에 있어서,
    상기 인터럽트 서비스 루틴부는,
    인터럽트 발생한 코어에 의해 호출되면, 상기 스케줄링 테이블의 기능 주소에 따른 기능을 수행하고, 상기 스케줄링 테이블을 통해 다음 수행할 기능이 있는지를 확인하는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 시스템.
  8. 제 7 항에 있어서,
    상기 인터럽트 서비스 루틴부는,
    다음 수행할 기능이 있는 경우, 상기 스케줄링 테이블의 요소 개수를 저감하고, 다음 기능을 수행할 코어에 인터럽트를 발생시키는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 시스템.
  9. 제 8 항에 있어서,
    상기 인터럽트 서비스 루틴부는,
    다음 수행할 기능이 없는 경우, 상기 스케줄링 테이블에서 타겟 요소의 포인터를 초기화시키고, 비지 플래그와 수정 방지 플래그의 상태를 변경하며, 멀티 코어의 연동을 종료하는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 시스템.
  10. 삭제
  11. API부가 멀티 코어의 연동 요구에 따라, 멀티 코어의 기능 수행 순서와 기능을 수행할 코어 정보를 스케줄링 테이블에 저장하는 정보 수정 단계;
    상기 API부가 상기 스케줄링 테이블에 따라, 현재 기능을 수행할 코어에 인터럽트를 발생시키는 인터럽트 단계;
    인터럽트 서비스 루틴부가 인터럽트 발생한 코어에서 상기 스케줄링 테이블을 기초로 현재 기능을 수행하는 기능 수행 단계; 및
    상기 기능 수행 단계 이후에, 상기 인터럽트 서비스 루틴부가 상기 스케줄링 테이블을 기초로 다음 수행될 기능의 유무에 따라 다음 기능을 수행할 코어에 인터럽트를 발생시키거나, 멀티 코어의 연동을 종료하는 인터럽트 서비스 루틴 단계;
    를 포함하고,
    상기 스케줄링 테이블은,
    코어의 기능 수행 순서에 대응하는 타겟 요소 포인터, 수행될 기능 정보의 개수에 대응하는 요소의 개수, 멀티 코어의 연동이 진행 중임을 알리는 비지 플래그, 및 스케줄링 테이블의 수정을 방지하는 수정 방지 플래그를 포함하는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 방법.
  12. 제 11 항에 있어서,
    상기 정보 수정 단계 이전에, 상기 API부가 상기 스케줄링 테이블을 기초로 멀티 코어의 연동이 진행 중인지를 확인하는 비지 체크 단계를 더 포함하는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 방법.
  13. 제 12 항에 있어서,
    상기 API부가 상기 멀티 코어의 연동이 미진행 중인 것으로 확인되면, 멀티 코어의 연동이 동시에 요구되지 않도록 상기 스케줄링 테이블의 수정 방지 플래그의 상태를 변경하는 수정 방지 단계를 더 포함하는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 방법.
  14. 제 13 항에 있어서,
    상기 정보 수정 단계는,
    상기 API부가 상기 멀티 코어의 연동 실행을 요청받으면, 멀티 코어의 연동이 진행 중임을 알리도록 상기 스케줄링 테이블의 비지 플래그의 상태를 변경하는 것을 특징으로 하는 멀티 코어 환경에서 코어 연동 방법.
KR1020200175754A 2020-12-15 2020-12-15 멀티 코어 환경에서 코어 연동 시스템 및 방법 KR102497255B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200175754A KR102497255B1 (ko) 2020-12-15 2020-12-15 멀티 코어 환경에서 코어 연동 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200175754A KR102497255B1 (ko) 2020-12-15 2020-12-15 멀티 코어 환경에서 코어 연동 시스템 및 방법

Publications (2)

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

Family

ID=82216358

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200175754A KR102497255B1 (ko) 2020-12-15 2020-12-15 멀티 코어 환경에서 코어 연동 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102497255B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010244332A (ja) * 2009-04-07 2010-10-28 Nec Corp マルチコアシステムのためのタスク割り当て手段、その方法及びそのプログラム
JP2011237929A (ja) 2010-05-07 2011-11-24 Toyota Motor Corp マルチコア・プロセッサ
WO2012120654A1 (ja) 2011-03-08 2012-09-13 富士通株式会社 タスクスケジューリング方法およびマルチコアシステム
JP6156379B2 (ja) * 2012-08-13 2017-07-05 日本電気株式会社 スケジューリング装置、及び、スケジューリング方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6496562B2 (ja) * 2014-04-11 2019-04-03 ルネサスエレクトロニクス株式会社 半導体装置、診断テスト方法及び診断テスト回路
KR20160076270A (ko) 2014-12-22 2016-06-30 현대모비스 주식회사 차량용 멀티 코어 시스템
KR20180093199A (ko) * 2017-02-10 2018-08-21 한국전자통신연구원 멀티코어 임베디드 시스템에서의 태스크 스케줄링 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010244332A (ja) * 2009-04-07 2010-10-28 Nec Corp マルチコアシステムのためのタスク割り当て手段、その方法及びそのプログラム
JP2011237929A (ja) 2010-05-07 2011-11-24 Toyota Motor Corp マルチコア・プロセッサ
WO2012120654A1 (ja) 2011-03-08 2012-09-13 富士通株式会社 タスクスケジューリング方法およびマルチコアシステム
JP6156379B2 (ja) * 2012-08-13 2017-07-05 日本電気株式会社 スケジューリング装置、及び、スケジューリング方法

Also Published As

Publication number Publication date
KR20220085578A (ko) 2022-06-22

Similar Documents

Publication Publication Date Title
US7401339B2 (en) Hooking of replacement and augmented API functions
US9778962B2 (en) Method for minimizing lock contention among threads when tasks are distributed in multithreaded system and apparatus using the same
CN107436799B (zh) 分布式事务一致性实现方法及装置
CN106547580B (zh) 挂钩函数的方法、装置、移动终端及存储介质
TW201411387A (zh) 更新硬體庫以供具有fpga共處理器的電腦系統上的應用程式使用
CN103559443A (zh) 多核设备的病毒扫描方法和装置
CN111475227A (zh) 业务插件加载实现方法、装置和终端设备
US7586493B1 (en) System and method for offloading application tasks in a multi-processor environment utilizing a driver
CN110187985B (zh) 一种通信方法、系统及装置
CN111078412B (zh) 一种通过api截获对gpu进行资源管理的方法
KR102497255B1 (ko) 멀티 코어 환경에서 코어 연동 시스템 및 방법
CN107741891B (zh) 对象的析构方法、介质、装置和计算设备
CN111367694B (zh) 事件处理方法、服务器及计算机存储介质
US8689200B1 (en) Method and system for optimizing an executable program by generating special operations for identical program entities
CN116755777A (zh) 用于执行目标核函数的方法、计算设备、存储介质和系统
CN107203339B (zh) 一种数据存储方法及装置
US8818968B2 (en) Generic lifecycle management of entity in hierarchy according to status
CN105204903A (zh) 一种进程模块加载拦截方法及装置
CN113535439B (zh) 业务请求处理方法、装置、设备及存储介质
CN110543349B (zh) 一种应用启动加速方法、装置及计算机可读存储介质
CN116756048B (zh) 一种代码分析方法、装置、计算机设备及存储介质
CN106897089B (zh) 系统操作执行方法及装置
CN116383827B (zh) 一种安全卸载可信功能机制方法、系统和存储介质
JP6226666B2 (ja) バッチ処理制御プログラム、バッチ処理システム
CN105574196B (zh) 一种数据库管理方法与装置

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